public void TestNestedStruct() { 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)]; 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 TestNestedStructMemberUpdate() { 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(); memberNode.Children.First().Children.First().Children.First().Content.Update("Test2"); memberNode.Children.First().Children.First().Children.Last().Content.Update(2); 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 TestNestedStructMemberUpdate() { 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(); memberNode.Children.First().Children.First().Children.First().Content.Update("Test2"); memberNode.Children.First().Children.First().Children.Last().Content.Update(2); 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); }