/// <inheritdoc /> protected override IMappingEngine CreateEngine(IUnityContainer container) { var locator = container.Resolve <IServiceLocator>(); var engine = new SimpleMappingEngine(locator) { CacheMappers = CacheMappers }; return(engine); }
/// <summary> /// Check whether a mapper is in a version. /// </summary> /// <typeparam name="TSource">Source type</typeparam> /// <typeparam name="TDestination">Result type</typeparam> /// <param name="engine">Engine to use.</param> /// <param name="implementation">Type of mapper we expect</param> public static void ResolveMapper <TSource, TDestination>(this SimpleMappingEngine engine, Type implementation) { if (engine == null) { throw new NotSupportedException("Must supply engine"); } var mapper = engine.Mapper <TSource, TDestination>(); Assert.AreSame(mapper.GetType(), implementation, string.Format("{0} vs {1}", implementation.FullName, mapper.GetType().FullName)); }
public void RegisteredMapperIsReturned() { var locator = new Mock<IServiceLocator>(MockBehavior.Strict); var engine = new SimpleMappingEngine(locator.Object); engine.RegisterMap(new AnimalAnimalModelMapper()); var candidate = engine.Mapper<Animal, AnimalModel>(); Assert.IsNotNull(candidate); }
public void RegisteredMapperIsReturned() { var locator = new Mock <IServiceLocator>(MockBehavior.Strict); var engine = new SimpleMappingEngine(locator.Object); engine.RegisterMap(new AnimalAnimalModelMapper()); var candidate = engine.Mapper <Animal, AnimalModel>(); Assert.IsNotNull(candidate); }
public void Configure() { var mappingEngine = new SimpleMappingEngine(this.container.Resolve <IServiceLocator>()); // Register in the container for consumers);); this.container.RegisterInstance(typeof(IMappingEngine), mappingEngine); // Contract -> Domain // Domain -> Contract mappingEngine.RegisterMap(new SystemDataMapper()); mappingEngine.RegisterMap(new EntityMappingMapper()); }
public void Configure() { var mappingEngine = new SimpleMappingEngine(this.container.Resolve<IServiceLocator>()); // Register in the container for consumers);); this.container.RegisterInstance(typeof(IMappingEngine), mappingEngine); // Contract -> Domain // Domain -> Contract mappingEngine.RegisterMap(new SystemDataMapper()); mappingEngine.RegisterMap(new EntityMappingMapper()); }
public void MapCreatesDestination() { var locator = new Mock<IServiceLocator>(MockBehavior.Strict); var engine = new SimpleMappingEngine(locator.Object); engine.RegisterMap(new AnimalAnimalModelMapper()); var source = new Animal { Id = 1, Name = "Test" }; var expected = new AnimalModel { Id = 1, Name = "Test" }; var candidate = engine.Map<Animal, AnimalModel>(source); this.Check(expected, candidate); }
public void LocatorCalledOnceWhenCaching() { var locator = new Mock<IServiceLocator>(MockBehavior.Strict); var engine = new SimpleMappingEngine(locator.Object) { CacheMappers = true }; var expected = new AnimalAnimalModelMapper(); var type = typeof(IMapper<Animal, AnimalModel>); locator.Setup(x => x.GetInstance(type)).Returns(expected); var candidate = engine.Mapper<Animal, AnimalModel>(); candidate = engine.Mapper<Animal, AnimalModel>(); Assert.IsNotNull(candidate); locator.Verify(x => x.GetInstance(type), Times.Once()); }
public void MapCreatesDestination() { var locator = new Mock <IServiceLocator>(MockBehavior.Strict); var engine = new SimpleMappingEngine(locator.Object); engine.RegisterMap(new AnimalAnimalModelMapper()); var source = new Animal { Id = 1, Name = "Test" }; var expected = new AnimalModel { Id = 1, Name = "Test" }; var candidate = engine.Map <Animal, AnimalModel>(source); this.Check(expected, candidate); }
public void LocatorCalledOnceWhenCaching() { var locator = new Mock <IServiceLocator>(MockBehavior.Strict); var engine = new SimpleMappingEngine(locator.Object) { CacheMappers = true }; var expected = new AnimalAnimalModelMapper(); var type = typeof(IMapper <Animal, AnimalModel>); locator.Setup(x => x.GetInstance(type)).Returns(expected); var candidate = engine.Mapper <Animal, AnimalModel>(); candidate = engine.Mapper <Animal, AnimalModel>(); Assert.IsNotNull(candidate); locator.Verify(x => x.GetInstance(type), Times.Once()); }