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