Exemplo n.º 1
0
        public void TestObjectWithStructList()
        {
            var nodeContainer = new NodeContainer();
            // We also test a null item in the list
            var instance = new StructListClass {
                Member1 = 3, Member2 = new List <Struct> {
                    new Struct(), new Struct()
                }
            };
            var rootNode = nodeContainer.GetOrCreateNode(instance);
            var visitor  = new TestVisitor();

            visitor.Visit(rootNode);
            Index        index          = new Index(0);
            IContentNode tempQualifier  = rootNode[nameof(StructListClass.Member2)];
            Index        index1         = new Index(0);
            IContentNode tempQualifier1 = rootNode[nameof(StructListClass.Member2)];
            Index        index2         = new Index(0);
            IContentNode tempQualifier2 = rootNode[nameof(StructListClass.Member2)];
            Index        index3         = new Index(1);
            IContentNode tempQualifier3 = rootNode[nameof(StructListClass.Member2)];
            Index        index4         = new Index(1);
            IContentNode tempQualifier4 = rootNode[nameof(StructListClass.Member2)];
            Index        index5         = new Index(1);
            IContentNode tempQualifier5 = rootNode[nameof(StructListClass.Member2)];
            var          expectedNodes  = new IContentNode[]
            {
                rootNode,
                rootNode[nameof(StructListClass.Member1)],
                rootNode[nameof(StructListClass.Member2)],
                tempQualifier.IndexedTarget(index),
                tempQualifier1.IndexedTarget(index1)[nameof(StructListClass.Member1)],
                tempQualifier2.IndexedTarget(index2)[nameof(StructListClass.Member2)],
                tempQualifier3.IndexedTarget(index3),
                tempQualifier4.IndexedTarget(index4)[nameof(StructListClass.Member1)],
                tempQualifier5.IndexedTarget(index5)[nameof(StructListClass.Member2)],
            };
            var expectedPaths = new[]
            {
                new GraphNodePath(rootNode),
                new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member1)),
                new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)),
                new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(0)),
                new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(0)).PushMember(nameof(StructListClass.Member1)),
                new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(0)).PushMember(nameof(StructListClass.Member2)),
                new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(1)),
                new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(1)).PushMember(nameof(StructListClass.Member1)),
                new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(1)).PushMember(nameof(StructListClass.Member2)),
            };

            VerifyNodesAndPath(expectedNodes, expectedPaths, visitor);
        }
Exemplo n.º 2
0
        public void TestObjectWithStructList()
        {
            var nodeContainer = new NodeContainer();
            // We also test a null item in the list
            var instance = new StructListClass {
                Member1 = 3, Member2 = new List <Struct> {
                    new Struct(), new Struct()
                }
            };
            var rootNode = nodeContainer.GetOrCreateNode(instance);
            var visitor  = new TestVisitor();

            visitor.Visit(rootNode);
            var expectedNodes = new IGraphNode[]
            {
                rootNode,
                rootNode[nameof(StructListClass.Member1)],
                rootNode[nameof(StructListClass.Member2)],
                rootNode[nameof(StructListClass.Member2)].Target,
                rootNode[nameof(StructListClass.Member2)].Target.IndexedTarget(new NodeIndex(0)),
                rootNode[nameof(StructListClass.Member2)].Target.IndexedTarget(new NodeIndex(0))[nameof(StructListClass.Member1)],
                rootNode[nameof(StructListClass.Member2)].Target.IndexedTarget(new NodeIndex(0))[nameof(StructListClass.Member2)],
                rootNode[nameof(StructListClass.Member2)].Target.IndexedTarget(new NodeIndex(1)),
                rootNode[nameof(StructListClass.Member2)].Target.IndexedTarget(new NodeIndex(1))[nameof(StructListClass.Member1)],
                rootNode[nameof(StructListClass.Member2)].Target.IndexedTarget(new NodeIndex(1))[nameof(StructListClass.Member2)],
            };
            var expectedPaths = new GraphNodePath[10];

            expectedPaths[0] = new GraphNodePath(rootNode);
            expectedPaths[1] = expectedPaths[0].Clone();
            expectedPaths[1].PushMember(nameof(StructListClass.Member1));
            expectedPaths[2] = expectedPaths[0].Clone();
            expectedPaths[2].PushMember(nameof(StructListClass.Member2));
            expectedPaths[3] = expectedPaths[2].Clone();
            expectedPaths[3].PushTarget();
            expectedPaths[4] = expectedPaths[3].Clone();
            expectedPaths[4].PushIndex(new NodeIndex(0));
            expectedPaths[5] = expectedPaths[4].Clone();
            expectedPaths[5].PushMember(nameof(StructListClass.Member1));
            expectedPaths[6] = expectedPaths[4].Clone();
            expectedPaths[6].PushMember(nameof(StructListClass.Member2));
            expectedPaths[7] = expectedPaths[3].Clone();
            expectedPaths[7].PushIndex(new NodeIndex(1));
            expectedPaths[8] = expectedPaths[7].Clone();
            expectedPaths[8].PushMember(nameof(StructListClass.Member1));
            expectedPaths[9] = expectedPaths[7].Clone();
            expectedPaths[9].PushMember(nameof(StructListClass.Member2));
            VerifyNodesAndPath(expectedNodes, expectedPaths, visitor);
        }
Exemplo n.º 3
0
        public void TestObjectWithStructList()
        {
            var nodeContainer = new NodeContainer();
            // We also test a null item in the list
            var instance = new StructListClass {
                Member1 = 3, Member2 = new List <Struct> {
                    new Struct(), new Struct()
                }
            };
            var rootNode = nodeContainer.GetOrCreateNode(instance);
            var visitor  = new TestVisitor();

            visitor.Visit(rootNode);
            var expectedNodes = new[]
            {
                rootNode,
                rootNode.GetChild(nameof(StructListClass.Member1)),
                rootNode.GetChild(nameof(StructListClass.Member2)),
                rootNode.GetChild(nameof(StructListClass.Member2)).GetTarget(new Index(0)),
                rootNode.GetChild(nameof(StructListClass.Member2)).GetTarget(new Index(0)).GetChild(nameof(StructListClass.Member1)),
                rootNode.GetChild(nameof(StructListClass.Member2)).GetTarget(new Index(0)).GetChild(nameof(StructListClass.Member2)),
                rootNode.GetChild(nameof(StructListClass.Member2)).GetTarget(new Index(1)),
                rootNode.GetChild(nameof(StructListClass.Member2)).GetTarget(new Index(1)).GetChild(nameof(StructListClass.Member1)),
                rootNode.GetChild(nameof(StructListClass.Member2)).GetTarget(new Index(1)).GetChild(nameof(StructListClass.Member2)),
            };
            var expectedPaths = new[]
            {
                new GraphNodePath(rootNode),
                new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member1)),
                new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)),
                new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(0)),
                new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(0)).PushMember(nameof(StructListClass.Member1)),
                new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(0)).PushMember(nameof(StructListClass.Member2)),
                new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(1)),
                new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(1)).PushMember(nameof(StructListClass.Member1)),
                new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(1)).PushMember(nameof(StructListClass.Member2)),
            };

            VerifyNodesAndPath(expectedNodes, expectedPaths, visitor);
        }
Exemplo n.º 4
0
 public void TestObjectWithStructList()
 {
     var nodeContainer = new NodeContainer();
     // We also test a null item in the list
     var instance = new StructListClass { Member1 = 3, Member2 = new List<Struct> { new Struct(), new Struct() } };
     var rootNode = nodeContainer.GetOrCreateNode(instance);
     var visitor = new TestVisitor();
     visitor.Visit(rootNode);
     Index index = new Index(0);
     IGraphNode tempQualifier = rootNode.TryGetChild(nameof(StructListClass.Member2));
     Index index1 = new Index(0);
     IGraphNode tempQualifier1 = rootNode.TryGetChild(nameof(StructListClass.Member2));
     Index index2 = new Index(0);
     IGraphNode tempQualifier2 = rootNode.TryGetChild(nameof(StructListClass.Member2));
     Index index3 = new Index(1);
     IGraphNode tempQualifier3 = rootNode.TryGetChild(nameof(StructListClass.Member2));
     Index index4 = new Index(1);
     IGraphNode tempQualifier4 = rootNode.TryGetChild(nameof(StructListClass.Member2));
     Index index5 = new Index(1);
     IGraphNode tempQualifier5 = rootNode.TryGetChild(nameof(StructListClass.Member2));
     var expectedNodes = new[]
     {
         rootNode,
         rootNode.TryGetChild(nameof(StructListClass.Member1)),
         rootNode.TryGetChild(nameof(StructListClass.Member2)),
         tempQualifier.IndexedTarget(index),
         tempQualifier1.IndexedTarget(index1).TryGetChild(nameof(StructListClass.Member1)),
         tempQualifier2.IndexedTarget(index2).TryGetChild(nameof(StructListClass.Member2)),
         tempQualifier3.IndexedTarget(index3),
         tempQualifier4.IndexedTarget(index4).TryGetChild(nameof(StructListClass.Member1)),
         tempQualifier5.IndexedTarget(index5).TryGetChild(nameof(StructListClass.Member2)),
       };
     var expectedPaths = new[]
     {
         new GraphNodePath(rootNode),
         new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member1)),
         new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)),
         new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(0)),
         new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(0)).PushMember(nameof(StructListClass.Member1)),
         new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(0)).PushMember(nameof(StructListClass.Member2)),
         new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(1)),
         new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(1)).PushMember(nameof(StructListClass.Member1)),
         new GraphNodePath(rootNode).PushMember(nameof(StructListClass.Member2)).PushIndex(new Index(1)).PushMember(nameof(StructListClass.Member2)),
     };
     VerifyNodesAndPath(expectedNodes, expectedPaths, visitor);
 }