public void ShouldMapInheritedComposedObject() { var foo = new FooO() { Property1 = 18, Foo = new FooX() { Property1 = 7, Property2 = 6 } }; var mapper = CreateMapper(new ResolverMock(), builder => { builder.CreateMap <Foo, Bar>() .MapProperty(x => x.Property1, x => x.Property3); builder.CreateMap <FooX, BarX>() .MapProperty(x => x.Property2, x => x.Property4); builder.CreateMap <FooO, BarO>() .MapProperty(x => x.Property1, x => x.Property1) .MapObject(x => x.Foo, x => x.Bar); }); var bar = mapper.Map <BarO>(foo); Assert.AreEqual(foo.Property1, bar.Property1); Assert.AreEqual(foo.Foo.Property1, bar.Bar.Property3); Assert.IsInstanceOf <BarX>(bar.Bar); Assert.AreEqual(((FooX)foo.Foo).Property2, ((BarX)bar.Bar).Property4); }
public void ShouldMapComposedObjectExistingObject() { var foo = new FooO() { Property1 = 18, Foo = new Foo() { Property1 = 7 } }; var mapper = CreateMapper(new ResolverMock(), builder => { builder.CreateMap <Foo, Bar>() .MapProperty(x => x.Property1, x => x.Property3); builder.CreateMap <FooO, BarO>() .MapProperty(x => x.Property1, x => x.Property1) .MapObject(x => x.Foo, x => x.Bar); }); var bar = new Bar(); var barO = new BarO { Bar = bar }; mapper.Map(foo, barO); Assert.AreEqual(foo.Property1, barO.Property1); Assert.AreEqual(foo.Foo.Property1, barO.Bar.Property3); Assert.AreSame(bar, barO.Bar, "Should not have created a new instance of Bar"); }
public void ShouldMapComposedObject() { var foo = new FooO() { Property1 = 18, Foo = new Foo() { Property1 = 7 } }; var mapper = CreateMapper(new ResolverMock(), builder => { builder.CreateMap <Foo, Bar>() .MapProperty(x => x.Property1, x => x.Property3); builder.CreateMap <FooO, BarO>() .MapProperty(x => x.Property1, x => x.Property1) .MapObject(x => x.Foo, x => x.Bar); }); var bar = mapper.Map <BarO>(foo); Assert.AreEqual(foo.Property1, bar.Property1); Assert.AreEqual(foo.Foo.Property1, bar.Bar.Property3); }