public void AddingSiblingFiles() { var table = new HierarchicalRomFileTable(); var itemC1 = new RomFileInfo { Length = 1, Offset = 1 }; var itemC2 = new RomFileInfo { Length = 2, Offset = 2 }; var itemC3 = new RomFileInfo { Length = 3, Offset = 3 }; table.AddFile("/a/b/c1", ref itemC1); table.AddFile("/a/b/c2", ref itemC2); table.AddFile("/a/b/c3", ref itemC3); table.TryOpenFile("/a/b/c1", out RomFileInfo actualItemC1); table.TryOpenFile("/a/b/c2", out RomFileInfo actualItemC2); table.TryOpenFile("/a/b/c3", out RomFileInfo actualItemC3); Assert.Equal(itemC1, actualItemC1); Assert.Equal(itemC2, actualItemC2); Assert.Equal(itemC3, actualItemC3); }
public void AddingCousinFiles() { var table = new HierarchicalRomFileTable(); var itemB1 = new RomFileInfo { Length = 1, Offset = 1 }; var itemB2 = new RomFileInfo { Length = 2, Offset = 2 }; var itemB3 = new RomFileInfo { Length = 3, Offset = 3 }; table.AddFile("/a/b1/c", ref itemB1); table.AddFile("/a/b2/c", ref itemB2); table.AddFile("/a/b3/c", ref itemB3); table.TryOpenFile("/a/b1/c", out RomFileInfo actualItemB1); table.TryOpenFile("/a/b2/c", out RomFileInfo actualItemB2); table.TryOpenFile("/a/b3/c", out RomFileInfo actualItemB3); Assert.Equal(itemB1, actualItemB1); Assert.Equal(itemB2, actualItemB2); Assert.Equal(itemB3, actualItemB3); }
public void ChildFileIterationPeek() { var table = new HierarchicalRomFileTable(); var itemA = new RomFileInfo { Length = 1, Offset = 1 }; var itemB = new RomFileInfo { Length = 2, Offset = 2 }; table.AddFile("/a/a", ref itemA); table.AddFile("/a/b", ref itemB); table.TryOpenDirectory("/a", out FindPosition position); table.TryOpenFile(position.NextFile, out RomFileInfo peekItemA); Assert.Equal(itemA, peekItemA); table.FindNextFile(ref position, out RomFileInfo iterateItemA, out _); Assert.Equal(itemA, iterateItemA); table.TryOpenFile(position.NextFile, out RomFileInfo peekItemB); Assert.Equal(itemB, peekItemB); table.FindNextFile(ref position, out RomFileInfo iterateItemB, out _); Assert.Equal(itemB, iterateItemB); }
public void OpeningNonexistentFileFails() { var table = new HierarchicalRomFileTable(); bool success = table.TryOpenFile("/foo", out _); Assert.False(success); }
public void OpeningDirectoryAsFileFails() { var table = new HierarchicalRomFileTable(); table.AddDirectory("/dir"); bool success = table.TryOpenFile("/dir", out _); Assert.False(success); }
public void SimpleAddAndRead() { const string path = "/a/b"; var table = new HierarchicalRomFileTable(); var item = new RomFileInfo { Length = 1, Offset = 1 }; table.AddFile(path, ref item); bool success = table.TryOpenFile(path, out RomFileInfo readItem); Assert.True(success, "Table read failed"); Assert.Equal(item, readItem); }
public void UpdateExistingFile() { const string path = "/a/b"; var table = new HierarchicalRomFileTable(); var originalItem = new RomFileInfo { Length = 1, Offset = 1 }; var newItem = new RomFileInfo { Length = 1, Offset = 1 }; table.AddFile(path, ref originalItem); table.AddFile(path, ref newItem); bool success = table.TryOpenFile(path, out RomFileInfo readItem); Assert.True(success, "Table read failed"); Assert.Equal(newItem, readItem); }