public void CreateSimpleMapTest() { SimpleClass1 c = new SimpleClass1() { Int = 8, Str = "123" }; SimpleClass4 c4 = new SimpleClass4() { Int = 8, Str = "123", Bool = true }; _mapper.CreateMap <SimpleClass1, SimpleClass2>(); _mapper.CreateMap <SimpleClass4, SimpleClass1>(); SimpleClass2 c2 = _mapper.Map <SimpleClass2>(c); SimpleClass1 c1 = _mapper.Map <SimpleClass1>(c4); Assert.AreEqual(c.Int, c2.Int); Assert.AreEqual(c.Str, c2.Str); Assert.AreEqual(c.Int, c4.Int); Assert.AreEqual(c.Str, c4.Str); Assert.Catch <Exception>(() => { SimpleClass4 c41 = _mapper.Map <SimpleClass4>(c); }); }
public void TestMultipleReferences() { var nodeContainer = new NodeContainer(); var commonObj = new SimpleClass(); var instance = new SimpleClass2 { Member1 = 3, Member2 = new SimpleClass { Member1 = 4, Member2 = commonObj }, Member3 = new SimpleClass { Member1 = 5, Member2 = commonObj } }; var rootNode = nodeContainer.GetOrCreateNode(instance); var visitor = new TestVisitor(); visitor.Visit(rootNode); var expectedNodes = new IContentNode[] { rootNode, rootNode[nameof(SimpleClass2.Member1)], rootNode[nameof(SimpleClass2.Member2)], rootNode[nameof(SimpleClass2.Member2)].Target, rootNode[nameof(SimpleClass2.Member2)].Target[nameof(SimpleClass.Member1)], rootNode[nameof(SimpleClass2.Member2)].Target[nameof(SimpleClass.Member2)], rootNode[nameof(SimpleClass2.Member2)].Target[nameof(SimpleClass.Member2)].Target, rootNode[nameof(SimpleClass2.Member2)].Target[nameof(SimpleClass.Member2)].Target[nameof(SimpleClass.Member1)], rootNode[nameof(SimpleClass2.Member2)].Target[nameof(SimpleClass.Member2)].Target[nameof(SimpleClass.Member2)], rootNode[nameof(SimpleClass2.Member3)], rootNode[nameof(SimpleClass2.Member3)].Target, rootNode[nameof(SimpleClass2.Member3)].Target[nameof(SimpleClass.Member1)], rootNode[nameof(SimpleClass2.Member3)].Target[nameof(SimpleClass.Member2)], rootNode[nameof(SimpleClass2.Member3)].Target[nameof(SimpleClass.Member2)].Target, rootNode[nameof(SimpleClass2.Member3)].Target[nameof(SimpleClass.Member2)].Target[nameof(SimpleClass.Member1)], rootNode[nameof(SimpleClass2.Member3)].Target[nameof(SimpleClass.Member2)].Target[nameof(SimpleClass.Member2)], }; var expectedPaths = new[] { new GraphNodePath(rootNode), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member1)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member2)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member2)).PushTarget(), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member1)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member2)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member2)).PushTarget(), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member1)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member2)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member3)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member3)).PushTarget(), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member3)).PushTarget().PushMember(nameof(SimpleClass.Member1)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member3)).PushTarget().PushMember(nameof(SimpleClass.Member2)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member3)).PushTarget().PushMember(nameof(SimpleClass.Member2)).PushTarget(), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member3)).PushTarget().PushMember(nameof(SimpleClass.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member1)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member3)).PushTarget().PushMember(nameof(SimpleClass.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member2)), }; VerifyNodesAndPath(expectedNodes, expectedPaths, visitor); }
public void CreateTwoWayMapTest() { SimpleClass1 c = new SimpleClass1() { Int = 8, Str = "123" }; _mapper.CreateTwoWayMap <SimpleClass1, SimpleClass2>(); SimpleClass2 c2 = _mapper.Map <SimpleClass2>(c); SimpleClass1 c3 = _mapper.Map <SimpleClass1>(c2); Assert.AreEqual(c.Int, c2.Int); Assert.AreEqual(c.Str, c2.Str); Assert.AreEqual(c.Int, c3.Int); Assert.AreEqual(c.Str, c3.Str); }
public void TestMultipleReferences() { var nodeContainer = new NodeContainer(); var commonObj = new SimpleClass(); var instance = new SimpleClass2 { Member1 = 3, Member2 = new SimpleClass { Member1 = 4, Member2 = commonObj }, Member3 = new SimpleClass { Member1 = 5, Member2 = commonObj } }; var rootNode = nodeContainer.GetOrCreateNode(instance); var visitor = new TestVisitor(); visitor.Visit(rootNode); var expectedNodes = new IGraphNode[] { rootNode, rootNode[nameof(SimpleClass2.Member1)], rootNode[nameof(SimpleClass2.Member2)], rootNode[nameof(SimpleClass2.Member2)].Target, rootNode[nameof(SimpleClass2.Member2)].Target[nameof(SimpleClass.Member1)], rootNode[nameof(SimpleClass2.Member2)].Target[nameof(SimpleClass.Member2)], rootNode[nameof(SimpleClass2.Member2)].Target[nameof(SimpleClass.Member2)].Target, rootNode[nameof(SimpleClass2.Member2)].Target[nameof(SimpleClass.Member2)].Target[nameof(SimpleClass.Member1)], rootNode[nameof(SimpleClass2.Member2)].Target[nameof(SimpleClass.Member2)].Target[nameof(SimpleClass.Member2)], rootNode[nameof(SimpleClass2.Member3)], rootNode[nameof(SimpleClass2.Member3)].Target, rootNode[nameof(SimpleClass2.Member3)].Target[nameof(SimpleClass.Member1)], rootNode[nameof(SimpleClass2.Member3)].Target[nameof(SimpleClass.Member2)], rootNode[nameof(SimpleClass2.Member3)].Target[nameof(SimpleClass.Member2)].Target, rootNode[nameof(SimpleClass2.Member3)].Target[nameof(SimpleClass.Member2)].Target[nameof(SimpleClass.Member1)], rootNode[nameof(SimpleClass2.Member3)].Target[nameof(SimpleClass.Member2)].Target[nameof(SimpleClass.Member2)], }; var expectedPaths = new GraphNodePath[16]; expectedPaths[0] = new GraphNodePath(rootNode); expectedPaths[1] = expectedPaths[0].Clone(); expectedPaths[1].PushMember(nameof(SimpleClass2.Member1)); expectedPaths[2] = expectedPaths[0].Clone(); expectedPaths[2].PushMember(nameof(SimpleClass2.Member2)); expectedPaths[3] = expectedPaths[2].Clone(); expectedPaths[3].PushTarget(); expectedPaths[4] = expectedPaths[3].Clone(); expectedPaths[4].PushMember(nameof(SimpleClass.Member1)); expectedPaths[5] = expectedPaths[3].Clone(); expectedPaths[5].PushMember(nameof(SimpleClass.Member2)); expectedPaths[6] = expectedPaths[5].Clone(); expectedPaths[6].PushTarget(); expectedPaths[7] = expectedPaths[6].Clone(); expectedPaths[7].PushMember(nameof(SimpleClass.Member1)); expectedPaths[8] = expectedPaths[6].Clone(); expectedPaths[8].PushMember(nameof(SimpleClass.Member2)); expectedPaths[9] = expectedPaths[0].Clone(); expectedPaths[9].PushMember(nameof(SimpleClass2.Member3)); expectedPaths[10] = expectedPaths[9].Clone(); expectedPaths[10].PushTarget(); expectedPaths[11] = expectedPaths[10].Clone(); expectedPaths[11].PushMember(nameof(SimpleClass.Member1)); expectedPaths[12] = expectedPaths[10].Clone(); expectedPaths[12].PushMember(nameof(SimpleClass.Member2)); expectedPaths[13] = expectedPaths[12].Clone(); expectedPaths[13].PushTarget(); expectedPaths[14] = expectedPaths[13].Clone(); expectedPaths[14].PushMember(nameof(SimpleClass.Member1)); expectedPaths[15] = expectedPaths[13].Clone(); expectedPaths[15].PushMember(nameof(SimpleClass.Member2)); VerifyNodesAndPath(expectedNodes, expectedPaths, visitor); }
public void TestMultipleReferences() { var nodeContainer = new NodeContainer(); var commonObj = new SimpleClass(); var instance = new SimpleClass2 { Member1 = 3, Member2 = new SimpleClass { Member1 = 4, Member2 = commonObj }, Member3 = new SimpleClass { Member1 = 5, Member2 = commonObj } }; var rootNode = nodeContainer.GetOrCreateNode(instance); var visitor = new TestVisitor(); visitor.Visit(rootNode); var expectedNodes = new[] { rootNode, rootNode.TryGetChild(nameof(SimpleClass2.Member1)), rootNode.TryGetChild(nameof(SimpleClass2.Member2)), rootNode.TryGetChild(nameof(SimpleClass2.Member2)).Target, rootNode.TryGetChild(nameof(SimpleClass2.Member2)).Target.TryGetChild(nameof(SimpleClass.Member1)), rootNode.TryGetChild(nameof(SimpleClass2.Member2)).Target.TryGetChild(nameof(SimpleClass.Member2)), rootNode.TryGetChild(nameof(SimpleClass2.Member2)).Target.TryGetChild(nameof(SimpleClass.Member2)).Target, rootNode.TryGetChild(nameof(SimpleClass2.Member2)).Target.TryGetChild(nameof(SimpleClass.Member2)).Target.TryGetChild(nameof(SimpleClass.Member1)), rootNode.TryGetChild(nameof(SimpleClass2.Member2)).Target.TryGetChild(nameof(SimpleClass.Member2)).Target.TryGetChild(nameof(SimpleClass.Member2)), rootNode.TryGetChild(nameof(SimpleClass2.Member3)), rootNode.TryGetChild(nameof(SimpleClass2.Member3)).Target, rootNode.TryGetChild(nameof(SimpleClass2.Member3)).Target.TryGetChild(nameof(SimpleClass.Member1)), rootNode.TryGetChild(nameof(SimpleClass2.Member3)).Target.TryGetChild(nameof(SimpleClass.Member2)), rootNode.TryGetChild(nameof(SimpleClass2.Member3)).Target.TryGetChild(nameof(SimpleClass.Member2)).Target, rootNode.TryGetChild(nameof(SimpleClass2.Member3)).Target.TryGetChild(nameof(SimpleClass.Member2)).Target.TryGetChild(nameof(SimpleClass.Member1)), rootNode.TryGetChild(nameof(SimpleClass2.Member3)).Target.TryGetChild(nameof(SimpleClass.Member2)).Target.TryGetChild(nameof(SimpleClass.Member2)), }; var expectedPaths = new[] { new GraphNodePath(rootNode), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member1)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member2)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member2)).PushTarget(), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member1)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member2)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member2)).PushTarget(), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member1)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member2)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member3)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member3)).PushTarget(), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member3)).PushTarget().PushMember(nameof(SimpleClass.Member1)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member3)).PushTarget().PushMember(nameof(SimpleClass.Member2)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member3)).PushTarget().PushMember(nameof(SimpleClass.Member2)).PushTarget(), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member3)).PushTarget().PushMember(nameof(SimpleClass.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member1)), new GraphNodePath(rootNode).PushMember(nameof(SimpleClass2.Member3)).PushTarget().PushMember(nameof(SimpleClass.Member2)).PushTarget().PushMember(nameof(SimpleClass.Member2)), }; VerifyNodesAndPath(expectedNodes, expectedPaths, visitor); }