/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package tachyon.master;
import org.junit.Assert;
import org.junit.Test;
import tachyon.master.InodeFile;
import tachyon.master.InodeFolder;
/**
* Unit tests for tachyon.InodeFolder
*/
public class InodeFolderTest {
@Test
public void addChildrenTest() {
InodeFolder inodeFolder = new InodeFolder("testFolder1", 1, 0, System.currentTimeMillis());
InodeFile inodeFile1 = new InodeFile("testFile1", 2, 1, 1000, System.currentTimeMillis());
InodeFile inodeFile2 = new InodeFile("testFile2", 3, 1, 1000, System.currentTimeMillis());
inodeFolder.addChild(inodeFile1);
inodeFolder.addChild(inodeFile2);
Assert.assertEquals(2, (int) inodeFolder.getChildrenIds().get(0));
Assert.assertEquals(3, (int) inodeFolder.getChildrenIds().get(1));
}
@Test
public void batchRemoveChildTest() {
InodeFolder inodeFolder = new InodeFolder("testFolder1", 1, 0, System.currentTimeMillis());
InodeFile inodeFile1 = new InodeFile("testFile1", 2, 1, 1000, System.currentTimeMillis());
InodeFile inodeFile2 = new InodeFile("testFile2", 3, 1, 1000, System.currentTimeMillis());
InodeFile inodeFile3 = new InodeFile("testFile3", 4, 1, 1000, System.currentTimeMillis());
inodeFolder.addChild(inodeFile1);
inodeFolder.addChild(inodeFile2);
inodeFolder.addChild(inodeFile3);
Assert.assertEquals(3, inodeFolder.getNumberOfChildren());
inodeFolder.removeChild("testFile1");
Assert.assertEquals(2, inodeFolder.getNumberOfChildren());
Assert.assertFalse(inodeFolder.getChildrenIds().contains(2));
}
// Tests for Inode methods
@Test
public void comparableTest() {
InodeFolder inode1 = new InodeFolder("test1", 1, 0, System.currentTimeMillis());
InodeFolder inode2 = new InodeFolder("test2", 2, 0, System.currentTimeMillis());
Assert.assertEquals(-1, inode1.compareTo(inode2));
}
@Test
public void equalsTest() {
InodeFolder inode1 = new InodeFolder("test1", 1, 0, System.currentTimeMillis());
InodeFolder inode2 = new InodeFolder("test2", 1, 0, System.currentTimeMillis());
Assert.assertTrue(inode1.equals(inode2));
}
@Test
public void getIdTest() {
InodeFolder inode1 = new InodeFolder("test1", 1, 0, System.currentTimeMillis());
Assert.assertEquals(1, inode1.getId());
}
@Test
public void isDirectoryTest() {
InodeFolder inode1 = new InodeFolder("test1", 1, 0, System.currentTimeMillis());
Assert.assertTrue(inode1.isDirectory());
}
@Test
public void isFileTest() {
InodeFolder inode1 = new InodeFolder("test1", 1, 0, System.currentTimeMillis());
Assert.assertFalse(inode1.isFile());
}
@Test
public void removeChildTest() {
InodeFolder inodeFolder = new InodeFolder("testFolder1", 1, 0, System.currentTimeMillis());
InodeFile inodeFile1 = new InodeFile("testFile1", 2, 1, 1000, System.currentTimeMillis());
inodeFolder.addChild(inodeFile1);
Assert.assertEquals(1, inodeFolder.getNumberOfChildren());
inodeFolder.removeChild(inodeFile1);
Assert.assertEquals(0, inodeFolder.getNumberOfChildren());
}
@Test
public void removeNonExistentChildTest() {
InodeFolder inodeFolder = new InodeFolder("testFolder1", 1, 0, System.currentTimeMillis());
InodeFile inodeFile1 = new InodeFile("testFile1", 2, 1, 1000, System.currentTimeMillis());
InodeFile inodeFile2 = new InodeFile("testFile2", 3, 1, 1000, System.currentTimeMillis());
inodeFolder.addChild(inodeFile1);
Assert.assertEquals(1, inodeFolder.getNumberOfChildren());
inodeFolder.removeChild(inodeFile2);
Assert.assertEquals(1, inodeFolder.getNumberOfChildren());
}
@Test
public void reverseIdTest() {
InodeFolder inode1 = new InodeFolder("test1", 1, 0, System.currentTimeMillis());
inode1.reverseId();
Assert.assertEquals(-1, inode1.getId());
}
@Test
public void sameIdChildrenTest() {
InodeFolder inodeFolder = new InodeFolder("testFolder1", 1, 0, System.currentTimeMillis());
InodeFile inodeFile1 = new InodeFile("testFile1", 2, 1, 1000, System.currentTimeMillis());
inodeFolder.addChild(inodeFile1);
inodeFolder.addChild(inodeFile1);
Assert.assertTrue(inodeFolder.getChildrenIds().get(0) == 2);
Assert.assertEquals(1, inodeFolder.getNumberOfChildren());
}
@Test
public void setNameTest() {
InodeFolder inode1 = new InodeFolder("test1", 1, 0, System.currentTimeMillis());
Assert.assertEquals("test1", inode1.getName());
inode1.setName("test2");
Assert.assertEquals("test2", inode1.getName());
}
@Test
public void setParentIdTest() {
InodeFolder inode1 = new InodeFolder("test1", 1, 0, System.currentTimeMillis());
Assert.assertEquals(0, inode1.getParentId());
inode1.setParentId(2);
Assert.assertEquals(2, inode1.getParentId());
}
}