public void t07_TreeViewViewModel() { SIEETreeView Folders = new SIEETreeView(null); TVIViewModel tviVM; TVIViewModel tviVMa; string testPath = Path.GetTempPath(); testPath = testPath.Substring(0, testPath.Length - 1); // Remove trailing "\" findFolderBruteForce(testPath); string startPath = testPath.Split('\\').First() + @"\"; // e.g. "C:\" FilesystemFolder startFsf = new FilesystemFolder(null, new DirectoryInfo(startPath)); // Select a folder and verify results Folders.AddItem(new TVIViewModel(startFsf, null, true)); Assert.AreEqual(startPath, Folders[0].GetDisplayNamePath(), "t0"); tviVM = Folders.FindNodeInTree(testPath); verifySelectedNode(tviVM, testPath, "t1"); // Serialize and reinstantiate List <string> serializedPath = tviVM.GetSerializedPath(); Folders.Clear(); Folders.AddItem(new TVIViewModel(startFsf, null, true)); tviVM = Folders.InitializeTree(serializedPath, typeof(FilesystemFolder)); verifySelectedNode(tviVM, testPath, "t2"); tviVMa = Folders.FindNodeInTree(testPath); verifySelectedNode(tviVMa, testPath, "t3"); }
} // for xml serializer public FilesystemFolder(FilesystemFolder parent, DirectoryInfo di) { DirInfo = di; if (parent == null) { FolderPath = di.Name; } else { FolderPath = parent.FolderPath + (parent.Depth == 0 ? "" : @"\") + di.Name; } }
private void verifySelectedNode(TVIViewModel node, string path, string testName) { if (node == null) { throw new Exception("verifySelectedNode, testName=" + testName); } string tail = path.Split('\\').Last(); FilesystemFolder fsf = node.Tvim as FilesystemFolder; Assert.AreEqual(tail.ToLower(), node.DisplayName.ToLower()); Assert.AreEqual(tail.ToLower(), fsf.DisplayName.ToLower()); Assert.AreEqual(path.Split('\\').Length, fsf.Depth + 1); Assert.AreEqual(fsf.FolderPath.ToLower(), path.ToLower()); }