public void AddChild() { string refsText = Path.GetFullPath(Path.Combine(DataPath, "refs.txt")); BuildToolsRefsParser reader = new BuildToolsRefsParser(refsText); Assert.IsTrue(reader.FileExists); RootNode rootNodes = reader.ReadFile(); RefsNode testNode = rootNodes[0]; RefsNode last = new FileNode("TestEnd.dll"); testNode.Add(last); Assert.AreEqual(last, testNode[testNode.Count - 1]); }
public void GetFilename() { string refsText = Path.GetFullPath(Path.Combine(DataPath, "refs.txt")); string fileName = "Main.dll"; BuildToolsRefsParser reader = new BuildToolsRefsParser(refsText); Assert.IsTrue(reader.FileExists); RootNode rootNodes = reader.ReadFile(); RefsNode testNode = rootNodes[0]; Assert.IsTrue(testNode.TryGetReference(fileName, out FileNode fileNode)); Console.WriteLine(fileNode.GetRelativePath()); }
public void TryGetReference_NonExistant() { string refsText = Path.GetFullPath(Path.Combine(DataPath, "refs.txt")); string fileName = "NonExistant.dll"; BuildToolsRefsParser reader = new BuildToolsRefsParser(refsText); Assert.IsTrue(reader.FileExists); RootNode rootNodes = reader.ReadFile(); RefsNode testNode = rootNodes[0]; int childCount = testNode.Count; testNode.Insert(childCount, new FileNode("TestEnd.dll")); testNode.Insert(0, new FileNode("TestStart.dll")); testNode.Insert(3, new FileNode("TestMiddle.dll")); Assert.IsFalse(testNode.TryGetReference(fileName, out FileNode fileNode)); Assert.IsNull(fileNode); }
private List <string> GetLines(RefsNode node, ref List <string> list) { string lineToAdd = node.RawLine; if (node is FileNode fileNode) { lineToAdd = lineToAdd + " | " + fileNode.GetFilename(true); } list.Add(lineToAdd); if (node.SupportsChildren) { foreach (RefsNode childNode in node.GetChildren()) { GetLines(childNode, ref list); } } return(list); }
public void PrintChildren(RefsNode node) { if (node is FileNode fileNode) { Console.WriteLine(node.NodeDepth.ToString("00") + " | " + node.RawLine + " | " + fileNode); } else { Console.WriteLine(node.NodeDepth.ToString("00") + " | " + node.RawLine); } if (!node.SupportsChildren) { return; } foreach (RefsNode childNode in node.GetChildren()) { PrintChildren(childNode); } }
public void PrintChildren(RefsNode node) { if (node is FileNode leafNode) { Console.WriteLine(node.RawLine + " | " + leafNode); } else { Console.WriteLine(node.RawLine); } if (!node.SupportsChildren) { return; } foreach (var childNode in node.GetChildren()) { PrintChildren(childNode); } }
public void InsertChild() { string refsText = Path.GetFullPath(Path.Combine(DataPath, "refs.txt")); BuildToolsRefsParser reader = new BuildToolsRefsParser(refsText); Assert.IsTrue(reader.FileExists); RootNode rootNode = reader.ReadFile(); RefsNode testNode = rootNode.First(); int middleIndex = 3; RefsNode first = new FileNode("TestStart.dll"); RefsNode middle = new FileNode("TestMiddle.dll"); RefsNode last = new FileNode("TestEnd.dll"); testNode.Insert(testNode.Count, last); testNode.Insert(0, first); testNode.Insert(middleIndex, middle); Assert.AreEqual(first, testNode[0]); Assert.AreEqual(middle, testNode[middleIndex]); Assert.AreEqual(last, testNode[testNode.Count - 1]); }
public string[] GetLines(RefsNode node) { List <string> lines = new List <string>(); return(GetLines(node, ref lines).ToArray()); }