private void ActiveAllPOConfig() { AutoMapper_POMapper = new AutoMapperPersistentObjectMapper(null); var config = new MapperConfiguration(cfg => { cfg.DisableConstructorMapping(); ((AutoMapperPersistentObjectMapper)AutoMapper_POMapper).SetAutoMapperConfigExpression(cfg); //use to active mapping info. AggregateRootPOModel po = new AggregateRootPOModel(); (po as INeedParts <IPersistentObjectMapper>).SetParts(AutoMapper_POMapper); po.ConfigureMapping(); (po as IHasAccessor <IPersistentObjectMapConfig>)?.Instance?.Build(); }); var mapper = config.CreateMapper(); AutoMapper_POMapper = new AutoMapperPersistentObjectMapper(mapper); }
public void MapDoAndPO_NormalMap() { var mapper = new EFCorePoManager <PersistentAggregateRoot, AggregateRootPOModel>(AutoMapper_POMapper); var aggregateRoot = new PersistentAggregateRoot("Hello", new ColorValueObject(255, 255, 255)); var poResult = mapper.MapToPO(aggregateRoot); Assert.NotNull(poResult); Assert.Equal("Hello", poResult.Name); Assert.Equal(255, poResult.R); Assert.Equal(255, poResult.G); Assert.Equal(255, poResult.B); var pOModel = new AggregateRootPOModel("Hello", 255, 255, 255); var doResult = mapper.MapToDO(pOModel); Assert.NotNull(doResult); Assert.Equal("Hello", doResult.Name); Assert.Equal(255, doResult.Color.R); Assert.Equal(255, doResult.Color.G); Assert.Equal(255, doResult.Color.B); }
public void MapDoAndPO_GiveOriginalObject_ShouldChangeOriginalObjectValue() { var mapper = new EFCorePoManager <PersistentAggregateRoot, AggregateRootPOModel>(AutoMapper_POMapper); var poSource = new AggregateRootPOModel("Hello", 255, 255, 255) { Id = 10086 }; //For example:repository.Find(); var doResult = mapper.MapToDO(poSource); doResult.SetColor(new ColorValueObject(0, 0, 0)); //For example:repository.Update(); var updatedPoSource = mapper.MapToPO(doResult); Assert.Same(poSource, updatedPoSource); Assert.Equal(10086, updatedPoSource.Id); Assert.Equal(0, updatedPoSource.R); Assert.Equal(0, updatedPoSource.G); Assert.Equal(0, updatedPoSource.B); }