package challengetask.group02.fsstructure;
import challengetask.group02.fsstructure.Entry.TYPE;
import net.tomp2p.peers.Number160;
import org.junit.Test;
import java.util.Iterator;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
public class DirectoryTest {
Directory root = new Directory(Number160.createHash(0), "");
@Test
public void testAddingChildren() {
root.addChild("home", Number160.createHash(1), TYPE.DIRECTORY);
root.addChild("etc", Number160.createHash(2), TYPE.DIRECTORY);
root.addChild("bin", Number160.createHash(3), TYPE.DIRECTORY);
root.addChild("dev", Number160.createHash(4), TYPE.DIRECTORY);
assertEquals(Number160.createHash(1), root.getChild("home", TYPE.DIRECTORY));
assertEquals(Number160.createHash(2), root.getChild("etc", TYPE.DIRECTORY));
assertEquals(Number160.createHash(3), root.getChild("bin", TYPE.DIRECTORY));
assertEquals(Number160.createHash(4), root.getChild("dev", TYPE.DIRECTORY));
}
@Test
public void duplicatesShouldOverwriteOldEntry() {
root.addChild("home", Number160.createHash(1), TYPE.DIRECTORY);
root.addChild("home", Number160.createHash(7), TYPE.DIRECTORY);
assertEquals(Number160.createHash(7),root.getChild("home", TYPE.DIRECTORY));
}
@Test
public void distinguishFilesDirectories() {
root.removeChildren();
root.addChild("file.txt", Number160.createHash(100), TYPE.FILE);
assertTrue(root.getChildren(TYPE.FILE).size() != 0);
assertTrue(root.getChildren(TYPE.DIRECTORY).size() == 0);
}
@Test
public void testRenamingChild() {
String oldName = "child";
String newName = "childWithNewName";
Number160 childID = Number160.createHash(37829);
Directory child = new Directory(childID, oldName);
root.addChild(child.getEntryName(), child.getID(), child.getType());
root.renameChild(oldName, newName);
assertEquals(childID, root.getChild(newName));
}
}