コード例 #1
0
        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]);
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
 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);
     }
 }
コード例 #6
0
 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);
     }
 }
コード例 #7
0
        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]);
        }
コード例 #8
0
        public string[] GetLines(RefsNode node)
        {
            List <string> lines = new List <string>();

            return(GetLines(node, ref lines).ToArray());
        }