Esempio n. 1
0
        public void CreateTreeAndDestructItNodeByNode()
        {
            var tree = new PathTree();
            var id1  = new object();
            var id2  = new object();

            var a = tree.AddNode(MakePath("a"), id1);
            var b = tree.AddNode(MakePath("a", "b"), id1);
            var c = tree.AddNode(MakePath("a", "b", "c"), id1);

            var b2 = tree.AddNode(MakePath("a", "b"), id2);

            Assert.AreSame(b, b2);
            Assert.AreSame(b.FirstChild, c);

            var b3 = tree.RemoveNode(MakePath("a", "b"), id1);

            Assert.IsNotNull(tree.FindNode(MakePath("a", "b")));
            Assert.AreSame(c, b3.FirstChild);

            var b4 = tree.RemoveNode(MakePath("a", "b"), id2);

            Assert.IsNotNull(tree.FindNode(MakePath("a", "b")));
            Assert.AreSame(c, b3.FirstChild);

            tree.RemoveNode(MakePath("a", "b", "c"), id1);
            Assert.IsNull(a.FirstChild);
        }
Esempio n. 2
0
        public void TestRemovalOfNodeAddedToTheBeginning()
        {
            var tree = new PathTree();

            var c = tree.AddNode(MakePath("a", "c"), id);

            var b = tree.AddNode(MakePath("a", "b"), id);
            var a = tree.AddNode(MakePath("a", "a"), id);

            Assert.IsNotNull(tree.FindNode(MakePath("a", "a")));
            Assert.IsNotNull(tree.FindNode(MakePath("a", "b")));
            Assert.IsNotNull(tree.FindNode(MakePath("a", "c")));

            tree.RemoveNode(MakePath("a", "b"), id);

            Assert.AreSame(c, a.Next);
            Assert.AreSame(a, c.Previous);

            tree.RemoveNode(MakePath("a", "c"), id);

            Assert.IsNull(a.Next);
            tree.RemoveNode(MakePath("a", "a"), id);

            Assert.IsNull(tree.FindNode(MakePath("a", "a")));
            Assert.IsNull(tree.FindNode(MakePath("a", "b")));
            Assert.IsNull(tree.FindNode(MakePath("a", "c")));
        }
Esempio n. 3
0
        public void AssertSameNodeIsReturned()
        {
            var tree = new PathTree();

            var b = tree.AddNode(MakePath("a", "b"), id);

            var firstA = tree.FindNode(MakePath("a"));
            var newA   = tree.AddNode(MakePath("a"), id);

            Assert.AreSame(firstA, newA);
            Assert.AreSame(b, firstA.FirstChild);
            Assert.AreSame(b, firstA.LastChild);
        }
Esempio n. 4
0
        public void CreateTreeAndRegisterRoot()
        {
            var tree = new PathTree();

            tree.AddNode(prefix, id);
            tree.RemoveNode(prefix, id);

            var node = tree.FindNode(prefix);

            if (Platform.IsWindows)
            {
                Assert.IsNull(node);
            }
            else
            {
                Assert.IsNotNull(node);
                Assert.AreEqual(false, node.IsLive);
            }
        }