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