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); }
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); }
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); }