private void AddEntryToDictionary( EdataDictionaryPathEntry entry, ContentPathSplitInfo entryPathSplitInfo, EdataDictionaryRootEntry dictionaryRoot) { if (entryPathSplitInfo.SplitIndex == 0) { dictionaryRoot.AddFollowingEntry(entry); //entry.PrecedingEntry = dictionaryRoot; } else { var precedingPath = entryPathSplitInfo.GetPathToSplitIndex(); EdataDictionaryPathEntry precedingPathEntry = dictionaryRoot.SelectEntryByPath(precedingPath); var pp = precedingPathEntry as EdataDictionaryDirEntry; if (precedingPathEntry != null) { pp.AddFollowingEntry(entry); //entry.PrecedingEntry = pp; } else { throw new Exception(String.Format( "Cannot find a following precedding entry: {0}", precedingPath)); } } }
public void IsSelectFileEntryByPathWorkingTest() { string path = @"pc\textures\assets\file1.tgv"; EdataDictionaryDirEntry a1 = new EdataDictionaryDirEntry(@"pc\"); EdataDictionaryDirEntry a2 = new EdataDictionaryDirEntry(@"textures\"); EdataDictionaryDirEntry a2a = new EdataDictionaryDirEntry(@"textures2\"); EdataDictionaryDirEntry a3a = new EdataDictionaryDirEntry(@"assets2\"); EdataDictionaryDirEntry a3 = new EdataDictionaryDirEntry(@"assets\"); EdataDictionaryFileEntry a4 = new EdataDictionaryFileEntry(@"file1.tgv"); EdataDictionaryFileEntry a4a = new EdataDictionaryFileEntry(@"file1.tgv"); a1.AddFollowingEntry(a2a); a1.AddFollowingEntry(a2); a2.AddFollowingEntry(a3); a2a.AddFollowingEntry(a3a); a3.AddFollowingEntry(a4); a3a.AddFollowingEntry(a4a); EdataDictionaryPathEntry expected1 = a4; EdataDictionaryPathEntry value1 = a1.SelectEntryByPath(path); Assert.AreEqual(value1, expected1); String expected2 = "file1.tgv"; String value2 = a1.SelectEntryByPath(path).PathPart; Assert.AreEqual(value2, expected2); }