@Test public void testCreateFileInNonExistingDirectory() throws IOException { String fileName = "testDir/testFile"; Path testPath = qualifiedPath(fileName, fc2); // Ensure file does not exist Assert.assertFalse(exists(fc2, testPath)); // Create a file on fc2's file system using fc1 createFile(fc1, testPath); // Ensure using fc2 that file is created Assert.assertTrue(isDir(fc2, testPath.getParent())); Assert.assertEquals("testDir", testPath.getParent().getName()); Assert.assertTrue(exists(fc2, testPath)); }
@Test public void testCreateDirectory() throws IOException { Path path = qualifiedPath("test/hadoop", fc2); Path falsePath = qualifiedPath("path/doesnot.exist", fc2); Path subDirPath = qualifiedPath("dir0", fc2); // Ensure that testPath does not exist in fc1 Assert.assertFalse(exists(fc1, path)); Assert.assertFalse(isFile(fc1, path)); Assert.assertFalse(isDir(fc1, path)); // Create a directory on fc2's file system using fc1 fc1.mkdir(path, FsPermission.getDefault(), true); // Ensure fc2 has directory Assert.assertTrue(isDir(fc2, path)); Assert.assertTrue(exists(fc2, path)); Assert.assertFalse(isFile(fc2, path)); // Test to create same dir twice, (HDFS mkdir is similar to mkdir -p ) fc1.mkdir(subDirPath, FsPermission.getDefault(), true); // This should not throw exception fc1.mkdir(subDirPath, FsPermission.getDefault(), true); // Create Sub Dirs fc1.mkdir(subDirPath, FsPermission.getDefault(), true); // Check parent dir Path parentDir = path.getParent(); Assert.assertTrue(exists(fc2, parentDir)); Assert.assertFalse(isFile(fc2, parentDir)); // Check parent parent dir Path grandparentDir = parentDir.getParent(); Assert.assertTrue(exists(fc2, grandparentDir)); Assert.assertFalse(isFile(fc2, grandparentDir)); // Negative test cases Assert.assertFalse(exists(fc2, falsePath)); Assert.assertFalse(isDir(fc2, falsePath)); // TestCase - Create multiple directories String dirNames[] = { "createTest/testDir", "createTest/test Dir", "deleteTest/test*Dir", "deleteTest/test#Dir", "deleteTest/test1234", "deleteTest/test_DIr", "deleteTest/1234Test", "deleteTest/test)Dir", "deleteTest/()&^%$#@!~_+}{><?", " ", "^ " }; for (String f : dirNames) { // Create a file on fc2's file system using fc1 Path testPath = qualifiedPath(f, fc2); // Ensure file does not exist Assert.assertFalse(exists(fc2, testPath)); // Now create directory fc1.mkdir(testPath, FsPermission.getDefault(), true); // Ensure fc2 has the created directory Assert.assertTrue(exists(fc2, testPath)); Assert.assertTrue(isDir(fc2, testPath)); } }