/// <inheritdoc />
        protected override IMappingEngine CreateEngine(IUnityContainer container)
        {
            var locator = container.Resolve <IServiceLocator>();
            var engine  = new SimpleMappingEngine(locator)
            {
                CacheMappers = CacheMappers
            };

            return(engine);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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());
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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());
        }