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