@Test public void createExistingDirectoryTest() throws Exception { // create directory mTree.createPath(TEST_URI, sDirectoryOptions); // create again with allowExists true mTree.createPath(TEST_URI, new CreatePathOptions.Builder().setAllowExists(true).build()); // create again with allowExists false mThrown.expect(FileAlreadyExistsException.class); mThrown.expectMessage(ExceptionMessage.FILE_ALREADY_EXISTS.getMessage(TEST_URI)); mTree.createPath(TEST_URI, new CreatePathOptions.Builder().setAllowExists(false).build()); }
@Test public void createPathTest() throws Exception { // save the last mod time of the root long lastModTime = mTree.getRoot().getLastModificationTimeMs(); // sleep to ensure a different last modification time CommonUtils.sleepMs(10); // create nested directory InodeTree.CreatePathResult createResult = mTree.createPath(NESTED_URI, sNestedDirectoryOptions); List<Inode> modified = createResult.getModified(); List<Inode> created = createResult.getCreated(); // 1 modified directory Assert.assertEquals(1, modified.size()); Assert.assertEquals("", modified.get(0).getName()); Assert.assertNotEquals(lastModTime, modified.get(0).getLastModificationTimeMs()); // 2 created directories Assert.assertEquals(2, created.size()); Assert.assertEquals("nested", created.get(0).getName()); Assert.assertEquals("test", created.get(1).getName()); // save the last mod time of 'test' lastModTime = created.get(1).getLastModificationTimeMs(); // sleep to ensure a different last modification time CommonUtils.sleepMs(10); // creating the directory path again results in no new inodes. try { createResult = mTree.createPath(NESTED_URI, sNestedDirectoryOptions); Assert.assertTrue("createPath should throw FileAlreadyExistsException", false); } catch (FileAlreadyExistsException faee) { Assert.assertEquals( faee.getMessage(), ExceptionMessage.FILE_ALREADY_EXISTS.getMessage(NESTED_URI)); } // create a file CreatePathOptions options = new CreatePathOptions.Builder(MasterContext.getConf()) .setBlockSizeBytes(Constants.KB) .setRecursive(true) .build(); createResult = mTree.createPath(NESTED_FILE_URI, options); modified = createResult.getModified(); created = createResult.getCreated(); // test directory was modified Assert.assertEquals(1, modified.size()); Assert.assertEquals("test", modified.get(0).getName()); Assert.assertNotEquals(lastModTime, modified.get(0).getLastModificationTimeMs()); // file was created Assert.assertEquals(1, created.size()); Assert.assertEquals("file", created.get(0).getName()); }