Ejemplo n.º 1
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 XmlMappingEngine 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 FindMapperViaTypes()
        {
            var locator = new Mock<IServiceLocator>();
            var factory = new LocatorXmlMapperFactory(locator.Object);
            var engine = new XmlMappingEngine(factory);

            var type = typeof(IXmlMapper<Parent, XElement>);
            locator.Setup(x => x.GetInstance(type, null)).Returns(new ParentXmlMapper(engine));

            var candidate = factory.Mapper(typeof(Parent), typeof(XElement));
            Assert.IsNotNull(candidate);
            Assert.IsTrue(candidate is ParentXmlMapper);
        }
Ejemplo n.º 3
0
        public void FindMapperViaTypes()
        {
            var locator = new Mock <IServiceLocator>();
            var factory = new LocatorXmlMapperFactory(locator.Object);
            var engine  = new XmlMappingEngine(factory);

            var type = typeof(IXmlMapper <Parent, XElement>);

            locator.Setup(x => x.GetInstance(type, null)).Returns(new ParentXmlMapper(engine));

            var candidate = factory.Mapper(typeof(Parent), typeof(XElement));

            Assert.IsNotNull(candidate);
            Assert.IsTrue(candidate is ParentXmlMapper);
        }
Ejemplo n.º 4
0
        /// <inheritdoc />
        protected override IXmlMappingEngine CreateEngine(IUnityContainer container)
        {
            // Get the service locator.
            var locator = container.Resolve <IServiceLocator>();

            IXmlMapperFactory mapperFactory = new LocatorXmlMapperFactory(locator);

            if (CacheMappers)
            {
                // Wrap in the cache provider.
                var lf = mapperFactory;
                mapperFactory = new CachingXmlMapperFactory(lf);
            }
            var engine = new XmlMappingEngine(mapperFactory);

            return(engine);
        }
Ejemplo n.º 5
0
        public virtual void Initialize()
        {
            ExpectedXml = CreateExpectedXml();
            ExpectedDto = CreateExpectedDto();

            var locator = new Mock <IServiceLocator>();
            var factory = new LocatorXmlMapperFactory(locator.Object);
            var cache   = new CachingXmlMapperFactory(factory);

            MappingEngine = new XmlMappingEngine(cache);
            RegisterChildMappers(MappingEngine);

            XPathProcessor = new XPathProcessor();
            XPathProcessor.Initialize(ExpectedXml);

            Mapper = CreateMapper(MappingEngine);
            MappingEngine.RegisterMapper(Mapper);
        }
        public void FindMapperViaGeneric()
        {
            var locator = new Mock<IServiceLocator>();
            var innerFactory = new Mock<IXmlMapperFactory>();
            var factory = new CachingXmlMapperFactory(innerFactory.Object);
            var mapperFactory = new LocatorXmlMapperFactory(locator.Object);
            var engine = new XmlMappingEngine(mapperFactory);

            var type = typeof(IXmlMapper<Parent, XElement>);
            innerFactory.Setup(x => x.Mapper(typeof(Parent), typeof(XElement), null)).Returns(new ParentXmlMapper(engine));
            locator.Setup(x => x.GetInstance(type)).Returns(new ParentXmlMapper(engine));

            var candidate = factory.Mapper<Parent, XElement>();
            Assert.IsNotNull(candidate);
            Assert.IsTrue(candidate is ParentXmlMapper);

            // Call again
            factory.Mapper<Parent, XElement>();
            innerFactory.Verify(x => x.Mapper(typeof(Parent), typeof(XElement), null), Times.Once());
        }
        public void FindMapperViaGeneric()
        {
            var locator       = new Mock <IServiceLocator>();
            var innerFactory  = new Mock <IXmlMapperFactory>();
            var factory       = new CachingXmlMapperFactory(innerFactory.Object);
            var mapperFactory = new LocatorXmlMapperFactory(locator.Object);
            var engine        = new XmlMappingEngine(mapperFactory);

            var type = typeof(IXmlMapper <Parent, XElement>);

            innerFactory.Setup(x => x.Mapper(typeof(Parent), typeof(XElement), null)).Returns(new ParentXmlMapper(engine));
            locator.Setup(x => x.GetInstance(type)).Returns(new ParentXmlMapper(engine));

            var candidate = factory.Mapper <Parent, XElement>();

            Assert.IsNotNull(candidate);
            Assert.IsTrue(candidate is ParentXmlMapper);

            // Call again
            factory.Mapper <Parent, XElement>();
            innerFactory.Verify(x => x.Mapper(typeof(Parent), typeof(XElement), null), Times.Once());
        }