Ejemplo n.º 1
0
        public void TestFirstNestedStructUpdate()
        {
            var nodeContainer = new NodeContainer();
            var container = new NestingStructContainer { Struct = new FirstNestingStruct { Struct1 = new SecondNestingStruct { Struct2 = new SimpleStruct { Name = "Test", Value = 1 } } } };
            var containerNode = nodeContainer.GetOrCreateNode(container);
            var memberNode = containerNode.Children.First();

            var newStruct = new FirstNestingStruct { Struct1 = new SecondNestingStruct { Struct2 = new SimpleStruct { Name = "Test2", Value = 2 } } };
            memberNode.Content.Update(newStruct);
            Assert.AreEqual("Test2", container.Struct.Struct1.Struct2.Name);
            Assert.AreEqual(2, container.Struct.Struct1.Struct2.Value);

            Helper.TestObjectContentNode(containerNode, container, 1);
            Helper.TestMemberContentNode(containerNode, memberNode, container, container.Struct, nameof(StructContainer.Struct), false);
            Helper.TestStructContentNode(memberNode, container.Struct, 1);
            var firstNestingMemberNode = memberNode.Children.First();
            Helper.TestMemberContentNode(memberNode, firstNestingMemberNode, container.Struct, container.Struct.Struct1, nameof(FirstNestingStruct.Struct1), false);
            Helper.TestStructContentNode(firstNestingMemberNode, container.Struct.Struct1, 1);
            var secondNestingMemberNode = firstNestingMemberNode.Children.First();
            Helper.TestMemberContentNode(firstNestingMemberNode, secondNestingMemberNode, container.Struct.Struct1, container.Struct.Struct1.Struct2, nameof(SecondNestingStruct.Struct2), false);
            Helper.TestStructContentNode(secondNestingMemberNode, container.Struct.Struct1.Struct2, 2);
            var structMember1Node = secondNestingMemberNode.Children.First();
            Helper.TestMemberContentNode(secondNestingMemberNode, structMember1Node, container.Struct.Struct1.Struct2, container.Struct.Struct1.Struct2.Name, nameof(SimpleStruct.Name), false);
            var structMember2Node = secondNestingMemberNode.Children.Last();
            Helper.TestMemberContentNode(secondNestingMemberNode, structMember2Node, container.Struct.Struct1.Struct2, container.Struct.Struct1.Struct2.Value, nameof(SimpleStruct.Value), false);
        }
Ejemplo n.º 2
0
        public void TestFirstNestedStructUpdate()
        {
            var nodeContainer = new NodeContainer();
            var container     = new NestingStructContainer {
                Struct = new FirstNestingStruct {
                    Struct1 = new SecondNestingStruct {
                        Struct2 = new SimpleStruct {
                            Name = "Test", Value = 1
                        }
                    }
                }
            };
            var containerNode           = nodeContainer.GetOrCreateNode(container);
            var memberNode              = containerNode[nameof(NestingStructContainer.Struct)];
            var firstTargetNode         = memberNode.Target;
            var firstNestingMemberNode  = firstTargetNode[nameof(FirstNestingStruct.Struct1)];
            var secondTargetNode        = firstNestingMemberNode.Target;
            var secondNestingMemberNode = secondTargetNode[nameof(SecondNestingStruct.Struct2)];
            var structMember1Node       = secondNestingMemberNode.Target[nameof(SimpleStruct.Name)];
            var structMember2Node       = secondNestingMemberNode.Target[nameof(SimpleStruct.Value)];

            var newStruct = new FirstNestingStruct {
                Struct1 = new SecondNestingStruct {
                    Struct2 = new SimpleStruct {
                        Name = "Test2", Value = 2
                    }
                }
            };

            memberNode.Update(newStruct);
            Assert.Equal("Test2", container.Struct.Struct1.Struct2.Name);
            Assert.Equal(2, container.Struct.Struct1.Struct2.Value);
            Assert.Equal(firstTargetNode, memberNode.Target);
            Assert.Equal(firstNestingMemberNode, firstTargetNode[nameof(FirstNestingStruct.Struct1)]);
            Assert.Equal(secondTargetNode, firstNestingMemberNode.Target);
            Assert.Equal(secondNestingMemberNode, secondTargetNode[nameof(SecondNestingStruct.Struct2)]);
            Assert.Equal(structMember1Node, secondNestingMemberNode.Target[nameof(SimpleStruct.Name)]);
            Assert.Equal(structMember2Node, secondNestingMemberNode.Target[nameof(SimpleStruct.Value)]);

            Helper.TestNonCollectionObjectNode(containerNode, container, 1);
            Helper.TestMemberNode(containerNode, memberNode, container, container.Struct, nameof(StructContainer.Struct), true);
            Helper.TestNonNullObjectReference(memberNode.TargetReference, container.Struct, false);
            Helper.TestMemberNode(memberNode.Target, firstNestingMemberNode, container.Struct, container.Struct.Struct1, nameof(FirstNestingStruct.Struct1), true);
            Helper.TestNonNullObjectReference(firstNestingMemberNode.TargetReference, container.Struct.Struct1, false);
            Helper.TestMemberNode(firstNestingMemberNode.Target, secondNestingMemberNode, container.Struct.Struct1, container.Struct.Struct1.Struct2, nameof(SecondNestingStruct.Struct2), true);
            Helper.TestNonNullObjectReference(secondNestingMemberNode.TargetReference, container.Struct.Struct1.Struct2, false);
            Helper.TestMemberNode(secondNestingMemberNode.Target, structMember1Node, container.Struct.Struct1.Struct2, container.Struct.Struct1.Struct2.Name, nameof(SimpleStruct.Name), false);
            Helper.TestMemberNode(secondNestingMemberNode.Target, structMember2Node, container.Struct.Struct1.Struct2, container.Struct.Struct1.Struct2.Value, nameof(SimpleStruct.Value), false);
        }
Ejemplo n.º 3
0
        public void TestFirstNestedStructUpdate()
        {
            var nodeContainer = new NodeContainer();
            var container = new NestingStructContainer { Struct = new FirstNestingStruct { Struct1 = new SecondNestingStruct { Struct2 = new SimpleStruct { Name = "Test", Value = 1 } } } };
            var containerNode = nodeContainer.GetOrCreateNode(container);
            var memberNode = containerNode.Children.First();

            var newStruct = new FirstNestingStruct { Struct1 = new SecondNestingStruct { Struct2 = new SimpleStruct { Name = "Test2", Value = 2 } } };
            memberNode.Content.Update(newStruct);
            Assert.AreEqual("Test2", container.Struct.Struct1.Struct2.Name);
            Assert.AreEqual(2, container.Struct.Struct1.Struct2.Value);

            Helper.TestNonCollectionObjectContentNode(containerNode, container, 1);
            Helper.TestMemberContentNode(containerNode, memberNode, container, container.Struct, nameof(StructContainer.Struct), false);
            Helper.TestStructContentNode(memberNode, container.Struct, 1);
            var firstNestingMemberNode = memberNode.Children.First();
            Helper.TestMemberContentNode(memberNode, firstNestingMemberNode, container.Struct, container.Struct.Struct1, nameof(FirstNestingStruct.Struct1), false);
            Helper.TestStructContentNode(firstNestingMemberNode, container.Struct.Struct1, 1);
            var secondNestingMemberNode = firstNestingMemberNode.Children.First();
            Helper.TestMemberContentNode(firstNestingMemberNode, secondNestingMemberNode, container.Struct.Struct1, container.Struct.Struct1.Struct2, nameof(SecondNestingStruct.Struct2), false);
            Helper.TestStructContentNode(secondNestingMemberNode, container.Struct.Struct1.Struct2, 2);
            var structMember1Node = secondNestingMemberNode.Children.First();
            Helper.TestMemberContentNode(secondNestingMemberNode, structMember1Node, container.Struct.Struct1.Struct2, container.Struct.Struct1.Struct2.Name, nameof(SimpleStruct.Name), false);
            var structMember2Node = secondNestingMemberNode.Children.Last();
            Helper.TestMemberContentNode(secondNestingMemberNode, structMember2Node, container.Struct.Struct1.Struct2, container.Struct.Struct1.Struct2.Value, nameof(SimpleStruct.Value), false);
        }