public void When_Mapping_Derived_Instance_Then_Uses_Inherited_Binding() { // Arrange var sut = new Mapper(); sut.BuildClassMap<VehicleFrom, VehicleTo>() .For(x => x.Name, o => o.Custom(_ => "Ferrari")); sut.BuildClassMap<CarFrom, CarTo>() .InheritsFrom<VehicleFrom, VehicleTo>(); var from = new CarFrom() {Name = "Porsche", NumSeats = 4}; var to = new CarTo(); // Act sut.Merge(from, to); // Assert Assert.AreEqual("Ferrari", to.Name); Assert.AreEqual(from.NumSeats, to.NumSeats); }
public void When_Mapping_Derived_Instance_As_Base_Then_Maps_Polymorphically_As_Derived() { // Arrange var sut = new Mapper(); sut.BuildPolymorphicMap<VehicleFrom, VehicleTo>() .AddPolymorph<CarFrom, CarTo>(); sut.BuildClassMap<CarFrom, CarTo>(); var from = new CarFrom() {Name = "Porsche", NumSeats = 4}; // Act var to = sut.Map<VehicleFrom, VehicleTo>(from); var res = to as CarTo; // Assert Assert.NotNull(res); Assert.AreEqual("Porsche", res.Name); Assert.AreEqual(from.NumSeats, res.NumSeats); }