public void ComplexMapping_ExercisesAllSetters()
        {
            _mapper.LoadStandardConverters();
            var domainClassObj = new DomainClassComplex();

            _mapper.RegisterOneWayMapping <ResourceClassSimple, DomainClassComplex>(mapping => {
                mapping.Set(to => to.IntConversionProperty, from => ((InheritsFromResourceClassSimple)from).StringProperty);
                mapping.Set(to => to.StringConversionProperty, (from, to, context) => ((InheritsFromResourceClassSimple)from).IntProperty);
                mapping.Set(to => to.RecursiveExampleProperty, () => domainClassObj, false);
                mapping.Set(to => to.ExamplePropertyList, from => new [] { from });
                mapping.Set(to => to.ExamplePropertyArray, from => new [] { from });
                mapping.Set(to => to.ExampleProperty, from => new InheritsFromDomainClassSimple(), false);
                mapping.Set(to => ((InheritsFromDomainClassSimple)to.ExampleProperty).StringProperty, from => ((InheritsFromResourceClassSimple)from).StringProperty);
            });
            _mapper.RegisterOneWayMapping <ResourceClassSimple, DomainClassSimple>(mapping => mapping.Ignore(to => to.RandomProperty));
            _mapper.InitializeMap();

            var sourceObj = _builder.Build <InheritsFromResourceClassSimple>();

            var resultObj = _mapper.Map <ResourceClassSimple, DomainClassComplex>(sourceObj, null);

            Assert.AreEqual(sourceObj.StringProperty, resultObj.IntConversionProperty);
            Assert.AreEqual(sourceObj.IntProperty, resultObj.StringConversionProperty);
            Assert.AreSame(domainClassObj, resultObj.RecursiveExampleProperty);
            Assert.AreEqual(1, resultObj.ExamplePropertyList.Count);
            Assert.AreEqual(sourceObj.ExampleProperty, resultObj.ExamplePropertyList[0].ExampleProperty);
            Assert.AreEqual(1, resultObj.ExamplePropertyArray.Length);
            Assert.AreEqual(sourceObj.ExampleProperty, resultObj.ExamplePropertyArray[0].ExampleProperty);
            Assert.IsInstanceOf <InheritsFromDomainClassSimple>(resultObj.ExampleProperty);
            Assert.AreEqual(sourceObj.StringProperty, ((InheritsFromDomainClassSimple)resultObj.ExampleProperty).StringProperty);
        }
Пример #2
0
        public double BenchmarkNative()
        {
            var start = DateTime.Now;

            for (int i = 0; i < Total; i++)
            {
                var domainObj = new DomainClassComplex();
                Map(_resourceObj, domainObj);
            }
            var end = DateTime.Now;

            return((end - start).TotalMilliseconds);
        }
Пример #3
0
        public void RegisterOneWayMapping_ComplexObjects()
        {
            _mapper.ConvertUsing <string, int>(Convert.ToInt32);
            _mapper.ConvertUsing <int, string>(Convert.ToString);
            _mapper.RegisterOneWayMapping <ResourceClassComplex, DomainClassComplex>();
            _mapper.InitializeMap();

            var resourceObj = _builder.Build <ResourceClassComplex>();
            var domainObj   = new DomainClassComplex();

            _mapper.Map(resourceObj, domainObj, null);
            AssertAreEqual(resourceObj, domainObj);
        }
Пример #4
0
        private static void AssertAreEqual(ResourceClassComplex resource, DomainClassComplex domain)
        {
            AssertAreEqual(resource.ExampleProperty, domain.ExampleProperty);

            if (resource.ExamplePropertyArray != null)
            {
                Assert.AreEqual(resource.ExamplePropertyArray.Count, domain.ExamplePropertyArray.Length);
                int index = 0;
                foreach (var simple in resource.ExamplePropertyArray)
                {
                    AssertAreEqual(simple, domain.ExamplePropertyArray[index++]);
                }
            }
            else
            {
                Assert.IsNull(domain.ExamplePropertyArray);
            }

            if (resource.ExamplePropertyList != null)
            {
                Assert.AreEqual(resource.ExamplePropertyList.Length, domain.ExamplePropertyList.Count);
                var index = 0;
                foreach (var simple in resource.ExamplePropertyList)
                {
                    AssertAreEqual(simple, domain.ExamplePropertyList[index++]);
                }
            }
            else
            {
                Assert.IsNull(domain.ExamplePropertyList);
            }

            if (resource.RecursiveExampleProperty != null)
            {
                Assert.IsNotNull(domain.RecursiveExampleProperty);
                AssertAreEqual(resource.RecursiveExampleProperty, domain.RecursiveExampleProperty);
            }
            else
            {
                Assert.IsNull(domain.RecursiveExampleProperty);
            }
        }
Пример #5
0
        public double BenchmarkTransmute(MapBuilder builderType)
        {
            // Resource mapper
            var mapper = new ResourceMapper <object>(builderType);

            mapper.LoadStandardConverters();
            mapper.RegisterOneWayMapping <ResourceClassComplex, DomainClassComplex>();
            mapper.RegisterOneWayMapping <ResourceClassSimple, DomainClassSimple>(mapping => mapping.Ignore(to => to.RandomProperty));
            mapper.InitializeMap();

            var start = DateTime.Now;

            for (int i = 0; i < Total; i++)
            {
                var domainObj = new DomainClassComplex();
                mapper.Map(_resourceObj, domainObj, null);
            }
            var end = DateTime.Now;

            return((end - start).TotalMilliseconds);
        }
Пример #6
0
 private static void Map(ResourceClassComplex from, DomainClassComplex to)
 {
     to.ExampleProperty = from.ExampleProperty == null ? null : new DomainClassSimple()
     {
         ExampleProperty = from.ExampleProperty.ExampleProperty
     };
     to.IntConversionProperty    = from.IntConversionProperty.ToString();
     to.StringConversionProperty = int.Parse(from.StringConversionProperty);
     to.ExamplePropertyList      = from.ExamplePropertyList == null ? null : from.ExamplePropertyList.Select(p => p == null ? null : new DomainClassSimple()
     {
         ExampleProperty = p.ExampleProperty
     }).ToList();
     to.ExamplePropertyArray = from.ExamplePropertyArray == null ? null : from.ExamplePropertyArray.Select(p => p == null ? null : new DomainClassSimple()
     {
         ExampleProperty = p.ExampleProperty
     }).ToArray();
     if (from.RecursiveExampleProperty != null)
     {
         to.RecursiveExampleProperty = new DomainClassComplex();
         Map(from.RecursiveExampleProperty, to.RecursiveExampleProperty);
     }
 }