From 43e7e2a1451761f6ea239eb63dd4a1e2ab155acb Mon Sep 17 00:00:00 2001 From: Steve Wilkes Date: Wed, 5 Sep 2018 22:07:05 +0100 Subject: [PATCH 1/6] Start of platform-specific performance test changes --- .../AbstractMappers/ComplexTypeMapperBase.cs | 0 .../AbstractMappers/ComplexTypeMapperSetupBase.cs | 0 .../AbstractMappers/CtorMapperBase.cs | 0 .../AbstractMappers/DeepMapperBase.cs | 0 .../AbstractMappers/DeepMapperSetupBase.cs | 0 .../AbstractMappers/EntityMapperBase.cs | 0 .../AbstractMappers/EntityMapperSetupBase.cs | 0 .../AbstractMappers/FlatteningMapperBase.cs | 0 .../AbstractMappers/IObjectMapperTest.cs | 0 .../AbstractMappers/MapperInstantiationBase.cs | 0 .../AbstractMappers/MapperSetupTestBase.cs | 0 .../AbstractMappers/MapperTestBase.cs | 0 .../AbstractMappers/UnflatteningMapperBase.cs | 0 .../AbstractMappers/UnflatteningMapperSetupBase.cs | 0 .../AgileMapper.PerformanceTester.Net45.csproj | 4 ++-- .../App.config | 0 .../AgileMapper/AgileMapperComplexTypeMapper.cs | 0 .../AgileMapper/AgileMapperComplexTypeMapperSetup.cs | 0 .../ConcreteMappers/AgileMapper/AgileMapperCtorMapper.cs | 0 .../ConcreteMappers/AgileMapper/AgileMapperDeepMapper.cs | 0 .../ConcreteMappers/AgileMapper/AgileMapperDeepMapperSetup.cs | 0 .../ConcreteMappers/AgileMapper/AgileMapperEntityMapper.cs | 0 .../AgileMapper/AgileMapperEntityMapperSetup.cs | 0 .../AgileMapper/AgileMapperFlatteningMapper.cs | 0 .../ConcreteMappers/AgileMapper/AgileMapperInstantiation.cs | 0 .../AgileMapper/AgileMapperUnflatteningMapper.cs | 0 .../AgileMapper/AgileMapperUnflatteningMapperSetup.cs | 0 .../ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapper.cs | 0 .../AutoMapper/AutoMapperComplexTypeMapperSetup.cs | 0 .../ConcreteMappers/AutoMapper/AutoMapperCtorMapper.cs | 0 .../ConcreteMappers/AutoMapper/AutoMapperDeepMapper.cs | 0 .../ConcreteMappers/AutoMapper/AutoMapperDeepMapperSetup.cs | 0 .../ConcreteMappers/AutoMapper/AutoMapperEntityMapper.cs | 0 .../ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs | 0 .../ConcreteMappers/AutoMapper/AutoMapperFlatteningMapper.cs | 0 .../ConcreteMappers/AutoMapper/AutoMapperInstantiation.cs | 0 .../AutoMapper/AutoMapperUnflatteningMapper.cs | 0 .../AutoMapper/AutoMapperUnflatteningMapperSetup.cs | 0 .../ExpressMapper/ExpressMapperComplexTypeMapper.cs | 0 .../ExpressMapper/ExpressMapperComplexTypeMapperSetup.cs | 0 .../ConcreteMappers/ExpressMapper/ExpressMapperCtorMapper.cs | 0 .../ConcreteMappers/ExpressMapper/ExpressMapperDeepMapper.cs | 0 .../ExpressMapper/ExpressMapperDeepMapperSetup.cs | 0 .../ExpressMapper/ExpressMapperFlatteningMapper.cs | 0 .../ExpressMapper/ExpressMapperInstantiation.cs | 0 .../ConcreteMappers/Manual/ManualComplexTypeMapper.cs | 0 .../ConcreteMappers/Manual/ManualCtorMapper.cs | 0 .../ConcreteMappers/Manual/ManualDeepMapper.cs | 0 .../ConcreteMappers/Manual/ManualFlatteningMapper.cs | 0 .../ConcreteMappers/Manual/ManualUnflatteningMapper.cs | 0 .../ConcreteMappers/Mapster/MapsterComplexTypeMapper.cs | 0 .../ConcreteMappers/Mapster/MapsterComplexTypeMapperSetup.cs | 0 .../ConcreteMappers/Mapster/MapsterCtorMapper.cs | 0 .../ConcreteMappers/Mapster/MapsterDeepMapper.cs | 0 .../ConcreteMappers/Mapster/MapsterDeepMapperSetup.cs | 0 .../ConcreteMappers/Mapster/MapsterEntityMapper.cs | 0 .../ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs | 0 .../ConcreteMappers/Mapster/MapsterFlatteningMapper.cs | 0 .../ConcreteMappers/Mapster/MapsterMapperInstantiation.cs | 0 .../ValueInjecter/ValueInjecterComplexTypeMapper.cs | 0 .../ConcreteMappers/ValueInjecter/ValueInjecterCtorMapper.cs | 0 .../ConcreteMappers/ValueInjecter/ValueInjecterDeepMapper.cs | 0 .../ValueInjecter/ValueInjecterFlatteningMapper.cs | 0 .../ValueInjecter/ValueInjecterUnflatteningMapper.cs | 0 .../MapperTester.cs | 0 .../Program.cs | 2 +- .../Properties/AssemblyInfo.cs | 0 .../Results/2016-10-10.txt | 0 .../Results/2016-10-15 @ 66f3123.txt | 0 .../Results/2016-10-16 @ e356d85.txt | 0 .../Results/2016-10-17 @ 7875870.txt | 0 .../Results/2016-11-03 @ 61bf34c.txt | 0 .../Results/2016-11-04 @ 3b84f95.txt | 0 .../Results/2016-11-04 @ c71ba19.txt | 0 .../Results/2016-11-08 @ 57f1b16.txt | 0 .../Results/2016-11-08 @ af9e41a.txt | 0 .../Results/2016-11-12 @ 7acdd5c.txt | 0 .../Results/2016-11-12 @ 9670998.txt | 0 .../Results/2016-11-14 @ 1cc2239.txt | 0 .../Results/2016-11-17 @ ad1ff4d.txt | 0 .../Results/2016-11-19 @ aebda06.txt | 0 .../Results/2016-11-20 @ 697b7e3.txt | 0 .../Results/2016-11-29 @ 9c4b0b3.txt | 0 .../Results/2016-11-29 @ a3c3780.txt | 0 .../Results/2016-12-02 @ 0ccf054.txt | 0 .../Results/2016-12-23 @ f7c42f6.txt | 0 .../Results/2018-02-16 @ d78a210.txt | 0 .../Results/2018-02-17 @ 09dc6afd.txt | 0 .../Results/2018-02-19 @ db622efb.txt | 0 .../TestClasses/Ctor.cs | 0 .../TestClasses/Deep.cs | 0 .../TestClasses/Entities.cs | 0 .../TestClasses/Flattening.cs | 0 .../TestClasses/Foo.cs | 0 .../packages.config | 0 AgileMapper.sln | 2 +- 96 files changed, 4 insertions(+), 4 deletions(-) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/AbstractMappers/ComplexTypeMapperBase.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/AbstractMappers/ComplexTypeMapperSetupBase.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/AbstractMappers/CtorMapperBase.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/AbstractMappers/DeepMapperBase.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/AbstractMappers/DeepMapperSetupBase.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/AbstractMappers/EntityMapperBase.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/AbstractMappers/EntityMapperSetupBase.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/AbstractMappers/FlatteningMapperBase.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/AbstractMappers/IObjectMapperTest.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/AbstractMappers/MapperInstantiationBase.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/AbstractMappers/MapperSetupTestBase.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/AbstractMappers/MapperTestBase.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/AbstractMappers/UnflatteningMapperBase.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/AbstractMappers/UnflatteningMapperSetupBase.cs (100%) rename AgileMapper.PerformanceTester/AgileMapper.PerformanceTester.csproj => AgileMapper.PerformanceTester.Net45/AgileMapper.PerformanceTester.Net45.csproj (98%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/App.config (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapperSetup.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AgileMapper/AgileMapperCtorMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AgileMapper/AgileMapperDeepMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AgileMapper/AgileMapperDeepMapperSetup.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AgileMapper/AgileMapperEntityMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AgileMapper/AgileMapperEntityMapperSetup.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AgileMapper/AgileMapperFlatteningMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AgileMapper/AgileMapperInstantiation.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapperSetup.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapperSetup.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AutoMapper/AutoMapperCtorMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AutoMapper/AutoMapperDeepMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AutoMapper/AutoMapperDeepMapperSetup.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AutoMapper/AutoMapperEntityMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AutoMapper/AutoMapperFlatteningMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AutoMapper/AutoMapperInstantiation.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapperSetup.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapperSetup.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/ExpressMapper/ExpressMapperCtorMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapperSetup.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/ExpressMapper/ExpressMapperFlatteningMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/ExpressMapper/ExpressMapperInstantiation.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/Manual/ManualComplexTypeMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/Manual/ManualCtorMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/Manual/ManualDeepMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/Manual/ManualFlatteningMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/Manual/ManualUnflatteningMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/Mapster/MapsterComplexTypeMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/Mapster/MapsterComplexTypeMapperSetup.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/Mapster/MapsterCtorMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/Mapster/MapsterDeepMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/Mapster/MapsterDeepMapperSetup.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/Mapster/MapsterEntityMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/Mapster/MapsterFlatteningMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/Mapster/MapsterMapperInstantiation.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/ValueInjecter/ValueInjecterComplexTypeMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/ValueInjecter/ValueInjecterCtorMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/ValueInjecter/ValueInjecterDeepMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/ValueInjecter/ValueInjecterFlatteningMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/ConcreteMappers/ValueInjecter/ValueInjecterUnflatteningMapper.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/MapperTester.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Program.cs (99%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Properties/AssemblyInfo.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-10-10.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-10-15 @ 66f3123.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-10-16 @ e356d85.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-10-17 @ 7875870.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-11-03 @ 61bf34c.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-11-04 @ 3b84f95.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-11-04 @ c71ba19.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-11-08 @ 57f1b16.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-11-08 @ af9e41a.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-11-12 @ 7acdd5c.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-11-12 @ 9670998.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-11-14 @ 1cc2239.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-11-17 @ ad1ff4d.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-11-19 @ aebda06.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-11-20 @ 697b7e3.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-11-29 @ 9c4b0b3.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-11-29 @ a3c3780.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-12-02 @ 0ccf054.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2016-12-23 @ f7c42f6.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2018-02-16 @ d78a210.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2018-02-17 @ 09dc6afd.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/Results/2018-02-19 @ db622efb.txt (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/TestClasses/Ctor.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/TestClasses/Deep.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/TestClasses/Entities.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/TestClasses/Flattening.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/TestClasses/Foo.cs (100%) rename {AgileMapper.PerformanceTester => AgileMapper.PerformanceTester.Net45}/packages.config (100%) diff --git a/AgileMapper.PerformanceTester/AbstractMappers/ComplexTypeMapperBase.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/ComplexTypeMapperBase.cs similarity index 100% rename from AgileMapper.PerformanceTester/AbstractMappers/ComplexTypeMapperBase.cs rename to AgileMapper.PerformanceTester.Net45/AbstractMappers/ComplexTypeMapperBase.cs diff --git a/AgileMapper.PerformanceTester/AbstractMappers/ComplexTypeMapperSetupBase.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/ComplexTypeMapperSetupBase.cs similarity index 100% rename from AgileMapper.PerformanceTester/AbstractMappers/ComplexTypeMapperSetupBase.cs rename to AgileMapper.PerformanceTester.Net45/AbstractMappers/ComplexTypeMapperSetupBase.cs diff --git a/AgileMapper.PerformanceTester/AbstractMappers/CtorMapperBase.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/CtorMapperBase.cs similarity index 100% rename from AgileMapper.PerformanceTester/AbstractMappers/CtorMapperBase.cs rename to AgileMapper.PerformanceTester.Net45/AbstractMappers/CtorMapperBase.cs diff --git a/AgileMapper.PerformanceTester/AbstractMappers/DeepMapperBase.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/DeepMapperBase.cs similarity index 100% rename from AgileMapper.PerformanceTester/AbstractMappers/DeepMapperBase.cs rename to AgileMapper.PerformanceTester.Net45/AbstractMappers/DeepMapperBase.cs diff --git a/AgileMapper.PerformanceTester/AbstractMappers/DeepMapperSetupBase.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/DeepMapperSetupBase.cs similarity index 100% rename from AgileMapper.PerformanceTester/AbstractMappers/DeepMapperSetupBase.cs rename to AgileMapper.PerformanceTester.Net45/AbstractMappers/DeepMapperSetupBase.cs diff --git a/AgileMapper.PerformanceTester/AbstractMappers/EntityMapperBase.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/EntityMapperBase.cs similarity index 100% rename from AgileMapper.PerformanceTester/AbstractMappers/EntityMapperBase.cs rename to AgileMapper.PerformanceTester.Net45/AbstractMappers/EntityMapperBase.cs diff --git a/AgileMapper.PerformanceTester/AbstractMappers/EntityMapperSetupBase.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/EntityMapperSetupBase.cs similarity index 100% rename from AgileMapper.PerformanceTester/AbstractMappers/EntityMapperSetupBase.cs rename to AgileMapper.PerformanceTester.Net45/AbstractMappers/EntityMapperSetupBase.cs diff --git a/AgileMapper.PerformanceTester/AbstractMappers/FlatteningMapperBase.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/FlatteningMapperBase.cs similarity index 100% rename from AgileMapper.PerformanceTester/AbstractMappers/FlatteningMapperBase.cs rename to AgileMapper.PerformanceTester.Net45/AbstractMappers/FlatteningMapperBase.cs diff --git a/AgileMapper.PerformanceTester/AbstractMappers/IObjectMapperTest.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/IObjectMapperTest.cs similarity index 100% rename from AgileMapper.PerformanceTester/AbstractMappers/IObjectMapperTest.cs rename to AgileMapper.PerformanceTester.Net45/AbstractMappers/IObjectMapperTest.cs diff --git a/AgileMapper.PerformanceTester/AbstractMappers/MapperInstantiationBase.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/MapperInstantiationBase.cs similarity index 100% rename from AgileMapper.PerformanceTester/AbstractMappers/MapperInstantiationBase.cs rename to AgileMapper.PerformanceTester.Net45/AbstractMappers/MapperInstantiationBase.cs diff --git a/AgileMapper.PerformanceTester/AbstractMappers/MapperSetupTestBase.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/MapperSetupTestBase.cs similarity index 100% rename from AgileMapper.PerformanceTester/AbstractMappers/MapperSetupTestBase.cs rename to AgileMapper.PerformanceTester.Net45/AbstractMappers/MapperSetupTestBase.cs diff --git a/AgileMapper.PerformanceTester/AbstractMappers/MapperTestBase.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/MapperTestBase.cs similarity index 100% rename from AgileMapper.PerformanceTester/AbstractMappers/MapperTestBase.cs rename to AgileMapper.PerformanceTester.Net45/AbstractMappers/MapperTestBase.cs diff --git a/AgileMapper.PerformanceTester/AbstractMappers/UnflatteningMapperBase.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/UnflatteningMapperBase.cs similarity index 100% rename from AgileMapper.PerformanceTester/AbstractMappers/UnflatteningMapperBase.cs rename to AgileMapper.PerformanceTester.Net45/AbstractMappers/UnflatteningMapperBase.cs diff --git a/AgileMapper.PerformanceTester/AbstractMappers/UnflatteningMapperSetupBase.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/UnflatteningMapperSetupBase.cs similarity index 100% rename from AgileMapper.PerformanceTester/AbstractMappers/UnflatteningMapperSetupBase.cs rename to AgileMapper.PerformanceTester.Net45/AbstractMappers/UnflatteningMapperSetupBase.cs diff --git a/AgileMapper.PerformanceTester/AgileMapper.PerformanceTester.csproj b/AgileMapper.PerformanceTester.Net45/AgileMapper.PerformanceTester.Net45.csproj similarity index 98% rename from AgileMapper.PerformanceTester/AgileMapper.PerformanceTester.csproj rename to AgileMapper.PerformanceTester.Net45/AgileMapper.PerformanceTester.Net45.csproj index af7fce220..b3d41dc8a 100644 --- a/AgileMapper.PerformanceTester/AgileMapper.PerformanceTester.csproj +++ b/AgileMapper.PerformanceTester.Net45/AgileMapper.PerformanceTester.Net45.csproj @@ -8,8 +8,8 @@ {2B8A4535-7E5C-4DB6-BB86-06AEB4F3DE81} Exe Properties - AgileObjects.AgileMapper.PerformanceTester - AgileObjects.AgileMapper.PerformanceTester + AgileObjects.AgileMapper.PerformanceTester.Net45 + AgileObjects.AgileMapper.PerformanceTester.Net45 v4.5.2 512 true diff --git a/AgileMapper.PerformanceTester/App.config b/AgileMapper.PerformanceTester.Net45/App.config similarity index 100% rename from AgileMapper.PerformanceTester/App.config rename to AgileMapper.PerformanceTester.Net45/App.config diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapperSetup.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapperSetup.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapperSetup.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapperSetup.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperCtorMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperCtorMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperCtorMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperCtorMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperDeepMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperDeepMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperDeepMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperDeepMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperDeepMapperSetup.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperDeepMapperSetup.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperDeepMapperSetup.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperDeepMapperSetup.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperEntityMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperEntityMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperEntityMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperEntityMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperEntityMapperSetup.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperEntityMapperSetup.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperEntityMapperSetup.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperEntityMapperSetup.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperFlatteningMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperFlatteningMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperFlatteningMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperFlatteningMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperInstantiation.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperInstantiation.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperInstantiation.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperInstantiation.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapperSetup.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapperSetup.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapperSetup.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapperSetup.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapperSetup.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapperSetup.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapperSetup.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapperSetup.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperCtorMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperCtorMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperCtorMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperCtorMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperDeepMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperDeepMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperDeepMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperDeepMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperDeepMapperSetup.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperDeepMapperSetup.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperDeepMapperSetup.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperDeepMapperSetup.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperEntityMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperEntityMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperEntityMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperEntityMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperFlatteningMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperFlatteningMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperFlatteningMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperFlatteningMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperInstantiation.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperInstantiation.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperInstantiation.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperInstantiation.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapperSetup.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapperSetup.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapperSetup.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapperSetup.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapperSetup.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapperSetup.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapperSetup.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapperSetup.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/ExpressMapper/ExpressMapperCtorMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperCtorMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/ExpressMapper/ExpressMapperCtorMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperCtorMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapperSetup.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapperSetup.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapperSetup.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapperSetup.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/ExpressMapper/ExpressMapperFlatteningMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperFlatteningMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/ExpressMapper/ExpressMapperFlatteningMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperFlatteningMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/ExpressMapper/ExpressMapperInstantiation.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperInstantiation.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/ExpressMapper/ExpressMapperInstantiation.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperInstantiation.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/Manual/ManualComplexTypeMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualComplexTypeMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/Manual/ManualComplexTypeMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualComplexTypeMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/Manual/ManualCtorMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualCtorMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/Manual/ManualCtorMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualCtorMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/Manual/ManualDeepMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualDeepMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/Manual/ManualDeepMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualDeepMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/Manual/ManualFlatteningMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualFlatteningMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/Manual/ManualFlatteningMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualFlatteningMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/Manual/ManualUnflatteningMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualUnflatteningMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/Manual/ManualUnflatteningMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualUnflatteningMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterComplexTypeMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterComplexTypeMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterComplexTypeMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterComplexTypeMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterComplexTypeMapperSetup.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterComplexTypeMapperSetup.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterComplexTypeMapperSetup.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterComplexTypeMapperSetup.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterCtorMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterCtorMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterCtorMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterCtorMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterDeepMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterDeepMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterDeepMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterDeepMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterDeepMapperSetup.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterDeepMapperSetup.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterDeepMapperSetup.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterDeepMapperSetup.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterEntityMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterEntityMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterEntityMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterEntityMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterFlatteningMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterFlatteningMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterFlatteningMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterFlatteningMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterMapperInstantiation.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterMapperInstantiation.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/Mapster/MapsterMapperInstantiation.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterMapperInstantiation.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/ValueInjecter/ValueInjecterComplexTypeMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterComplexTypeMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/ValueInjecter/ValueInjecterComplexTypeMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterComplexTypeMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/ValueInjecter/ValueInjecterCtorMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterCtorMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/ValueInjecter/ValueInjecterCtorMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterCtorMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/ValueInjecter/ValueInjecterDeepMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterDeepMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/ValueInjecter/ValueInjecterDeepMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterDeepMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/ValueInjecter/ValueInjecterFlatteningMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterFlatteningMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/ValueInjecter/ValueInjecterFlatteningMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterFlatteningMapper.cs diff --git a/AgileMapper.PerformanceTester/ConcreteMappers/ValueInjecter/ValueInjecterUnflatteningMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterUnflatteningMapper.cs similarity index 100% rename from AgileMapper.PerformanceTester/ConcreteMappers/ValueInjecter/ValueInjecterUnflatteningMapper.cs rename to AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterUnflatteningMapper.cs diff --git a/AgileMapper.PerformanceTester/MapperTester.cs b/AgileMapper.PerformanceTester.Net45/MapperTester.cs similarity index 100% rename from AgileMapper.PerformanceTester/MapperTester.cs rename to AgileMapper.PerformanceTester.Net45/MapperTester.cs diff --git a/AgileMapper.PerformanceTester/Program.cs b/AgileMapper.PerformanceTester.Net45/Program.cs similarity index 99% rename from AgileMapper.PerformanceTester/Program.cs rename to AgileMapper.PerformanceTester.Net45/Program.cs index 9a53e6a84..0d07ba72b 100644 --- a/AgileMapper.PerformanceTester/Program.cs +++ b/AgileMapper.PerformanceTester.Net45/Program.cs @@ -7,7 +7,7 @@ // Agile and Auto at their fastest: //[assembly: System.Security.AllowPartiallyTrustedCallers] -namespace AgileObjects.AgileMapper.PerformanceTester +namespace AgileObjects.AgileMapper.PerformanceTester.Net45 { using System; using System.Collections.Generic; diff --git a/AgileMapper.PerformanceTester/Properties/AssemblyInfo.cs b/AgileMapper.PerformanceTester.Net45/Properties/AssemblyInfo.cs similarity index 100% rename from AgileMapper.PerformanceTester/Properties/AssemblyInfo.cs rename to AgileMapper.PerformanceTester.Net45/Properties/AssemblyInfo.cs diff --git a/AgileMapper.PerformanceTester/Results/2016-10-10.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-10-10.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-10-10.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-10-10.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-10-15 @ 66f3123.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-10-15 @ 66f3123.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-10-15 @ 66f3123.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-10-15 @ 66f3123.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-10-16 @ e356d85.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-10-16 @ e356d85.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-10-16 @ e356d85.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-10-16 @ e356d85.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-10-17 @ 7875870.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-10-17 @ 7875870.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-10-17 @ 7875870.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-10-17 @ 7875870.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-11-03 @ 61bf34c.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-11-03 @ 61bf34c.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-11-03 @ 61bf34c.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-11-03 @ 61bf34c.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-11-04 @ 3b84f95.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-11-04 @ 3b84f95.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-11-04 @ 3b84f95.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-11-04 @ 3b84f95.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-11-04 @ c71ba19.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-11-04 @ c71ba19.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-11-04 @ c71ba19.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-11-04 @ c71ba19.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-11-08 @ 57f1b16.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-11-08 @ 57f1b16.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-11-08 @ 57f1b16.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-11-08 @ 57f1b16.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-11-08 @ af9e41a.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-11-08 @ af9e41a.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-11-08 @ af9e41a.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-11-08 @ af9e41a.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-11-12 @ 7acdd5c.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-11-12 @ 7acdd5c.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-11-12 @ 7acdd5c.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-11-12 @ 7acdd5c.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-11-12 @ 9670998.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-11-12 @ 9670998.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-11-12 @ 9670998.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-11-12 @ 9670998.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-11-14 @ 1cc2239.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-11-14 @ 1cc2239.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-11-14 @ 1cc2239.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-11-14 @ 1cc2239.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-11-17 @ ad1ff4d.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-11-17 @ ad1ff4d.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-11-17 @ ad1ff4d.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-11-17 @ ad1ff4d.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-11-19 @ aebda06.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-11-19 @ aebda06.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-11-19 @ aebda06.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-11-19 @ aebda06.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-11-20 @ 697b7e3.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-11-20 @ 697b7e3.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-11-20 @ 697b7e3.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-11-20 @ 697b7e3.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-11-29 @ 9c4b0b3.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-11-29 @ 9c4b0b3.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-11-29 @ 9c4b0b3.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-11-29 @ 9c4b0b3.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-11-29 @ a3c3780.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-11-29 @ a3c3780.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-11-29 @ a3c3780.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-11-29 @ a3c3780.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-12-02 @ 0ccf054.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-12-02 @ 0ccf054.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-12-02 @ 0ccf054.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-12-02 @ 0ccf054.txt diff --git a/AgileMapper.PerformanceTester/Results/2016-12-23 @ f7c42f6.txt b/AgileMapper.PerformanceTester.Net45/Results/2016-12-23 @ f7c42f6.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2016-12-23 @ f7c42f6.txt rename to AgileMapper.PerformanceTester.Net45/Results/2016-12-23 @ f7c42f6.txt diff --git a/AgileMapper.PerformanceTester/Results/2018-02-16 @ d78a210.txt b/AgileMapper.PerformanceTester.Net45/Results/2018-02-16 @ d78a210.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2018-02-16 @ d78a210.txt rename to AgileMapper.PerformanceTester.Net45/Results/2018-02-16 @ d78a210.txt diff --git a/AgileMapper.PerformanceTester/Results/2018-02-17 @ 09dc6afd.txt b/AgileMapper.PerformanceTester.Net45/Results/2018-02-17 @ 09dc6afd.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2018-02-17 @ 09dc6afd.txt rename to AgileMapper.PerformanceTester.Net45/Results/2018-02-17 @ 09dc6afd.txt diff --git a/AgileMapper.PerformanceTester/Results/2018-02-19 @ db622efb.txt b/AgileMapper.PerformanceTester.Net45/Results/2018-02-19 @ db622efb.txt similarity index 100% rename from AgileMapper.PerformanceTester/Results/2018-02-19 @ db622efb.txt rename to AgileMapper.PerformanceTester.Net45/Results/2018-02-19 @ db622efb.txt diff --git a/AgileMapper.PerformanceTester/TestClasses/Ctor.cs b/AgileMapper.PerformanceTester.Net45/TestClasses/Ctor.cs similarity index 100% rename from AgileMapper.PerformanceTester/TestClasses/Ctor.cs rename to AgileMapper.PerformanceTester.Net45/TestClasses/Ctor.cs diff --git a/AgileMapper.PerformanceTester/TestClasses/Deep.cs b/AgileMapper.PerformanceTester.Net45/TestClasses/Deep.cs similarity index 100% rename from AgileMapper.PerformanceTester/TestClasses/Deep.cs rename to AgileMapper.PerformanceTester.Net45/TestClasses/Deep.cs diff --git a/AgileMapper.PerformanceTester/TestClasses/Entities.cs b/AgileMapper.PerformanceTester.Net45/TestClasses/Entities.cs similarity index 100% rename from AgileMapper.PerformanceTester/TestClasses/Entities.cs rename to AgileMapper.PerformanceTester.Net45/TestClasses/Entities.cs diff --git a/AgileMapper.PerformanceTester/TestClasses/Flattening.cs b/AgileMapper.PerformanceTester.Net45/TestClasses/Flattening.cs similarity index 100% rename from AgileMapper.PerformanceTester/TestClasses/Flattening.cs rename to AgileMapper.PerformanceTester.Net45/TestClasses/Flattening.cs diff --git a/AgileMapper.PerformanceTester/TestClasses/Foo.cs b/AgileMapper.PerformanceTester.Net45/TestClasses/Foo.cs similarity index 100% rename from AgileMapper.PerformanceTester/TestClasses/Foo.cs rename to AgileMapper.PerformanceTester.Net45/TestClasses/Foo.cs diff --git a/AgileMapper.PerformanceTester/packages.config b/AgileMapper.PerformanceTester.Net45/packages.config similarity index 100% rename from AgileMapper.PerformanceTester/packages.config rename to AgileMapper.PerformanceTester.Net45/packages.config diff --git a/AgileMapper.sln b/AgileMapper.sln index b8a5ef7ca..ef60d957c 100644 --- a/AgileMapper.sln +++ b/AgileMapper.sln @@ -16,7 +16,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AgileMapper.UnitTests", "AgileMapper.UnitTests\AgileMapper.UnitTests.csproj", "{A3F2D405-8C0B-4033-9EC5-1B64007593FB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AgileMapper.PerformanceTester", "AgileMapper.PerformanceTester\AgileMapper.PerformanceTester.csproj", "{2B8A4535-7E5C-4DB6-BB86-06AEB4F3DE81}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AgileMapper.PerformanceTester.Net45", "AgileMapper.PerformanceTester.Net45\AgileMapper.PerformanceTester.Net45.csproj", "{2B8A4535-7E5C-4DB6-BB86-06AEB4F3DE81}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AgileMapper.UnitTests.NonParallel", "AgileMapper.UnitTests.NonParallel\AgileMapper.UnitTests.NonParallel.csproj", "{254D5970-FCEF-4386-8E5E-2028B765982B}" EndProject From 59aa9983aeb61afd5e76d6f70173a6a2d9708b57 Mon Sep 17 00:00:00 2001 From: Steve Wilkes Date: Thu, 6 Sep 2018 18:48:53 +0100 Subject: [PATCH 2/6] Adding performance tester library --- .../AgileMapper.PerformanceTester.Net45.csproj | 4 ++++ .../AgileMapper.PerformanceTesting.csproj | 10 ++++++++++ AgileMapper.sln | 8 +++++++- 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 AgileMapper.PerformanceTesting/AgileMapper.PerformanceTesting.csproj diff --git a/AgileMapper.PerformanceTester.Net45/AgileMapper.PerformanceTester.Net45.csproj b/AgileMapper.PerformanceTester.Net45/AgileMapper.PerformanceTester.Net45.csproj index b3d41dc8a..4b0d42f2d 100644 --- a/AgileMapper.PerformanceTester.Net45/AgileMapper.PerformanceTester.Net45.csproj +++ b/AgileMapper.PerformanceTester.Net45/AgileMapper.PerformanceTester.Net45.csproj @@ -153,6 +153,10 @@ + + {f377844c-1a00-4685-8c04-07e6067c2812} + AgileMapper.PerformanceTesting + {69c1f1a9-f8a4-4cee-90e3-67b8d6dae8f6} AgileMapper.UnitTests.Common diff --git a/AgileMapper.PerformanceTesting/AgileMapper.PerformanceTesting.csproj b/AgileMapper.PerformanceTesting/AgileMapper.PerformanceTesting.csproj new file mode 100644 index 000000000..abcb33d3d --- /dev/null +++ b/AgileMapper.PerformanceTesting/AgileMapper.PerformanceTesting.csproj @@ -0,0 +1,10 @@ + + + + + net45;netstandard2.0 + AgileObjects.AgileMapper.PerformanceTesting + AgileObjects.AgileMapper.PerformanceTesting + + + diff --git a/AgileMapper.sln b/AgileMapper.sln index ef60d957c..e9ef1f75f 100644 --- a/AgileMapper.sln +++ b/AgileMapper.sln @@ -48,7 +48,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AgileMapper.UnitTests.NetCo EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AgileMapper.UnitTests.Net35", "AgileMapper.UnitTests.Net35\AgileMapper.UnitTests.Net35.csproj", "{E0706509-4A4B-4C0D-A3B2-4A713FFC6ED4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AgileMapper.UnitTests.Common", "AgileMapper.UnitTests.Common\AgileMapper.UnitTests.Common.csproj", "{69C1F1A9-F8A4-4CEE-90E3-67B8D6DAE8F6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AgileMapper.UnitTests.Common", "AgileMapper.UnitTests.Common\AgileMapper.UnitTests.Common.csproj", "{69C1F1A9-F8A4-4CEE-90E3-67B8D6DAE8F6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AgileMapper.PerformanceTesting", "AgileMapper.PerformanceTesting\AgileMapper.PerformanceTesting.csproj", "{F377844C-1A00-4685-8C04-07E6067C2812}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -128,6 +130,10 @@ Global {69C1F1A9-F8A4-4CEE-90E3-67B8D6DAE8F6}.Debug|Any CPU.Build.0 = Debug|Any CPU {69C1F1A9-F8A4-4CEE-90E3-67B8D6DAE8F6}.Release|Any CPU.ActiveCfg = Release|Any CPU {69C1F1A9-F8A4-4CEE-90E3-67B8D6DAE8F6}.Release|Any CPU.Build.0 = Release|Any CPU + {F377844C-1A00-4685-8C04-07E6067C2812}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F377844C-1A00-4685-8C04-07E6067C2812}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F377844C-1A00-4685-8C04-07E6067C2812}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F377844C-1A00-4685-8C04-07E6067C2812}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 0f46a04795c8a8030c79af44a1f5a8ccf7db2a01 Mon Sep 17 00:00:00 2001 From: Steve Wilkes Date: Thu, 6 Sep 2018 20:40:38 +0100 Subject: [PATCH 3/6] Moving test classes into performancing testing library --- .../ComplexTypeMapperSetupBase.cs | 9 - .../AbstractMappers/DeepMapperSetupBase.cs | 9 - .../AbstractMappers/EntityMapperSetupBase.cs | 9 - .../UnflatteningMapperSetupBase.cs | 9 - ...AgileMapper.PerformanceTester.Net45.csproj | 69 +----- .../AgileMapper/AgileMapperInstantiation.cs | 9 - .../AgileMapperUnflatteningMapper.cs | 20 -- .../ExpressMapperComplexTypeMapper.cs | 8 +- .../ExpressMapperComplexTypeMapperSetup.cs | 8 +- .../ExpressMapper/ExpressMapperCtorMapper.cs | 12 +- .../ExpressMapper/ExpressMapperDeepMapper.cs | 12 +- .../ExpressMapperDeepMapperSetup.cs | 8 +- .../ExpressMapperFlatteningMapper.cs | 12 +- .../ExpressMapperInstantiation.cs | 6 +- .../ValueInjecter/ValueInjecterCtorMapper.cs | 19 -- .../Program.cs | 201 +----------------- .../AbstractMappers/ComplexTypeMapperBase.cs | 6 +- .../ComplexTypeMapperSetupBase.cs | 11 + .../AbstractMappers/CtorMapperBase.cs | 6 +- .../AbstractMappers/DeepMapperBase.cs | 6 +- .../AbstractMappers/DeepMapperSetupBase.cs | 11 + .../AbstractMappers/EntityMapperBase.cs | 7 +- .../AbstractMappers/EntityMapperSetupBase.cs | 11 + .../AbstractMappers/FlatteningMapperBase.cs | 6 +- .../AbstractMappers/IObjectMapperTest.cs | 6 +- .../MapperInstantiationBase.cs | 6 +- .../AbstractMappers/MapperSetupTestBase.cs | 8 +- .../AbstractMappers/MapperTestBase.cs | 6 +- .../AbstractMappers/UnflatteningMapperBase.cs | 6 +- .../UnflatteningMapperSetupBase.cs | 11 + .../AgileMapper.PerformanceTesting.csproj | 12 ++ .../AgileMapperComplexTypeMapper.cs | 4 +- .../AgileMapperComplexTypeMapperSetup.cs | 4 +- .../AgileMapper/AgileMapperCtorMapper.cs | 4 +- .../AgileMapper/AgileMapperDeepMapper.cs | 6 +- .../AgileMapper/AgileMapperDeepMapperSetup.cs | 8 +- .../AgileMapper/AgileMapperEntityMapper.cs | 4 +- .../AgileMapperEntityMapperSetup.cs | 4 +- .../AgileMapperFlatteningMapper.cs | 4 +- .../AgileMapper/AgileMapperInstantiation.cs | 9 + .../AgileMapperUnflatteningMapper.cs | 15 ++ .../AgileMapperUnflatteningMapperSetup.cs | 8 +- .../AutoMapper/AutoMapperComplexTypeMapper.cs | 9 +- .../AutoMapperComplexTypeMapperSetup.cs | 11 +- .../AutoMapper/AutoMapperCtorMapper.cs | 6 +- .../AutoMapper/AutoMapperDeepMapper.cs | 4 +- .../AutoMapper/AutoMapperDeepMapperSetup.cs | 4 +- .../AutoMapper/AutoMapperEntityMapper.cs | 4 +- .../AutoMapper/AutoMapperEntityMapperSetup.cs | 4 +- .../AutoMapper/AutoMapperFlatteningMapper.cs | 8 +- .../AutoMapper/AutoMapperInstantiation.cs | 4 +- .../AutoMapperUnflatteningMapper.cs | 8 +- .../AutoMapperUnflatteningMapperSetup.cs | 11 +- .../Manual/ManualComplexTypeMapper.cs | 4 +- .../Manual/ManualCtorMapper.cs | 4 +- .../Manual/ManualDeepMapper.cs | 4 +- .../Manual/ManualFlatteningMapper.cs | 4 +- .../Manual/ManualUnflatteningMapper.cs | 4 +- .../Mapster/MapsterComplexTypeMapper.cs | 4 +- .../Mapster/MapsterComplexTypeMapperSetup.cs | 12 +- .../Mapster/MapsterCtorMapper.cs | 8 +- .../Mapster/MapsterDeepMapper.cs | 8 +- .../Mapster/MapsterDeepMapperSetup.cs | 6 +- .../Mapster/MapsterEntityMapper.cs | 6 +- .../Mapster/MapsterEntityMapperSetup.cs | 4 +- .../Mapster/MapsterFlatteningMapper.cs | 8 +- .../Mapster/MapsterMapperInstantiation.cs | 4 +- .../ValueInjecterComplexTypeMapper.cs | 19 +- .../ValueInjecter/ValueInjecterCtorMapper.cs | 15 ++ .../ValueInjecter/ValueInjecterDeepMapper.cs | 4 +- .../ValueInjecterFlatteningMapper.cs | 8 +- .../ValueInjecterUnflatteningMapper.cs | 8 +- .../MapperTester.cs | 4 +- .../PerformanceTestRunner.cs | 150 +++++++++++++ .../TestClasses/Ctor.cs | 2 +- .../TestClasses/Deep.cs | 2 +- .../TestClasses/Entities.cs | 2 +- .../TestClasses/Flattening.cs | 6 +- .../TestClasses/Foo.cs | 2 +- 79 files changed, 441 insertions(+), 543 deletions(-) delete mode 100644 AgileMapper.PerformanceTester.Net45/AbstractMappers/ComplexTypeMapperSetupBase.cs delete mode 100644 AgileMapper.PerformanceTester.Net45/AbstractMappers/DeepMapperSetupBase.cs delete mode 100644 AgileMapper.PerformanceTester.Net45/AbstractMappers/EntityMapperSetupBase.cs delete mode 100644 AgileMapper.PerformanceTester.Net45/AbstractMappers/UnflatteningMapperSetupBase.cs delete mode 100644 AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperInstantiation.cs delete mode 100644 AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapper.cs delete mode 100644 AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterCtorMapper.cs rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/AbstractMappers/ComplexTypeMapperBase.cs (94%) create mode 100644 AgileMapper.PerformanceTesting/AbstractMappers/ComplexTypeMapperSetupBase.cs rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/AbstractMappers/CtorMapperBase.cs (77%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/AbstractMappers/DeepMapperBase.cs (94%) create mode 100644 AgileMapper.PerformanceTesting/AbstractMappers/DeepMapperSetupBase.cs rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/AbstractMappers/EntityMapperBase.cs (96%) create mode 100644 AgileMapper.PerformanceTesting/AbstractMappers/EntityMapperSetupBase.cs rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/AbstractMappers/FlatteningMapperBase.cs (88%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/AbstractMappers/IObjectMapperTest.cs (61%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/AbstractMappers/MapperInstantiationBase.cs (66%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/AbstractMappers/MapperSetupTestBase.cs (77%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/AbstractMappers/MapperTestBase.cs (63%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/AbstractMappers/UnflatteningMapperBase.cs (88%) create mode 100644 AgileMapper.PerformanceTesting/AbstractMappers/UnflatteningMapperSetupBase.cs rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapper.cs (69%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapperSetup.cs (73%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AgileMapper/AgileMapperCtorMapper.cs (70%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AgileMapper/AgileMapperDeepMapper.cs (54%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AgileMapper/AgileMapperDeepMapperSetup.cs (70%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AgileMapper/AgileMapperEntityMapper.cs (67%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AgileMapper/AgileMapperEntityMapperSetup.cs (70%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AgileMapper/AgileMapperFlatteningMapper.cs (66%) create mode 100644 AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperInstantiation.cs create mode 100644 AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapper.cs rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapperSetup.cs (69%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapper.cs (58%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapperSetup.cs (59%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AutoMapper/AutoMapperCtorMapper.cs (77%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AutoMapper/AutoMapperDeepMapper.cs (81%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AutoMapper/AutoMapperDeepMapperSetup.cs (79%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AutoMapper/AutoMapperEntityMapper.cs (90%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs (89%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AutoMapper/AutoMapperFlatteningMapper.cs (66%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AutoMapper/AutoMapperInstantiation.cs (54%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapper.cs (66%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapperSetup.cs (61%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/Manual/ManualComplexTypeMapper.cs (89%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/Manual/ManualCtorMapper.cs (75%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/Manual/ManualDeepMapper.cs (94%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/Manual/ManualFlatteningMapper.cs (87%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/Manual/ManualUnflatteningMapper.cs (86%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/Mapster/MapsterComplexTypeMapper.cs (82%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/Mapster/MapsterComplexTypeMapperSetup.cs (77%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/Mapster/MapsterCtorMapper.cs (60%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/Mapster/MapsterDeepMapper.cs (71%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/Mapster/MapsterDeepMapperSetup.cs (78%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/Mapster/MapsterEntityMapper.cs (64%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs (79%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/Mapster/MapsterFlatteningMapper.cs (59%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/Mapster/MapsterMapperInstantiation.cs (52%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/ValueInjecter/ValueInjecterComplexTypeMapper.cs (89%) create mode 100644 AgileMapper.PerformanceTesting/ConcreteMappers/ValueInjecter/ValueInjecterCtorMapper.cs rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/ValueInjecter/ValueInjecterDeepMapper.cs (86%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/ValueInjecter/ValueInjecterFlatteningMapper.cs (51%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/ConcreteMappers/ValueInjecter/ValueInjecterUnflatteningMapper.cs (50%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/MapperTester.cs (89%) create mode 100644 AgileMapper.PerformanceTesting/PerformanceTestRunner.cs rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/TestClasses/Ctor.cs (83%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/TestClasses/Deep.cs (95%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/TestClasses/Entities.cs (98%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/TestClasses/Flattening.cs (91%) rename {AgileMapper.PerformanceTester.Net45 => AgileMapper.PerformanceTesting}/TestClasses/Foo.cs (91%) diff --git a/AgileMapper.PerformanceTester.Net45/AbstractMappers/ComplexTypeMapperSetupBase.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/ComplexTypeMapperSetupBase.cs deleted file mode 100644 index a079f4445..000000000 --- a/AgileMapper.PerformanceTester.Net45/AbstractMappers/ComplexTypeMapperSetupBase.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.AbstractMappers -{ - internal abstract class ComplexTypeMapperSetupBase : MapperSetupTestBase - { - protected override void Execute() => SetupComplexTypeMapper(); - - protected abstract void SetupComplexTypeMapper(); - } -} diff --git a/AgileMapper.PerformanceTester.Net45/AbstractMappers/DeepMapperSetupBase.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/DeepMapperSetupBase.cs deleted file mode 100644 index f19ded26f..000000000 --- a/AgileMapper.PerformanceTester.Net45/AbstractMappers/DeepMapperSetupBase.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.AbstractMappers -{ - internal abstract class DeepMapperSetupBase : MapperSetupTestBase - { - protected override void Execute() => SetupDeepMapper(); - - protected abstract void SetupDeepMapper(); - } -} \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/AbstractMappers/EntityMapperSetupBase.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/EntityMapperSetupBase.cs deleted file mode 100644 index 53e9122ac..000000000 --- a/AgileMapper.PerformanceTester.Net45/AbstractMappers/EntityMapperSetupBase.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.AbstractMappers -{ - internal abstract class EntityMapperSetupBase : MapperSetupTestBase - { - protected override void Execute() => SetupEntityMapper(); - - protected abstract void SetupEntityMapper(); - } -} diff --git a/AgileMapper.PerformanceTester.Net45/AbstractMappers/UnflatteningMapperSetupBase.cs b/AgileMapper.PerformanceTester.Net45/AbstractMappers/UnflatteningMapperSetupBase.cs deleted file mode 100644 index 82963e3fa..000000000 --- a/AgileMapper.PerformanceTester.Net45/AbstractMappers/UnflatteningMapperSetupBase.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.AbstractMappers -{ - internal abstract class UnflatteningMapperSetupBase : MapperSetupTestBase - { - protected override void Execute() => SetupUnflatteningMapper(); - - protected abstract void SetupUnflatteningMapper(); - } -} \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/AgileMapper.PerformanceTester.Net45.csproj b/AgileMapper.PerformanceTester.Net45/AgileMapper.PerformanceTester.Net45.csproj index 4b0d42f2d..d246c8dcd 100644 --- a/AgileMapper.PerformanceTester.Net45/AgileMapper.PerformanceTester.Net45.csproj +++ b/AgileMapper.PerformanceTester.Net45/AgileMapper.PerformanceTester.Net45.csproj @@ -75,76 +75,15 @@ VersionInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - @@ -157,10 +96,6 @@ {f377844c-1a00-4685-8c04-07e6067c2812} AgileMapper.PerformanceTesting - - {69c1f1a9-f8a4-4cee-90e3-67b8d6dae8f6} - AgileMapper.UnitTests.Common - {46d95c53-b4cb-4ee7-9573-5d3ef96099c0} AgileMapper diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperInstantiation.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperInstantiation.cs deleted file mode 100644 index 6ab334895..000000000 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperInstantiation.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AgileMapper -{ - using AbstractMappers; - - internal class AgileMapperInstantiation : MapperInstantiationBase - { - protected override object CreateMapperInstance() => Mapper.CreateNew(); - } -} \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapper.cs deleted file mode 100644 index be7c09d09..000000000 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapper.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AgileMapper -{ - using AbstractMappers; - using static TestClasses.Flattening; - - internal class AgileMapperUnflatteningMapper : UnflatteningMapperBase - { - private IMapper _mapper; - - public override void Initialise() - { - _mapper = Mapper.CreateNew(); - } - - protected override ModelObject Unflatten(ModelDto dto) - { - return _mapper.Map(dto).ToANew(); - } - } -} \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapper.cs index dc99a8fab..fe5f7a129 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapper.cs +++ b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapper.cs @@ -1,13 +1,13 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.ExpressMapper +namespace AgileObjects.AgileMapper.PerformanceTester.Net45.ConcreteMappers.ExpressMapper { using System.Collections.Generic; using System.Linq; - using AbstractMappers; using global::ExpressMapper; using global::ExpressMapper.Extensions; - using static TestClasses.Complex; + using PerformanceTesting.AbstractMappers; + using static PerformanceTesting.TestClasses.Complex; - internal class ExpressMapperComplexTypeMapper : ComplexTypeMapperBase + public class ExpressMapperComplexTypeMapper : ComplexTypeMapperBase { public override void Initialise() { diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapperSetup.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapperSetup.cs index 267e0c779..daeead363 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapperSetup.cs +++ b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapperSetup.cs @@ -1,13 +1,13 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.ExpressMapper +namespace AgileObjects.AgileMapper.PerformanceTester.Net45.ConcreteMappers.ExpressMapper { using System.Collections.Generic; using System.Linq; - using AbstractMappers; using global::ExpressMapper; using global::ExpressMapper.Extensions; - using static TestClasses.Complex; + using PerformanceTesting.AbstractMappers; + using static PerformanceTesting.TestClasses.Complex; - internal class ExpressMapperComplexTypeMapperSetup : ComplexTypeMapperSetupBase + public class ExpressMapperComplexTypeMapperSetup : ComplexTypeMapperSetupBase { public override void Initialise() { diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperCtorMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperCtorMapper.cs index fd90b1d5b..25e93748d 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperCtorMapper.cs +++ b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperCtorMapper.cs @@ -1,10 +1,10 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.ExpressMapper +namespace AgileObjects.AgileMapper.PerformanceTester.Net45.ConcreteMappers.ExpressMapper { - using AbstractMappers; using global::ExpressMapper; - using static TestClasses.Ctor; + using PerformanceTesting.AbstractMappers; + using static PerformanceTesting.TestClasses.Ctor; - internal class ExpressMapperCtorMapper : CtorMapperBase + public class ExpressMapperCtorMapper : CtorMapperBase { public override void Initialise() { @@ -16,8 +16,6 @@ public override void Initialise() } protected override ConstructedObject Construct(ValueObject valueObject) - { - return Mapper.Map(valueObject); - } + => Mapper.Map(valueObject); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapper.cs index 30c57883a..4b80bddd5 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapper.cs +++ b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapper.cs @@ -1,12 +1,12 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.ExpressMapper +namespace AgileObjects.AgileMapper.PerformanceTester.Net45.ConcreteMappers.ExpressMapper { using System.Collections.Generic; - using AbstractMappers; using global::ExpressMapper; using global::ExpressMapper.Extensions; - using static TestClasses.Deep; + using PerformanceTesting.AbstractMappers; + using static PerformanceTesting.TestClasses.Deep; - internal class ExpressMapperDeepMapper : DeepMapperBase + public class ExpressMapperDeepMapper : DeepMapperBase { public override void Initialise() { @@ -28,8 +28,6 @@ public override void Initialise() } protected override CustomerDto Map(Customer customer) - { - return Mapper.Map(customer); - } + => Mapper.Map(customer); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapperSetup.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapperSetup.cs index fe42b4ad5..f9a56b95a 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapperSetup.cs +++ b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapperSetup.cs @@ -1,12 +1,12 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.ExpressMapper +namespace AgileObjects.AgileMapper.PerformanceTester.Net45.ConcreteMappers.ExpressMapper { using System.Collections.Generic; - using AbstractMappers; using global::ExpressMapper; using global::ExpressMapper.Extensions; - using static TestClasses.Deep; + using PerformanceTesting.AbstractMappers; + using static PerformanceTesting.TestClasses.Deep; - internal class ExpressMapperDeepMapperSetup : DeepMapperSetupBase + public class ExpressMapperDeepMapperSetup : DeepMapperSetupBase { public override void Initialise() { diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperFlatteningMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperFlatteningMapper.cs index a3f7dc323..c8650f116 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperFlatteningMapper.cs +++ b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperFlatteningMapper.cs @@ -1,10 +1,10 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.ExpressMapper +namespace AgileObjects.AgileMapper.PerformanceTester.Net45.ConcreteMappers.ExpressMapper { - using AbstractMappers; using global::ExpressMapper; - using static TestClasses.Flattening; + using PerformanceTesting.AbstractMappers; + using static PerformanceTesting.TestClasses.Flattening; - internal class ExpressMapperFlatteningMapper : FlatteningMapperBase + public class ExpressMapperFlatteningMapper : FlatteningMapperBase { public override void Initialise() { @@ -19,8 +19,6 @@ public override void Initialise() } protected override ModelDto Flatten(ModelObject model) - { - return Mapper.Map(model); - } + => Mapper.Map(model); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperInstantiation.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperInstantiation.cs index b0f02bd04..3cfd3f90d 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperInstantiation.cs +++ b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperInstantiation.cs @@ -1,9 +1,9 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.ExpressMapper +namespace AgileObjects.AgileMapper.PerformanceTester.Net45.ConcreteMappers.ExpressMapper { - using AbstractMappers; using global::ExpressMapper; + using PerformanceTesting.AbstractMappers; - internal class ExpressMapperInstantiation : MapperInstantiationBase + public class ExpressMapperInstantiation : MapperInstantiationBase { protected override object CreateMapperInstance() => new MappingServiceProvider(); } diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterCtorMapper.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterCtorMapper.cs deleted file mode 100644 index 01d619651..000000000 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterCtorMapper.cs +++ /dev/null @@ -1,19 +0,0 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.ValueInjecter -{ - using AbstractMappers; - using Omu.ValueInjecter; - using static TestClasses.Ctor; - - internal class ValueInjecterCtorMapper : CtorMapperBase - { - public override void Initialise() - { - Mapper.AddMap(src => new ConstructedObject(src.Value)); - } - - protected override ConstructedObject Construct(ValueObject valueObject) - { - return Mapper.Map(valueObject); - } - } -} \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/Program.cs b/AgileMapper.PerformanceTester.Net45/Program.cs index 0d07ba72b..105f2cccc 100644 --- a/AgileMapper.PerformanceTester.Net45/Program.cs +++ b/AgileMapper.PerformanceTester.Net45/Program.cs @@ -1,24 +1,12 @@ -// Largely based on the AutoMapper benchmark project: -// Project: https://github.com/AutoMapper/AutoMapper/tree/master/src/Benchmark -// Licence: https://github.com/AutoMapper/AutoMapper/blob/master/LICENSE.txt - -// AgileMapper and AutoMapper perform better with this attribute applied, +// AgileMapper and AutoMapper perform better with this attribute applied, // but ExpressMapper and Mapster throw exceptions - uncomment to test the // Agile and Auto at their fastest: //[assembly: System.Security.AllowPartiallyTrustedCallers] namespace AgileObjects.AgileMapper.PerformanceTester.Net45 { - using System; - using System.Collections.Generic; - using System.Linq; - using AbstractMappers; - using ConcreteMappers.AgileMapper; - using ConcreteMappers.AutoMapper; using ConcreteMappers.ExpressMapper; - using ConcreteMappers.Manual; - using ConcreteMappers.Mapster; - using ConcreteMappers.ValueInjecter; + using PerformanceTesting; // Specify comma-separated sets of mapper Ids and (optionally) test Ids from the string arrays // below if desired. e.g: @@ -28,190 +16,11 @@ namespace AgileObjects.AgileMapper.PerformanceTester.Net45 // man,exp ctor,flat public class Program { - private static readonly string[] _mapperIds = { "man", "ag", "au", "exp", "ma", "vi" }; - private static readonly string[] _testIds = { "ctor", "compl", "compls", "flat", "unflat", "unflats", "deep", "deeps", "ent", "ents", "new" }; - public static void Main(string[] args) { - Console.WriteLine("Starting..."); - - if (!TryGetMappersToTest(args, out var mappersToTest)) - { - Console.WriteLine( - "Invalid mapper(s) specified: {0}{1}Available mapper ids: {2}", - string.Join(", ", mappersToTest), - Environment.NewLine, - string.Join(", ", _mapperIds)); - } - - if (!TryGetTestsToRun(args, out var testsToRun)) - { - Console.WriteLine( - "Invalid test(s) specified: {0}{1}Available tests: {2}", - string.Join(", ", testsToRun), - Environment.NewLine, - string.Join(", ", _testIds)); - } - - var useManual = mappersToTest.Contains("man"); - var useAgileMapper = mappersToTest.Contains("ag"); - var useAutoMapper = mappersToTest.Contains("au"); - var useExpressMapper = mappersToTest.Contains("exp"); - var useMapster = mappersToTest.Contains("ma"); - var useValueInjecter = mappersToTest.Contains("vi"); - - var mapperTestSets = new[] - { - new IObjectMapperTest[] - { - useManual ? new ManualCtorMapper() : null, - useAgileMapper ? new AgileMapperCtorMapper() : null, - useAutoMapper ? new AutoMapperCtorMapper() : null, - useExpressMapper ? new ExpressMapperCtorMapper() : null, - useMapster ? new MapsterCtorMapper() : null, - useValueInjecter ? new ValueInjecterCtorMapper() : null - }, - new IObjectMapperTest[] - { - useManual ? new ManualComplexTypeMapper() : null, - useAgileMapper ? new AgileMapperComplexTypeMapper() : null, - useAutoMapper ? new AutoMapperComplexTypeMapper() : null, - useExpressMapper ? new ExpressMapperComplexTypeMapper() : null, - useMapster ? new MapsterComplexTypeMapper() : null, - useValueInjecter ? new ValueInjecterComplexTypeMapper() : null - }, - new IObjectMapperTest[] - { - useAgileMapper ? new AgileMapperComplexTypeMapperSetup() : null, - useAutoMapper ? new AutoMapperComplexTypeMapperSetup() : null, - useExpressMapper ? new ExpressMapperComplexTypeMapperSetup() : null, - useMapster ? new MapsterComplexTypeMapperSetup() : null - }, - new IObjectMapperTest[] - { - useManual ? new ManualFlatteningMapper() : null, - useAgileMapper ? new AgileMapperFlatteningMapper() : null, - useAutoMapper ? new AutoMapperFlatteningMapper() : null, - useExpressMapper ? new ExpressMapperFlatteningMapper() : null, - useMapster ? new MapsterFlatteningMapper() : null, - useValueInjecter ? new ValueInjecterFlatteningMapper() : null - }, - new IObjectMapperTest[] - { - useManual ? new ManualUnflatteningMapper() : null, - useAgileMapper ? new AgileMapperUnflatteningMapper() : null, - useAutoMapper ? new AutoMapperUnflatteningMapper(): null, - //new ExpressMapperUnflatteningMapper(), // Not supported, NullReferenceException - //new MapsterUnflatteningMapper(), // Not supported, complex type members unpopulated - useValueInjecter ? new ValueInjecterUnflatteningMapper() : null - }, - new IObjectMapperTest[] - { - useAgileMapper ? new AgileMapperUnflatteningMapperSetup() : null, - useAutoMapper ? new AutoMapperUnflatteningMapperSetup() : null - }, - new IObjectMapperTest[] - { - useManual ? new ManualDeepMapper() : null, - useAgileMapper ? new AgileMapperDeepMapper() : null, - useAutoMapper ? new AutoMapperDeepMapper() : null, - useExpressMapper ? new ExpressMapperDeepMapper() : null, - useMapster ? new MapsterDeepMapper() : null, - useValueInjecter ? new ValueInjecterDeepMapper() : null - }, - new IObjectMapperTest[] - { - useAgileMapper ? new AgileMapperDeepMapperSetup() : null, - useAutoMapper ? new AutoMapperDeepMapperSetup() : null, - useExpressMapper ? new ExpressMapperDeepMapperSetup() : null, - useMapster ? new MapsterDeepMapperSetup() : null - }, - new IObjectMapperTest[] - { - useAgileMapper ? new AgileMapperEntityMapper() : null, - //useAutoMapper ? new AutoMapperEntityMapper() : null, // Not supported, StackOverflow exception - //useMapster ? new MapsterEntityMapper() : null, // Not supported, StackOverflow exception - }, - new IObjectMapperTest[] - { - useAgileMapper ? new AgileMapperEntityMapperSetup() : null, - useAutoMapper ? new AutoMapperEntityMapperSetup() : null, - useMapster ? new MapsterEntityMapperSetup() : null - }, - new IObjectMapperTest[] - { - useAgileMapper ? new AgileMapperInstantiation() : null, - useAutoMapper ? new AutoMapperInstantiation() : null, - useExpressMapper ? new ExpressMapperInstantiation() : null, - useMapster ? new MapsterMapperInstantiation() : null - } - }; - - for (var i = 0; i < mapperTestSets.Length; i++) - { - if (!testsToRun.Contains(_testIds[i])) - { - continue; - } - - var relevantMapperTests = (mappersToTest == _mapperIds) - ? mapperTestSets[i] - : mapperTestSets[i].Where(mapper => mapper != null).ToArray(); - - MapperTester.Test(relevantMapperTests); - Console.WriteLine(); - } - - Console.WriteLine("Done!"); - Console.ReadLine(); - } - - private static bool TryGetMappersToTest(IList args, out string[] mappersToTest) - { - if (args.Count == 0) - { - mappersToTest = _mapperIds; - return true; - } - - if (args[0] == "*") - { - mappersToTest = _mapperIds; - return true; - } - - var mapperIds = args[0].ToLowerInvariant().Split(','); - var invalidMapperIds = mapperIds.Except(_mapperIds).ToArray(); - - if (invalidMapperIds.Any()) - { - mappersToTest = invalidMapperIds; - return false; - } - - mappersToTest = _mapperIds.Intersect(mapperIds).ToArray(); - return true; - } - - private static bool TryGetTestsToRun(IList args, out string[] testsToRun) - { - if (args.Count < 2) - { - testsToRun = _testIds; - return true; - } - - var testIds = args[1].ToLowerInvariant().Split(','); - var invalidTestIds = testIds.Except(_testIds).ToArray(); - - if (invalidTestIds.Any()) - { - testsToRun = invalidTestIds; - return false; - } - - testsToRun = _testIds.Intersect(testIds).ToArray(); - return true; + new PerformanceTestRunner() + .AddMapper("exp", typeof(ExpressMapperCtorMapper)) + .Run(args); } } } diff --git a/AgileMapper.PerformanceTester.Net45/AbstractMappers/ComplexTypeMapperBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/ComplexTypeMapperBase.cs similarity index 94% rename from AgileMapper.PerformanceTester.Net45/AbstractMappers/ComplexTypeMapperBase.cs rename to AgileMapper.PerformanceTesting/AbstractMappers/ComplexTypeMapperBase.cs index c535486d8..cf12fef67 100644 --- a/AgileMapper.PerformanceTester.Net45/AbstractMappers/ComplexTypeMapperBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/ComplexTypeMapperBase.cs @@ -1,4 +1,4 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.AbstractMappers +namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers { using System; using System.Collections.Generic; @@ -7,7 +7,7 @@ using UnitTests.Common; using static TestClasses.Complex; - internal abstract class ComplexTypeMapperBase : MapperTestBase + public abstract class ComplexTypeMapperBase : MapperTestBase { private readonly Foo _foo; @@ -39,6 +39,8 @@ protected ComplexTypeMapperBase() }; } + public override string Type => "compl"; + public override object Execute(Stopwatch timer) => Clone(_foo); public override void Verify(object result) diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/ComplexTypeMapperSetupBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/ComplexTypeMapperSetupBase.cs new file mode 100644 index 000000000..3843bbb92 --- /dev/null +++ b/AgileMapper.PerformanceTesting/AbstractMappers/ComplexTypeMapperSetupBase.cs @@ -0,0 +1,11 @@ +namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers +{ + public abstract class ComplexTypeMapperSetupBase : MapperSetupTestBase + { + public override string Type => "compls"; + + protected override void Execute() => SetupComplexTypeMapper(); + + protected abstract void SetupComplexTypeMapper(); + } +} diff --git a/AgileMapper.PerformanceTester.Net45/AbstractMappers/CtorMapperBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/CtorMapperBase.cs similarity index 77% rename from AgileMapper.PerformanceTester.Net45/AbstractMappers/CtorMapperBase.cs rename to AgileMapper.PerformanceTesting/AbstractMappers/CtorMapperBase.cs index bb6bbeca3..390030623 100644 --- a/AgileMapper.PerformanceTester.Net45/AbstractMappers/CtorMapperBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/CtorMapperBase.cs @@ -1,10 +1,10 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.AbstractMappers +namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers { using System.Diagnostics; using UnitTests.Common; using static TestClasses.Ctor; - internal abstract class CtorMapperBase : MapperTestBase + public abstract class CtorMapperBase : MapperTestBase { private readonly ValueObject _valueObject; @@ -13,6 +13,8 @@ protected CtorMapperBase() _valueObject = new ValueObject { Value = 5 }; } + public override string Type => "ctor"; + public override object Execute(Stopwatch timer) => Construct(_valueObject); protected abstract ConstructedObject Construct(ValueObject valueObject); diff --git a/AgileMapper.PerformanceTester.Net45/AbstractMappers/DeepMapperBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/DeepMapperBase.cs similarity index 94% rename from AgileMapper.PerformanceTester.Net45/AbstractMappers/DeepMapperBase.cs rename to AgileMapper.PerformanceTesting/AbstractMappers/DeepMapperBase.cs index efcfd6b73..5dd54bc0c 100644 --- a/AgileMapper.PerformanceTester.Net45/AbstractMappers/DeepMapperBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/DeepMapperBase.cs @@ -1,4 +1,4 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.AbstractMappers +namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers { using System.Collections.Generic; using System.Diagnostics; @@ -6,7 +6,7 @@ using UnitTests.Common; using static TestClasses.Deep; - internal abstract class DeepMapperBase : MapperTestBase + public abstract class DeepMapperBase : MapperTestBase { private readonly Customer _customer; @@ -32,6 +32,8 @@ protected DeepMapperBase() }; } + public override string Type => "deep"; + public override object Execute(Stopwatch timer) => Map(_customer); protected abstract CustomerDto Map(Customer customer); diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/DeepMapperSetupBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/DeepMapperSetupBase.cs new file mode 100644 index 000000000..a9a8d2fdb --- /dev/null +++ b/AgileMapper.PerformanceTesting/AbstractMappers/DeepMapperSetupBase.cs @@ -0,0 +1,11 @@ +namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers +{ + public abstract class DeepMapperSetupBase : MapperSetupTestBase + { + public override string Type => "deeps"; + + protected override void Execute() => SetupDeepMapper(); + + protected abstract void SetupDeepMapper(); + } +} \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/AbstractMappers/EntityMapperBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/EntityMapperBase.cs similarity index 96% rename from AgileMapper.PerformanceTester.Net45/AbstractMappers/EntityMapperBase.cs rename to AgileMapper.PerformanceTesting/AbstractMappers/EntityMapperBase.cs index 586a4eb4a..01a9a9a63 100644 --- a/AgileMapper.PerformanceTester.Net45/AbstractMappers/EntityMapperBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/EntityMapperBase.cs @@ -1,13 +1,14 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.AbstractMappers +namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers { - using System; using System.Diagnostics; using static TestClasses.Entities; - internal abstract class EntityMapperBase : MapperTestBase + public abstract class EntityMapperBase : MapperTestBase { private readonly Warehouse _warehouse; + public override string Type => "ent"; + public override int NumberOfExecutions => 100_000; protected EntityMapperBase() diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/EntityMapperSetupBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/EntityMapperSetupBase.cs new file mode 100644 index 000000000..d255748f4 --- /dev/null +++ b/AgileMapper.PerformanceTesting/AbstractMappers/EntityMapperSetupBase.cs @@ -0,0 +1,11 @@ +namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers +{ + public abstract class EntityMapperSetupBase : MapperSetupTestBase + { + public override string Type => "ents"; + + protected override void Execute() => SetupEntityMapper(); + + protected abstract void SetupEntityMapper(); + } +} diff --git a/AgileMapper.PerformanceTester.Net45/AbstractMappers/FlatteningMapperBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/FlatteningMapperBase.cs similarity index 88% rename from AgileMapper.PerformanceTester.Net45/AbstractMappers/FlatteningMapperBase.cs rename to AgileMapper.PerformanceTesting/AbstractMappers/FlatteningMapperBase.cs index f04e32e7c..0a2638a03 100644 --- a/AgileMapper.PerformanceTester.Net45/AbstractMappers/FlatteningMapperBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/FlatteningMapperBase.cs @@ -1,11 +1,11 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.AbstractMappers +namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers { using System; using System.Diagnostics; using UnitTests.Common; using static TestClasses.Flattening; - internal abstract class FlatteningMapperBase : MapperTestBase + public abstract class FlatteningMapperBase : MapperTestBase { private readonly ModelObject _modelObject; @@ -33,6 +33,8 @@ protected FlatteningMapperBase() }; } + public override string Type => "flat"; + public override object Execute(Stopwatch timer) => Flatten(_modelObject); protected abstract ModelDto Flatten(ModelObject model); diff --git a/AgileMapper.PerformanceTester.Net45/AbstractMappers/IObjectMapperTest.cs b/AgileMapper.PerformanceTesting/AbstractMappers/IObjectMapperTest.cs similarity index 61% rename from AgileMapper.PerformanceTester.Net45/AbstractMappers/IObjectMapperTest.cs rename to AgileMapper.PerformanceTesting/AbstractMappers/IObjectMapperTest.cs index 1a8a495a5..707467fcb 100644 --- a/AgileMapper.PerformanceTester.Net45/AbstractMappers/IObjectMapperTest.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/IObjectMapperTest.cs @@ -1,9 +1,11 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.AbstractMappers +namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers { using System.Diagnostics; - internal interface IObjectMapperTest + public interface IObjectMapperTest { + string Type { get; } + string Name { get; } int NumberOfExecutions { get; } diff --git a/AgileMapper.PerformanceTester.Net45/AbstractMappers/MapperInstantiationBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/MapperInstantiationBase.cs similarity index 66% rename from AgileMapper.PerformanceTester.Net45/AbstractMappers/MapperInstantiationBase.cs rename to AgileMapper.PerformanceTesting/AbstractMappers/MapperInstantiationBase.cs index 1f83391ac..2d5dcb773 100644 --- a/AgileMapper.PerformanceTester.Net45/AbstractMappers/MapperInstantiationBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/MapperInstantiationBase.cs @@ -1,9 +1,11 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.AbstractMappers +namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers { using System.Diagnostics; - internal abstract class MapperInstantiationBase : MapperTestBase + public abstract class MapperInstantiationBase : MapperTestBase { + public override string Type => "new"; + public override int NumberOfExecutions => 10_000; public override void Initialise() diff --git a/AgileMapper.PerformanceTester.Net45/AbstractMappers/MapperSetupTestBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/MapperSetupTestBase.cs similarity index 77% rename from AgileMapper.PerformanceTester.Net45/AbstractMappers/MapperSetupTestBase.cs rename to AgileMapper.PerformanceTesting/AbstractMappers/MapperSetupTestBase.cs index 17b309988..b288f9f14 100644 --- a/AgileMapper.PerformanceTester.Net45/AbstractMappers/MapperSetupTestBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/MapperSetupTestBase.cs @@ -1,9 +1,9 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.AbstractMappers +namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers { using System; using System.Diagnostics; - internal abstract class MapperSetupTestBase : IObjectMapperTest + public abstract class MapperSetupTestBase : IObjectMapperTest { private readonly IObjectMapperTest _mapperTest; @@ -11,13 +11,15 @@ protected MapperSetupTestBase() { var type = GetType(); var mapperTestName = $"{type.Namespace}.{type.Name.Replace("Setup", null)}"; - var mapperTestType = Type.GetType(mapperTestName) ?? throw new InvalidOperationException(); + var mapperTestType = type.Assembly.GetType(mapperTestName) ?? throw new InvalidOperationException(); _mapperTest = (IObjectMapperTest)Activator.CreateInstance(mapperTestType); _mapperTest.Initialise(); } + public abstract string Type { get; } + public string Name => GetType().Name; public int NumberOfExecutions => 100; diff --git a/AgileMapper.PerformanceTester.Net45/AbstractMappers/MapperTestBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/MapperTestBase.cs similarity index 63% rename from AgileMapper.PerformanceTester.Net45/AbstractMappers/MapperTestBase.cs rename to AgileMapper.PerformanceTesting/AbstractMappers/MapperTestBase.cs index 8ef6b0f99..ac5f8d99c 100644 --- a/AgileMapper.PerformanceTester.Net45/AbstractMappers/MapperTestBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/MapperTestBase.cs @@ -1,9 +1,11 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.AbstractMappers +namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers { using System.Diagnostics; - internal abstract class MapperTestBase : IObjectMapperTest + public abstract class MapperTestBase : IObjectMapperTest { + public abstract string Type { get; } + public string Name => GetType().Name; public virtual int NumberOfExecutions => 1_000_000; diff --git a/AgileMapper.PerformanceTester.Net45/AbstractMappers/UnflatteningMapperBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/UnflatteningMapperBase.cs similarity index 88% rename from AgileMapper.PerformanceTester.Net45/AbstractMappers/UnflatteningMapperBase.cs rename to AgileMapper.PerformanceTesting/AbstractMappers/UnflatteningMapperBase.cs index 7183ad223..1ce38dfdb 100644 --- a/AgileMapper.PerformanceTester.Net45/AbstractMappers/UnflatteningMapperBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/UnflatteningMapperBase.cs @@ -1,11 +1,11 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.AbstractMappers +namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers { using System; using System.Diagnostics; using UnitTests.Common; using static TestClasses.Flattening; - internal abstract class UnflatteningMapperBase : MapperTestBase + public abstract class UnflatteningMapperBase : MapperTestBase { private readonly ModelDto _modelDto; @@ -21,6 +21,8 @@ protected UnflatteningMapperBase() }; } + public override string Type => "unflat"; + public override object Execute(Stopwatch timer) => Unflatten(_modelDto); protected abstract ModelObject Unflatten(ModelDto dto); diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/UnflatteningMapperSetupBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/UnflatteningMapperSetupBase.cs new file mode 100644 index 000000000..8cc73832c --- /dev/null +++ b/AgileMapper.PerformanceTesting/AbstractMappers/UnflatteningMapperSetupBase.cs @@ -0,0 +1,11 @@ +namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers +{ + public abstract class UnflatteningMapperSetupBase : MapperSetupTestBase + { + public override string Type => "unflats"; + + protected override void Execute() => SetupUnflatteningMapper(); + + protected abstract void SetupUnflatteningMapper(); + } +} \ No newline at end of file diff --git a/AgileMapper.PerformanceTesting/AgileMapper.PerformanceTesting.csproj b/AgileMapper.PerformanceTesting/AgileMapper.PerformanceTesting.csproj index abcb33d3d..576ba6067 100644 --- a/AgileMapper.PerformanceTesting/AgileMapper.PerformanceTesting.csproj +++ b/AgileMapper.PerformanceTesting/AgileMapper.PerformanceTesting.csproj @@ -7,4 +7,16 @@ AgileObjects.AgileMapper.PerformanceTesting + + + + + + + + + + + + diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapper.cs similarity index 69% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapper.cs index 8ad67ac4c..dc5361518 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapper.cs @@ -1,9 +1,9 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AgileMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AgileMapper { using AbstractMappers; using static TestClasses.Complex; - internal class AgileMapperComplexTypeMapper : ComplexTypeMapperBase + public class AgileMapperComplexTypeMapper : ComplexTypeMapperBase { private IMapper _mapper; diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapperSetup.cs similarity index 73% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapperSetup.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapperSetup.cs index 407639ec6..4a75b6eb5 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapperSetup.cs @@ -1,9 +1,9 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AgileMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AgileMapper { using AbstractMappers; using static TestClasses.Complex; - internal class AgileMapperComplexTypeMapperSetup : ComplexTypeMapperSetupBase + public class AgileMapperComplexTypeMapperSetup : ComplexTypeMapperSetupBase { private IMapper _mapper; diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperCtorMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperCtorMapper.cs similarity index 70% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperCtorMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperCtorMapper.cs index 8062a3a08..3e5a0d44f 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperCtorMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperCtorMapper.cs @@ -1,9 +1,9 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AgileMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AgileMapper { using AbstractMappers; using static TestClasses.Ctor; - internal class AgileMapperCtorMapper : CtorMapperBase + public class AgileMapperCtorMapper : CtorMapperBase { private IMapper _mapper; diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperDeepMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperDeepMapper.cs similarity index 54% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperDeepMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperDeepMapper.cs index 1036f2e09..35cc5b621 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperDeepMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperDeepMapper.cs @@ -1,15 +1,15 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AgileMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AgileMapper { using AbstractMappers; using static TestClasses.Deep; - internal class AgileMapperDeepMapper : DeepMapperBase + public class AgileMapperDeepMapper : DeepMapperBase { private IMapper _mapper; public override void Initialise() => _mapper = Mapper.CreateNew(); - protected override CustomerDto Map(Customer customer) + protected override CustomerDto Map(Customer customer) => _mapper.Map(customer).ToANew(); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperDeepMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperDeepMapperSetup.cs similarity index 70% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperDeepMapperSetup.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperDeepMapperSetup.cs index 05621caba..22799119b 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperDeepMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperDeepMapperSetup.cs @@ -1,17 +1,17 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AgileMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AgileMapper { using AbstractMappers; using static TestClasses.Deep; - internal class AgileMapperDeepMapperSetup : DeepMapperSetupBase + public class AgileMapperDeepMapperSetup : DeepMapperSetupBase { private IMapper _mapper; public override void Initialise() => _mapper = Mapper.CreateNew(); - protected override void Reset() => _mapper.Dispose(); - protected override void SetupDeepMapper() => _mapper.GetPlanFor().ToANew(); + + protected override void Reset() => _mapper.Dispose(); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperEntityMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperEntityMapper.cs similarity index 67% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperEntityMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperEntityMapper.cs index 90204ba6a..dfe051cec 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperEntityMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperEntityMapper.cs @@ -1,9 +1,9 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AgileMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AgileMapper { using AbstractMappers; using static TestClasses.Entities; - internal class AgileMapperEntityMapper : EntityMapperBase + public class AgileMapperEntityMapper : EntityMapperBase { private IMapper _mapper; diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperEntityMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperEntityMapperSetup.cs similarity index 70% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperEntityMapperSetup.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperEntityMapperSetup.cs index 34ae8f04e..4c437988a 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperEntityMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperEntityMapperSetup.cs @@ -1,9 +1,9 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AgileMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AgileMapper { using AbstractMappers; using static TestClasses.Entities; - internal class AgileMapperEntityMapperSetup : EntityMapperSetupBase + public class AgileMapperEntityMapperSetup : EntityMapperSetupBase { private IMapper _mapper; diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperFlatteningMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperFlatteningMapper.cs similarity index 66% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperFlatteningMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperFlatteningMapper.cs index a88e06d55..7fad73c06 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperFlatteningMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperFlatteningMapper.cs @@ -1,9 +1,9 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AgileMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AgileMapper { using AbstractMappers; using static TestClasses.Flattening; - internal class AgileMapperFlatteningMapper : FlatteningMapperBase + public class AgileMapperFlatteningMapper : FlatteningMapperBase { private IMapper _mapper; diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperInstantiation.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperInstantiation.cs new file mode 100644 index 000000000..abcb3a301 --- /dev/null +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperInstantiation.cs @@ -0,0 +1,9 @@ +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AgileMapper +{ + using AbstractMappers; + + public class AgileMapperInstantiation : MapperInstantiationBase + { + protected override object CreateMapperInstance() => Mapper.CreateNew(); + } +} \ No newline at end of file diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapper.cs new file mode 100644 index 000000000..cea905cb4 --- /dev/null +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapper.cs @@ -0,0 +1,15 @@ +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AgileMapper +{ + using AbstractMappers; + using static TestClasses.Flattening; + + public class AgileMapperUnflatteningMapper : UnflatteningMapperBase + { + private IMapper _mapper; + + public override void Initialise() => _mapper = Mapper.CreateNew(); + + protected override ModelObject Unflatten(ModelDto dto) + => _mapper.Map(dto).ToANew(); + } +} \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapperSetup.cs similarity index 69% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapperSetup.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapperSetup.cs index 4272f79f6..dd85e59fb 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapperSetup.cs @@ -1,17 +1,17 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AgileMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AgileMapper { using AbstractMappers; using static TestClasses.Flattening; - internal class AgileMapperUnflatteningMapperSetup : UnflatteningMapperSetupBase + public class AgileMapperUnflatteningMapperSetup : UnflatteningMapperSetupBase { private IMapper _mapper; public override void Initialise() => _mapper = Mapper.CreateNew(); - protected override void Reset() => _mapper.Dispose(); - protected override void SetupUnflatteningMapper() => _mapper.GetPlanFor().ToANew(); + + protected override void Reset() => _mapper.Dispose(); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapper.cs similarity index 58% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapper.cs index 9feb0b5dd..8551ea675 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapper.cs @@ -1,10 +1,10 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AutoMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AutoMapper { using AbstractMappers; using global::AutoMapper; using static TestClasses.Complex; - internal class AutoMapperComplexTypeMapper : ComplexTypeMapperBase + public class AutoMapperComplexTypeMapper : ComplexTypeMapperBase { private IMapper _mapper; @@ -18,9 +18,6 @@ public override void Initialise() _mapper = config.CreateMapper(); } - protected override Foo Clone(Foo foo) - { - return _mapper.Map(foo); - } + protected override Foo Clone(Foo foo) => _mapper.Map(foo); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapperSetup.cs similarity index 59% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapperSetup.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapperSetup.cs index ae12363b6..77ee8301d 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapperSetup.cs @@ -1,25 +1,22 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AutoMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AutoMapper { using AbstractMappers; using global::AutoMapper; using static TestClasses.Complex; - internal class AutoMapperComplexTypeMapperSetup : ComplexTypeMapperSetupBase + public class AutoMapperComplexTypeMapperSetup : ComplexTypeMapperSetupBase { public override void Initialise() { } - protected override void Reset() - { - Mapper.Reset(); - } - protected override void SetupComplexTypeMapper() { Mapper.Initialize(cfg => cfg.CreateMap()); Mapper.Map(new Foo()); } + + protected override void Reset() => Mapper.Reset(); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperCtorMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperCtorMapper.cs similarity index 77% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperCtorMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperCtorMapper.cs index 7faa26ccc..cdf19cc3e 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperCtorMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperCtorMapper.cs @@ -1,10 +1,10 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AutoMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AutoMapper { using AbstractMappers; using global::AutoMapper; using static TestClasses.Ctor; - internal class AutoMapperCtorMapper : CtorMapperBase + public class AutoMapperCtorMapper : CtorMapperBase { private IMapper _mapper; @@ -18,7 +18,7 @@ public override void Initialise() _mapper = config.CreateMapper(); } - protected override ConstructedObject Construct(ValueObject valueObject) + protected override ConstructedObject Construct(ValueObject valueObject) => _mapper.Map(valueObject); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperDeepMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperDeepMapper.cs similarity index 81% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperDeepMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperDeepMapper.cs index 6fede5bdd..ee1e89420 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperDeepMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperDeepMapper.cs @@ -1,10 +1,10 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AutoMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AutoMapper { using AbstractMappers; using global::AutoMapper; using static TestClasses.Deep; - internal class AutoMapperDeepMapper : DeepMapperBase + public class AutoMapperDeepMapper : DeepMapperBase { private IMapper _mapper; diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperDeepMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperDeepMapperSetup.cs similarity index 79% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperDeepMapperSetup.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperDeepMapperSetup.cs index 785fd8f48..22dc84c20 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperDeepMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperDeepMapperSetup.cs @@ -1,10 +1,10 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AutoMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AutoMapper { using AbstractMappers; using global::AutoMapper; using static TestClasses.Deep; - internal class AutoMapperDeepMapperSetup : DeepMapperSetupBase + public class AutoMapperDeepMapperSetup : DeepMapperSetupBase { public override void Initialise() { diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperEntityMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapper.cs similarity index 90% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperEntityMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapper.cs index ac7edaf6c..955a7a30b 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperEntityMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapper.cs @@ -1,10 +1,10 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AutoMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AutoMapper { using AbstractMappers; using global::AutoMapper; using static TestClasses.Entities; - internal class AutoMapperEntityMapper : EntityMapperBase + public class AutoMapperEntityMapper : EntityMapperBase { private IMapper _mapper; diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs similarity index 89% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs index 8caadc2cb..c022136db 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs @@ -1,10 +1,10 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AutoMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AutoMapper { using AbstractMappers; using global::AutoMapper; using static TestClasses.Entities; - internal class AutoMapperEntityMapperSetup : EntityMapperSetupBase + public class AutoMapperEntityMapperSetup : EntityMapperSetupBase { public override void Initialise() { diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperFlatteningMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperFlatteningMapper.cs similarity index 66% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperFlatteningMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperFlatteningMapper.cs index 036b06913..59a960469 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperFlatteningMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperFlatteningMapper.cs @@ -1,10 +1,10 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AutoMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AutoMapper { using AbstractMappers; using global::AutoMapper; using static TestClasses.Flattening; - internal class AutoMapperFlatteningMapper : FlatteningMapperBase + public class AutoMapperFlatteningMapper : FlatteningMapperBase { private IMapper _mapper; @@ -19,8 +19,6 @@ public override void Initialise() } protected override ModelDto Flatten(ModelObject model) - { - return _mapper.Map(model); - } + => _mapper.Map(model); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperInstantiation.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperInstantiation.cs similarity index 54% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperInstantiation.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperInstantiation.cs index ca389b8cb..cca894ef1 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperInstantiation.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperInstantiation.cs @@ -1,9 +1,9 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AutoMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AutoMapper { using AbstractMappers; using global::AutoMapper; - internal class AutoMapperInstantiation : MapperInstantiationBase + public class AutoMapperInstantiation : MapperInstantiationBase { protected override object CreateMapperInstance() => new Mapper(new MapperConfiguration(cfg => { })); } diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapper.cs similarity index 66% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapper.cs index f065e845a..4077d4775 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapper.cs @@ -1,10 +1,10 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AutoMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AutoMapper { using AbstractMappers; using global::AutoMapper; using static TestClasses.Flattening; - internal class AutoMapperUnflatteningMapper : UnflatteningMapperBase + public class AutoMapperUnflatteningMapper : UnflatteningMapperBase { private IMapper _mapper; @@ -19,8 +19,6 @@ public override void Initialise() } protected override ModelObject Unflatten(ModelDto dto) - { - return _mapper.Map(dto); - } + => _mapper.Map(dto); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapperSetup.cs similarity index 61% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapperSetup.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapperSetup.cs index 289f3852d..427a37063 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapperSetup.cs @@ -1,25 +1,22 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.AutoMapper +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AutoMapper { using AbstractMappers; using global::AutoMapper; using static TestClasses.Flattening; - internal class AutoMapperUnflatteningMapperSetup : UnflatteningMapperSetupBase + public class AutoMapperUnflatteningMapperSetup : UnflatteningMapperSetupBase { public override void Initialise() { } - protected override void Reset() - { - Mapper.Reset(); - } - protected override void SetupUnflatteningMapper() { Mapper.Initialize(cfg => cfg.CreateMap().ReverseMap()); Mapper.Map(new ModelDto()); } + + protected override void Reset() => Mapper.Reset(); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualComplexTypeMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Manual/ManualComplexTypeMapper.cs similarity index 89% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualComplexTypeMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/Manual/ManualComplexTypeMapper.cs index ce0d71298..2ece48ab9 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualComplexTypeMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/Manual/ManualComplexTypeMapper.cs @@ -1,11 +1,11 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.Manual +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.Manual { using System.Collections.Generic; using System.Linq; using AbstractMappers; using static TestClasses.Complex; - internal class ManualComplexTypeMapper : ComplexTypeMapperBase + public class ManualComplexTypeMapper : ComplexTypeMapperBase { public override void Initialise() { diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualCtorMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Manual/ManualCtorMapper.cs similarity index 75% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualCtorMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/Manual/ManualCtorMapper.cs index a39996bac..9a9b2a4bb 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualCtorMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/Manual/ManualCtorMapper.cs @@ -1,9 +1,9 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.Manual +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.Manual { using AbstractMappers; using static TestClasses.Ctor; - internal class ManualCtorMapper : CtorMapperBase + public class ManualCtorMapper : CtorMapperBase { public override void Initialise() { diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualDeepMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Manual/ManualDeepMapper.cs similarity index 94% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualDeepMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/Manual/ManualDeepMapper.cs index d80227c78..9f7e4f6ca 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualDeepMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/Manual/ManualDeepMapper.cs @@ -1,11 +1,11 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.Manual +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.Manual { using System.Collections.Generic; using System.Linq; using AbstractMappers; using static TestClasses.Deep; - internal class ManualDeepMapper : DeepMapperBase + public class ManualDeepMapper : DeepMapperBase { public override void Initialise() { diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualFlatteningMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Manual/ManualFlatteningMapper.cs similarity index 87% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualFlatteningMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/Manual/ManualFlatteningMapper.cs index d9e775eee..c37a9ab6e 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualFlatteningMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/Manual/ManualFlatteningMapper.cs @@ -1,9 +1,9 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.Manual +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.Manual { using AbstractMappers; using static TestClasses.Flattening; - internal class ManualFlatteningMapper : FlatteningMapperBase + public class ManualFlatteningMapper : FlatteningMapperBase { public override void Initialise() { diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualUnflatteningMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Manual/ManualUnflatteningMapper.cs similarity index 86% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualUnflatteningMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/Manual/ManualUnflatteningMapper.cs index 894636902..a1bd95586 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Manual/ManualUnflatteningMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/Manual/ManualUnflatteningMapper.cs @@ -1,9 +1,9 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.Manual +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.Manual { using AbstractMappers; using static TestClasses.Flattening; - internal class ManualUnflatteningMapper : UnflatteningMapperBase + public class ManualUnflatteningMapper : UnflatteningMapperBase { public override void Initialise() { diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterComplexTypeMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterComplexTypeMapper.cs similarity index 82% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterComplexTypeMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterComplexTypeMapper.cs index 47729ac38..e922565bd 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterComplexTypeMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterComplexTypeMapper.cs @@ -1,4 +1,4 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.Mapster +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.Mapster { using System.Collections.Generic; using System.Linq; @@ -6,7 +6,7 @@ using global::Mapster; using static TestClasses.Complex; - internal class MapsterComplexTypeMapper : ComplexTypeMapperBase + public class MapsterComplexTypeMapper : ComplexTypeMapperBase { public override void Initialise() { diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterComplexTypeMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterComplexTypeMapperSetup.cs similarity index 77% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterComplexTypeMapperSetup.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterComplexTypeMapperSetup.cs index 2887cd379..9309c38b8 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterComplexTypeMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterComplexTypeMapperSetup.cs @@ -1,4 +1,4 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.Mapster +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.Mapster { using System.Collections.Generic; using System.Linq; @@ -6,17 +6,12 @@ using global::Mapster; using static TestClasses.Complex; - internal class MapsterComplexTypeMapperSetup : ComplexTypeMapperSetupBase + public class MapsterComplexTypeMapperSetup : ComplexTypeMapperSetupBase { public override void Initialise() { } - protected override void Reset() - { - TypeAdapterConfig.Clear(); - } - protected override void SetupComplexTypeMapper() { TypeAdapterConfig.NewConfig() @@ -28,5 +23,8 @@ protected override void SetupComplexTypeMapper() new Foo().Adapt(); } + + protected override void Reset() + => TypeAdapterConfig.Clear(); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterCtorMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterCtorMapper.cs similarity index 60% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterCtorMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterCtorMapper.cs index 8eca9e45c..2b64812c4 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterCtorMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterCtorMapper.cs @@ -1,10 +1,10 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.Mapster +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.Mapster { using AbstractMappers; using global::Mapster; using static TestClasses.Ctor; - internal class MapsterCtorMapper : CtorMapperBase + public class MapsterCtorMapper : CtorMapperBase { public override void Initialise() { @@ -13,8 +13,6 @@ public override void Initialise() } protected override ConstructedObject Construct(ValueObject valueObject) - { - return valueObject.Adapt(); - } + => valueObject.Adapt(); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterDeepMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterDeepMapper.cs similarity index 71% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterDeepMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterDeepMapper.cs index 4a3fc8a0d..5fd0e4ee3 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterDeepMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterDeepMapper.cs @@ -1,11 +1,11 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.Mapster +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.Mapster { using System.Collections.Generic; using AbstractMappers; using global::Mapster; using static TestClasses.Deep; - internal class MapsterDeepMapper : DeepMapperBase + public class MapsterDeepMapper : DeepMapperBase { public override void Initialise() { @@ -16,8 +16,6 @@ public override void Initialise() } protected override CustomerDto Map(Customer customer) - { - return customer.Adapt(); - } + => customer.Adapt(); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterDeepMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterDeepMapperSetup.cs similarity index 78% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterDeepMapperSetup.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterDeepMapperSetup.cs index 7ff2eccbe..5910f9a62 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterDeepMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterDeepMapperSetup.cs @@ -1,11 +1,11 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.Mapster +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.Mapster { using System.Collections.Generic; using AbstractMappers; using global::Mapster; using static TestClasses.Deep; - internal class MapsterDeepMapperSetup : DeepMapperSetupBase + public class MapsterDeepMapperSetup : DeepMapperSetupBase { public override void Initialise() { @@ -21,7 +21,7 @@ protected override void SetupDeepMapper() new Customer().Adapt(); } - protected override void Reset() + protected override void Reset() => TypeAdapterConfig.Clear(); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterEntityMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterEntityMapper.cs similarity index 64% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterEntityMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterEntityMapper.cs index 8ee2bbc52..d9fe6b531 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterEntityMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterEntityMapper.cs @@ -1,15 +1,15 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.Mapster +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.Mapster { using AbstractMappers; using global::Mapster; using static TestClasses.Entities; - internal class MapsterEntityMapper : EntityMapperBase + public class MapsterEntityMapper : EntityMapperBase { public override void Initialise() { TypeAdapterConfig.NewConfig() - // .Map(dest => dest.Foos, src => src.Foos ?? new List()) + // .Map(dest => dest.Foos, src => src.Foos ?? new List()) .Compile(); } diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs similarity index 79% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs index 49ee22d43..4479a3491 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs @@ -1,10 +1,10 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.Mapster +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.Mapster { using AbstractMappers; using global::Mapster; using static TestClasses.Entities; - internal class MapsterEntityMapperSetup : EntityMapperSetupBase + public class MapsterEntityMapperSetup : EntityMapperSetupBase { public override void Initialise() { diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterFlatteningMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterFlatteningMapper.cs similarity index 59% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterFlatteningMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterFlatteningMapper.cs index 8d1738ab7..30ee877e3 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterFlatteningMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterFlatteningMapper.cs @@ -1,10 +1,10 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.Mapster +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.Mapster { using AbstractMappers; using global::Mapster; using static TestClasses.Flattening; - internal class MapsterFlatteningMapper : FlatteningMapperBase + public class MapsterFlatteningMapper : FlatteningMapperBase { public override void Initialise() { @@ -13,8 +13,6 @@ public override void Initialise() } protected override ModelDto Flatten(ModelObject model) - { - return model.Adapt(); - } + => model.Adapt(); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterMapperInstantiation.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterMapperInstantiation.cs similarity index 52% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterMapperInstantiation.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterMapperInstantiation.cs index 033c5ed7c..dd1f09c85 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/Mapster/MapsterMapperInstantiation.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterMapperInstantiation.cs @@ -1,9 +1,9 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.Mapster +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.Mapster { using AbstractMappers; using global::Mapster; - internal class MapsterMapperInstantiation : MapperInstantiationBase + public class MapsterMapperInstantiation : MapperInstantiationBase { protected override object CreateMapperInstance() => new Adapter(new TypeAdapterConfig()); } diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterComplexTypeMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/ValueInjecter/ValueInjecterComplexTypeMapper.cs similarity index 89% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterComplexTypeMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/ValueInjecter/ValueInjecterComplexTypeMapper.cs index 58fa66489..a078bfa14 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterComplexTypeMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/ValueInjecter/ValueInjecterComplexTypeMapper.cs @@ -1,4 +1,4 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.ValueInjecter +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.ValueInjecter { using System; using System.Collections; @@ -10,7 +10,7 @@ using Omu.ValueInjecter.Injections; using static TestClasses.Complex; - internal class ValueInjecterComplexTypeMapper : ComplexTypeMapperBase + public class ValueInjecterComplexTypeMapper : ComplexTypeMapperBase { public override void Initialise() { @@ -18,16 +18,18 @@ public override void Initialise() } protected override Foo Clone(Foo foo) - { - return (Foo)new Foo().InjectFrom(foo); - } + => (Foo)new Foo().InjectFrom(foo); public class CloneInjection : LoopInjection { protected override void Execute(PropertyInfo sp, object source, object target) { var tp = target.GetType().GetProperty(sp.Name); - if (tp == null) return; + if (tp == null) + { + return; + } + var val = sp.GetValue(source); tp.SetValue(target, GetClone(sp, val)); @@ -53,7 +55,10 @@ private static object GetClone(PropertyInfo sp, object val) for (int index = 0; index < arr.Length; index++) { var a = arr.GetValue(index); - if (a.GetType().IsValueType || a is string) continue; + if (a.GetType().IsValueType || a is string) + { + continue; + } arrClone.SetValue(Activator.CreateInstance(a.GetType()).InjectFrom(a), index); } diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/ValueInjecter/ValueInjecterCtorMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/ValueInjecter/ValueInjecterCtorMapper.cs new file mode 100644 index 000000000..acba7c1e0 --- /dev/null +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/ValueInjecter/ValueInjecterCtorMapper.cs @@ -0,0 +1,15 @@ +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.ValueInjecter +{ + using AbstractMappers; + using Omu.ValueInjecter; + using static TestClasses.Ctor; + + public class ValueInjecterCtorMapper : CtorMapperBase + { + public override void Initialise() + => Mapper.AddMap(src => new ConstructedObject(src.Value)); + + protected override ConstructedObject Construct(ValueObject valueObject) + => Mapper.Map(valueObject); + } +} \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterDeepMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/ValueInjecter/ValueInjecterDeepMapper.cs similarity index 86% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterDeepMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/ValueInjecter/ValueInjecterDeepMapper.cs index d2ef8df28..9ed1e2641 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterDeepMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/ValueInjecter/ValueInjecterDeepMapper.cs @@ -1,4 +1,4 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.ValueInjecter +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.ValueInjecter { using System.Collections.Generic; using System.Linq; @@ -7,7 +7,7 @@ using Omu.ValueInjecter.Injections; using static TestClasses.Deep; - internal class ValueInjecterDeepMapper : DeepMapperBase + public class ValueInjecterDeepMapper : DeepMapperBase { public override void Initialise() { diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterFlatteningMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/ValueInjecter/ValueInjecterFlatteningMapper.cs similarity index 51% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterFlatteningMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/ValueInjecter/ValueInjecterFlatteningMapper.cs index 5eeab0d18..44d3514c8 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterFlatteningMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/ValueInjecter/ValueInjecterFlatteningMapper.cs @@ -1,19 +1,17 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.ValueInjecter +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.ValueInjecter { using AbstractMappers; using Omu.ValueInjecter; using Omu.ValueInjecter.Injections; using static TestClasses.Flattening; - internal class ValueInjecterFlatteningMapper : FlatteningMapperBase + public class ValueInjecterFlatteningMapper : FlatteningMapperBase { public override void Initialise() { } protected override ModelDto Flatten(ModelObject model) - { - return (ModelDto)new ModelDto().InjectFrom(model); - } + => (ModelDto)new ModelDto().InjectFrom(model); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterUnflatteningMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/ValueInjecter/ValueInjecterUnflatteningMapper.cs similarity index 50% rename from AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterUnflatteningMapper.cs rename to AgileMapper.PerformanceTesting/ConcreteMappers/ValueInjecter/ValueInjecterUnflatteningMapper.cs index c13377d1c..c43521ea5 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ValueInjecter/ValueInjecterUnflatteningMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/ValueInjecter/ValueInjecterUnflatteningMapper.cs @@ -1,19 +1,17 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.ConcreteMappers.ValueInjecter +namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.ValueInjecter { using AbstractMappers; using Omu.ValueInjecter; using Omu.ValueInjecter.Injections; using static TestClasses.Flattening; - internal class ValueInjecterUnflatteningMapper : UnflatteningMapperBase + public class ValueInjecterUnflatteningMapper : UnflatteningMapperBase { public override void Initialise() { } protected override ModelObject Unflatten(ModelDto dto) - { - return (ModelObject)new ModelObject().InjectFrom(dto); - } + => (ModelObject)new ModelObject().InjectFrom(dto); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/MapperTester.cs b/AgileMapper.PerformanceTesting/MapperTester.cs similarity index 89% rename from AgileMapper.PerformanceTester.Net45/MapperTester.cs rename to AgileMapper.PerformanceTesting/MapperTester.cs index 4ff9b678a..acba386ca 100644 --- a/AgileMapper.PerformanceTester.Net45/MapperTester.cs +++ b/AgileMapper.PerformanceTesting/MapperTester.cs @@ -1,11 +1,11 @@ -namespace AgileObjects.AgileMapper.PerformanceTester +namespace AgileObjects.AgileMapper.PerformanceTesting { using System; using System.Collections.Generic; using System.Diagnostics; using AbstractMappers; - internal class MapperTester + public class MapperTester { public static void Test(IEnumerable mapperTests) { diff --git a/AgileMapper.PerformanceTesting/PerformanceTestRunner.cs b/AgileMapper.PerformanceTesting/PerformanceTestRunner.cs new file mode 100644 index 000000000..e0de3fcd9 --- /dev/null +++ b/AgileMapper.PerformanceTesting/PerformanceTestRunner.cs @@ -0,0 +1,150 @@ +// Largely based on the AutoMapper benchmark project: +// Project: https://github.com/AutoMapper/AutoMapper/tree/master/src/Benchmark +// Licence: https://github.com/AutoMapper/AutoMapper/blob/master/LICENSE.txt + +namespace AgileObjects.AgileMapper.PerformanceTesting +{ + using System; + using System.Collections.Generic; + using System.Linq; + using AbstractMappers; + using ConcreteMappers.AgileMapper; + using ConcreteMappers.AutoMapper; + using ConcreteMappers.Manual; + using ConcreteMappers.Mapster; + using ConcreteMappers.ValueInjecter; + using Extensions; + + public class PerformanceTestRunner + { + private static readonly string[] _testIds = + { "ctor", "compl", "compls", "flat", "unflat", "unflats", "deep", "deeps", "ent", "ents", "new" }; + + private readonly Dictionary _mapperTestsByMapperId; + + public PerformanceTestRunner() + { + _mapperTestsByMapperId = new Dictionary + { + ["man"] = GetMapperTestsFor(typeof(ManualCtorMapper)), + ["ag"] = GetMapperTestsFor(typeof(AgileMapperCtorMapper)), + ["au"] = GetMapperTestsFor(typeof(AutoMapperCtorMapper)), + ["ma"] = GetMapperTestsFor(typeof(MapsterCtorMapper)), + ["vi"] = GetMapperTestsFor(typeof(ValueInjecterCtorMapper)) + }; + } + + private static IObjectMapperTest[] GetMapperTestsFor(Type exampleMapperTestType) + { + return exampleMapperTestType + .Assembly + .GetTypes() + .Filter(t => (t.Namespace == exampleMapperTestType.Namespace) && typeof(IObjectMapperTest).IsAssignableFrom(t)) + .Project(t => (IObjectMapperTest)Activator.CreateInstance(t)) + .ToArray(); + } + + public PerformanceTestRunner AddMapper(string id, Type exampleMapperTestType) + { + _mapperTestsByMapperId[id] = GetMapperTestsFor(exampleMapperTestType); + return this; + } + + public void Run(string[] args) + { + Console.WriteLine("Starting..."); + + if (!TryGetMappersToTest(args, out var mappersToTest)) + { + Console.WriteLine( + "Invalid mapper(s) specified: {0}{1}Available mapper ids: {2}", + string.Join(", ", mappersToTest), + Environment.NewLine, + string.Join(", ", _mapperTestsByMapperId.Keys)); + } + + if (!TryGetTestsToRun(args, out var testsToRun)) + { + Console.WriteLine( + "Invalid test(s) specified: {0}{1}Available tests: {2}", + string.Join(", ", testsToRun), + Environment.NewLine, + string.Join(", ", _testIds)); + } + + var mapperTestsByType = _mapperTestsByMapperId + .SelectMany(kvp => kvp.Value.Project(mapperTest => new + { + MapperId = kvp.Key, + Test = mapperTest + })) + .GroupBy(d => d.Test.Type) + .ToDictionary(grp => grp.Key, grp => grp.ToArray()); + + var mapperTestSets = _testIds + .Filter(testId => testsToRun.Contains(testId)) + .Project(testId => mapperTestsByType[testId] + .Filter(d => mappersToTest.Contains(d.MapperId)) + .Project(d => d.Test) + .ToArray()) + .ToArray(); + + foreach (var mapperTestSet in mapperTestSets) + { + MapperTester.Test(mapperTestSet); + Console.WriteLine(); + } + + Console.WriteLine("Done!"); + Console.ReadLine(); + } + + private bool TryGetMappersToTest(IList args, out ICollection mappersToTest) + { + if (args.Count == 0) + { + mappersToTest = _mapperTestsByMapperId.Keys; + return true; + } + + if (args[0] == "*") + { + mappersToTest = _mapperTestsByMapperId.Keys; + return true; + } + + var mapperIds = args[0].ToLowerInvariant().Split(','); + var invalidMapperIds = mapperIds.Except(_mapperTestsByMapperId.Keys).ToArray(); + + if (invalidMapperIds.Any()) + { + mappersToTest = invalidMapperIds; + return false; + } + + mappersToTest = _mapperTestsByMapperId.Keys.Intersect(mapperIds).ToArray(); + return true; + } + + private static bool TryGetTestsToRun(IList args, out string[] testsToRun) + { + if (args.Count < 2) + { + testsToRun = _testIds; + return true; + } + + var testIds = args[1].ToLowerInvariant().Split(','); + var invalidTestIds = testIds.Except(_testIds).ToArray(); + + if (invalidTestIds.Any()) + { + testsToRun = invalidTestIds; + return false; + } + + testsToRun = _testIds.Intersect(testIds).ToArray(); + return true; + } + } +} diff --git a/AgileMapper.PerformanceTester.Net45/TestClasses/Ctor.cs b/AgileMapper.PerformanceTesting/TestClasses/Ctor.cs similarity index 83% rename from AgileMapper.PerformanceTester.Net45/TestClasses/Ctor.cs rename to AgileMapper.PerformanceTesting/TestClasses/Ctor.cs index ab2ad466c..2282e7f8b 100644 --- a/AgileMapper.PerformanceTester.Net45/TestClasses/Ctor.cs +++ b/AgileMapper.PerformanceTesting/TestClasses/Ctor.cs @@ -1,4 +1,4 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.TestClasses +namespace AgileObjects.AgileMapper.PerformanceTesting.TestClasses { public static class Ctor { diff --git a/AgileMapper.PerformanceTester.Net45/TestClasses/Deep.cs b/AgileMapper.PerformanceTesting/TestClasses/Deep.cs similarity index 95% rename from AgileMapper.PerformanceTester.Net45/TestClasses/Deep.cs rename to AgileMapper.PerformanceTesting/TestClasses/Deep.cs index 087160678..8b7a16193 100644 --- a/AgileMapper.PerformanceTester.Net45/TestClasses/Deep.cs +++ b/AgileMapper.PerformanceTesting/TestClasses/Deep.cs @@ -1,4 +1,4 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.TestClasses +namespace AgileObjects.AgileMapper.PerformanceTesting.TestClasses { using System.Collections.Generic; diff --git a/AgileMapper.PerformanceTester.Net45/TestClasses/Entities.cs b/AgileMapper.PerformanceTesting/TestClasses/Entities.cs similarity index 98% rename from AgileMapper.PerformanceTester.Net45/TestClasses/Entities.cs rename to AgileMapper.PerformanceTesting/TestClasses/Entities.cs index bb4254296..b396bf50f 100644 --- a/AgileMapper.PerformanceTester.Net45/TestClasses/Entities.cs +++ b/AgileMapper.PerformanceTesting/TestClasses/Entities.cs @@ -1,4 +1,4 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.TestClasses +namespace AgileObjects.AgileMapper.PerformanceTesting.TestClasses { using System.Collections.Generic; using System.ComponentModel.DataAnnotations; diff --git a/AgileMapper.PerformanceTester.Net45/TestClasses/Flattening.cs b/AgileMapper.PerformanceTesting/TestClasses/Flattening.cs similarity index 91% rename from AgileMapper.PerformanceTester.Net45/TestClasses/Flattening.cs rename to AgileMapper.PerformanceTesting/TestClasses/Flattening.cs index a040608bd..6e19bad4e 100644 --- a/AgileMapper.PerformanceTester.Net45/TestClasses/Flattening.cs +++ b/AgileMapper.PerformanceTesting/TestClasses/Flattening.cs @@ -1,7 +1,7 @@ -using System; - -namespace AgileObjects.AgileMapper.PerformanceTester.TestClasses +namespace AgileObjects.AgileMapper.PerformanceTesting.TestClasses { + using System; + public static class Flattening { public class ModelObject diff --git a/AgileMapper.PerformanceTester.Net45/TestClasses/Foo.cs b/AgileMapper.PerformanceTesting/TestClasses/Foo.cs similarity index 91% rename from AgileMapper.PerformanceTester.Net45/TestClasses/Foo.cs rename to AgileMapper.PerformanceTesting/TestClasses/Foo.cs index ee81c954a..d2b13f380 100644 --- a/AgileMapper.PerformanceTester.Net45/TestClasses/Foo.cs +++ b/AgileMapper.PerformanceTesting/TestClasses/Foo.cs @@ -1,4 +1,4 @@ -namespace AgileObjects.AgileMapper.PerformanceTester.TestClasses +namespace AgileObjects.AgileMapper.PerformanceTesting.TestClasses { using System; using System.Collections.Generic; From a08a0521dbac9f039dda824caa26fdda2d96b6bd Mon Sep 17 00:00:00 2001 From: Steve Wilkes Date: Thu, 6 Sep 2018 20:46:48 +0100 Subject: [PATCH 4/6] Commenting out AutoMapper and Mapster entity mapper setup tests --- .../AbstractMappers/MapperSetupTestBase.cs | 7 +- .../AutoMapper/AutoMapperEntityMapperSetup.cs | 64 +++++++++---------- .../Mapster/MapsterEntityMapperSetup.cs | 36 +++++------ 3 files changed, 56 insertions(+), 51 deletions(-) diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/MapperSetupTestBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/MapperSetupTestBase.cs index b288f9f14..0cf9afcae 100644 --- a/AgileMapper.PerformanceTesting/AbstractMappers/MapperSetupTestBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/MapperSetupTestBase.cs @@ -2,6 +2,7 @@ { using System; using System.Diagnostics; + using System.Reflection; public abstract class MapperSetupTestBase : IObjectMapperTest { @@ -11,7 +12,11 @@ protected MapperSetupTestBase() { var type = GetType(); var mapperTestName = $"{type.Namespace}.{type.Name.Replace("Setup", null)}"; - var mapperTestType = type.Assembly.GetType(mapperTestName) ?? throw new InvalidOperationException(); + + var mapperTestType = + type.Assembly.GetType(mapperTestName, throwOnError: false) ?? + Assembly.GetExecutingAssembly().GetType(mapperTestName, throwOnError: false) ?? + throw new InvalidOperationException("Couldn't find mapper test " + mapperTestName); _mapperTest = (IObjectMapperTest)Activator.CreateInstance(mapperTestType); diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs index c022136db..37dd3bdad 100644 --- a/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs @@ -1,39 +1,39 @@ namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AutoMapper { - using AbstractMappers; - using global::AutoMapper; - using static TestClasses.Entities; + //using AbstractMappers; + //using global::AutoMapper; + //using static TestClasses.Entities; - public class AutoMapperEntityMapperSetup : EntityMapperSetupBase - { - public override void Initialise() - { - } + //public class AutoMapperEntityMapperSetup : EntityMapperSetupBase + //{ + // public override void Initialise() + // { + // } - protected override void SetupEntityMapper() - { - Mapper.Initialize(cfg => - { - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - }); + // protected override void SetupEntityMapper() + // { + // Mapper.Initialize(cfg => + // { + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // }); - Mapper.Map(new Warehouse()); - } + // Mapper.Map(new Warehouse()); + // } - protected override void Reset() => Mapper.Reset(); - } + // protected override void Reset() => Mapper.Reset(); + //} } diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs index 4479a3491..8d415a615 100644 --- a/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs @@ -1,25 +1,25 @@ namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.Mapster { - using AbstractMappers; - using global::Mapster; - using static TestClasses.Entities; + //using AbstractMappers; + //using global::Mapster; + //using static TestClasses.Entities; - public class MapsterEntityMapperSetup : EntityMapperSetupBase - { - public override void Initialise() - { - } + //public class MapsterEntityMapperSetup : EntityMapperSetupBase + //{ + // public override void Initialise() + // { + // } - protected override void SetupEntityMapper() - { - TypeAdapterConfig.NewConfig() - // .Map(dest => dest.Foos, src => src.Foos ?? new List()) - .Compile(); + // protected override void SetupEntityMapper() + // { + // TypeAdapterConfig.NewConfig() + // // .Map(dest => dest.Foos, src => src.Foos ?? new List()) + // .Compile(); - new Warehouse().Adapt(); - } + // new Warehouse().Adapt(); + // } - protected override void Reset() - => TypeAdapterConfig.Clear(); - } + // protected override void Reset() + // => TypeAdapterConfig.Clear(); + //} } From 0458049af2893ce1b1c6eb1c2afa3cf628685ff8 Mon Sep 17 00:00:00 2001 From: Steve Wilkes Date: Fri, 7 Sep 2018 12:41:29 +0100 Subject: [PATCH 5/6] Adding NetCore 2.1 performance tester project --- ...eMapper.PerformanceTester.NetCore21.csproj | 23 +++++++ .../Mapster/MapsterEntityMapperSetup.cs | 25 ++++++++ .../Program.cs | 14 ++++ .../Properties/launchSettings.json | 8 +++ .../AbstractMappers/MapperSetupTestBase.cs | 35 ++++++++-- .../AutoMapper/AutoMapperEntityMapper.cs | 30 ++++----- .../AutoMapper/AutoMapperEntityMapperSetup.cs | 64 +++++++++---------- .../Mapster/MapsterEntityMapperSetup.cs | 25 -------- AgileMapper.PerformanceTesting/MapperIds.cs | 11 ++++ .../PerformanceTestRunner.cs | 30 ++++++--- AgileMapper.sln | 8 ++- 11 files changed, 183 insertions(+), 90 deletions(-) create mode 100644 AgileMapper.PerformanceTester.NetCore21/AgileMapper.PerformanceTester.NetCore21.csproj create mode 100644 AgileMapper.PerformanceTester.NetCore21/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs create mode 100644 AgileMapper.PerformanceTester.NetCore21/Program.cs create mode 100644 AgileMapper.PerformanceTester.NetCore21/Properties/launchSettings.json delete mode 100644 AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs create mode 100644 AgileMapper.PerformanceTesting/MapperIds.cs diff --git a/AgileMapper.PerformanceTester.NetCore21/AgileMapper.PerformanceTester.NetCore21.csproj b/AgileMapper.PerformanceTester.NetCore21/AgileMapper.PerformanceTester.NetCore21.csproj new file mode 100644 index 000000000..33674ed9e --- /dev/null +++ b/AgileMapper.PerformanceTester.NetCore21/AgileMapper.PerformanceTester.NetCore21.csproj @@ -0,0 +1,23 @@ + + + + + Exe + netcoreapp2.1 + AgileObjects.AgileMapper.PerformanceTester.NetCore21 + AgileObjects.AgileMapper.PerformanceTester.NetCore21 + + + + + + + + + + + + + + + diff --git a/AgileMapper.PerformanceTester.NetCore21/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs b/AgileMapper.PerformanceTester.NetCore21/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs new file mode 100644 index 000000000..b6547c135 --- /dev/null +++ b/AgileMapper.PerformanceTester.NetCore21/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs @@ -0,0 +1,25 @@ +namespace AgileObjects.AgileMapper.PerformanceTester.NetCore21.ConcreteMappers.Mapster +{ + using global::Mapster; + using PerformanceTesting.AbstractMappers; + using static PerformanceTesting.TestClasses.Entities; + + public class MapsterEntityMapperSetup : EntityMapperSetupBase + { + public override void Initialise() + { + } + + protected override void SetupEntityMapper() + { + TypeAdapterConfig.NewConfig() + // .Map(dest => dest.Foos, src => src.Foos ?? new List()) + .Compile(); + + new Warehouse().Adapt(); + } + + protected override void Reset() + => TypeAdapterConfig.Clear(); + } +} diff --git a/AgileMapper.PerformanceTester.NetCore21/Program.cs b/AgileMapper.PerformanceTester.NetCore21/Program.cs new file mode 100644 index 000000000..d220977f3 --- /dev/null +++ b/AgileMapper.PerformanceTester.NetCore21/Program.cs @@ -0,0 +1,14 @@ +namespace AgileObjects.AgileMapper.PerformanceTester.NetCore21 +{ + using PerformanceTesting; + + public class Program + { + public static void Main(string[] args) + { + new PerformanceTestRunner() + //.AddTest(MapperIds.Mapster, null) + .Run(args); + } + } +} diff --git a/AgileMapper.PerformanceTester.NetCore21/Properties/launchSettings.json b/AgileMapper.PerformanceTester.NetCore21/Properties/launchSettings.json new file mode 100644 index 000000000..d05a7ba89 --- /dev/null +++ b/AgileMapper.PerformanceTester.NetCore21/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "AgileMapper.PerformanceTester.NetCore21": { + "commandName": "Project", + "commandLineArgs": "ag,au ents" + } + } +} \ No newline at end of file diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/MapperSetupTestBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/MapperSetupTestBase.cs index 0cf9afcae..f5395e77f 100644 --- a/AgileMapper.PerformanceTesting/AbstractMappers/MapperSetupTestBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/MapperSetupTestBase.cs @@ -2,6 +2,7 @@ { using System; using System.Diagnostics; + using System.Linq; using System.Reflection; public abstract class MapperSetupTestBase : IObjectMapperTest @@ -10,19 +11,39 @@ public abstract class MapperSetupTestBase : IObjectMapperTest protected MapperSetupTestBase() { - var type = GetType(); - var mapperTestName = $"{type.Namespace}.{type.Name.Replace("Setup", null)}"; - - var mapperTestType = - type.Assembly.GetType(mapperTestName, throwOnError: false) ?? - Assembly.GetExecutingAssembly().GetType(mapperTestName, throwOnError: false) ?? - throw new InvalidOperationException("Couldn't find mapper test " + mapperTestName); + var mapperTestType = FindTestTypeOrThrow(); _mapperTest = (IObjectMapperTest)Activator.CreateInstance(mapperTestType); _mapperTest.Initialise(); } + private Type FindTestTypeOrThrow() + { + var type = GetType(); + var testName = type.Name.Replace("Setup", null); + var testFullName = $"{type.Namespace}.{testName}"; + + var testType = type.Assembly.GetType(testFullName, throwOnError: false); + + if (testType != null) + { + return testType; + } + + testType = Assembly + .GetExecutingAssembly() + .GetTypes() + .FirstOrDefault(t => t.Name == testName); + + if (testType != null) + { + return testType; + } + + throw new InvalidOperationException("Couldn't find mapper test " + testName); + } + public abstract string Type { get; } public string Name => GetType().Name; diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapper.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapper.cs index 955a7a30b..2f598064f 100644 --- a/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapper.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapper.cs @@ -12,21 +12,21 @@ public override void Initialise() { var config = new MapperConfiguration(cfg => { - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); + //cfg.CreateMap(); + //cfg.CreateMap(); + //cfg.CreateMap(); + //cfg.CreateMap(); + //cfg.CreateMap(); + //cfg.CreateMap(); + //cfg.CreateMap(); + //cfg.CreateMap(); + //cfg.CreateMap(); + //cfg.CreateMap(); + //cfg.CreateMap(); + //cfg.CreateMap(); + //cfg.CreateMap(); + //cfg.CreateMap(); + //cfg.CreateMap(); }); _mapper = config.CreateMapper(); diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs index 37dd3bdad..c022136db 100644 --- a/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs @@ -1,39 +1,39 @@ namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AutoMapper { - //using AbstractMappers; - //using global::AutoMapper; - //using static TestClasses.Entities; + using AbstractMappers; + using global::AutoMapper; + using static TestClasses.Entities; - //public class AutoMapperEntityMapperSetup : EntityMapperSetupBase - //{ - // public override void Initialise() - // { - // } + public class AutoMapperEntityMapperSetup : EntityMapperSetupBase + { + public override void Initialise() + { + } - // protected override void SetupEntityMapper() - // { - // Mapper.Initialize(cfg => - // { - // cfg.CreateMap(); - // cfg.CreateMap(); - // cfg.CreateMap(); - // cfg.CreateMap(); - // cfg.CreateMap(); - // cfg.CreateMap(); - // cfg.CreateMap(); - // cfg.CreateMap(); - // cfg.CreateMap(); - // cfg.CreateMap(); - // cfg.CreateMap(); - // cfg.CreateMap(); - // cfg.CreateMap(); - // cfg.CreateMap(); - // cfg.CreateMap(); - // }); + protected override void SetupEntityMapper() + { + Mapper.Initialize(cfg => + { + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + }); - // Mapper.Map(new Warehouse()); - // } + Mapper.Map(new Warehouse()); + } - // protected override void Reset() => Mapper.Reset(); - //} + protected override void Reset() => Mapper.Reset(); + } } diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs deleted file mode 100644 index 8d415a615..000000000 --- a/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs +++ /dev/null @@ -1,25 +0,0 @@ -namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.Mapster -{ - //using AbstractMappers; - //using global::Mapster; - //using static TestClasses.Entities; - - //public class MapsterEntityMapperSetup : EntityMapperSetupBase - //{ - // public override void Initialise() - // { - // } - - // protected override void SetupEntityMapper() - // { - // TypeAdapterConfig.NewConfig() - // // .Map(dest => dest.Foos, src => src.Foos ?? new List()) - // .Compile(); - - // new Warehouse().Adapt(); - // } - - // protected override void Reset() - // => TypeAdapterConfig.Clear(); - //} -} diff --git a/AgileMapper.PerformanceTesting/MapperIds.cs b/AgileMapper.PerformanceTesting/MapperIds.cs new file mode 100644 index 000000000..6a6a1e0af --- /dev/null +++ b/AgileMapper.PerformanceTesting/MapperIds.cs @@ -0,0 +1,11 @@ +namespace AgileObjects.AgileMapper.PerformanceTesting +{ + public static class MapperIds + { + public const string Manual = "man"; + public const string AgileMapper = "ag"; + public const string AutoMapper = "au"; + public const string Mapster = "ma"; + public const string ValueInjecter = "vi"; + } +} diff --git a/AgileMapper.PerformanceTesting/PerformanceTestRunner.cs b/AgileMapper.PerformanceTesting/PerformanceTestRunner.cs index e0de3fcd9..9b88a5d55 100644 --- a/AgileMapper.PerformanceTesting/PerformanceTestRunner.cs +++ b/AgileMapper.PerformanceTesting/PerformanceTestRunner.cs @@ -14,42 +14,52 @@ namespace AgileObjects.AgileMapper.PerformanceTesting using ConcreteMappers.Mapster; using ConcreteMappers.ValueInjecter; using Extensions; + using static MapperIds; public class PerformanceTestRunner { private static readonly string[] _testIds = { "ctor", "compl", "compls", "flat", "unflat", "unflats", "deep", "deeps", "ent", "ents", "new" }; - private readonly Dictionary _mapperTestsByMapperId; + private readonly Dictionary> _mapperTestsByMapperId; public PerformanceTestRunner() { - _mapperTestsByMapperId = new Dictionary + _mapperTestsByMapperId = new Dictionary> { - ["man"] = GetMapperTestsFor(typeof(ManualCtorMapper)), - ["ag"] = GetMapperTestsFor(typeof(AgileMapperCtorMapper)), - ["au"] = GetMapperTestsFor(typeof(AutoMapperCtorMapper)), - ["ma"] = GetMapperTestsFor(typeof(MapsterCtorMapper)), - ["vi"] = GetMapperTestsFor(typeof(ValueInjecterCtorMapper)) + [Manual] = GetMapperTestsFor(typeof(ManualCtorMapper)), + [AgileMapper] = GetMapperTestsFor(typeof(AgileMapperCtorMapper)), + [AutoMapper] = GetMapperTestsFor(typeof(AutoMapperCtorMapper)), + [Mapster] = GetMapperTestsFor(typeof(MapsterCtorMapper)), + [ValueInjecter] = GetMapperTestsFor(typeof(ValueInjecterCtorMapper)) }; } - private static IObjectMapperTest[] GetMapperTestsFor(Type exampleMapperTestType) + private static ICollection GetMapperTestsFor(Type exampleMapperTestType) { return exampleMapperTestType .Assembly .GetTypes() .Filter(t => (t.Namespace == exampleMapperTestType.Namespace) && typeof(IObjectMapperTest).IsAssignableFrom(t)) - .Project(t => (IObjectMapperTest)Activator.CreateInstance(t)) - .ToArray(); + .Project(CreateTest) + .ToList(); } + private static IObjectMapperTest CreateTest(Type testType) + => (IObjectMapperTest)Activator.CreateInstance(testType); + public PerformanceTestRunner AddMapper(string id, Type exampleMapperTestType) { _mapperTestsByMapperId[id] = GetMapperTestsFor(exampleMapperTestType); return this; } + public PerformanceTestRunner AddTest(string mapperId, Type testType) + { + _mapperTestsByMapperId[mapperId].Add(CreateTest(testType)); + return this; + } + public void Run(string[] args) { Console.WriteLine("Starting..."); diff --git a/AgileMapper.sln b/AgileMapper.sln index e9ef1f75f..90b2f7c81 100644 --- a/AgileMapper.sln +++ b/AgileMapper.sln @@ -50,7 +50,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AgileMapper.UnitTests.Net35 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AgileMapper.UnitTests.Common", "AgileMapper.UnitTests.Common\AgileMapper.UnitTests.Common.csproj", "{69C1F1A9-F8A4-4CEE-90E3-67B8D6DAE8F6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AgileMapper.PerformanceTesting", "AgileMapper.PerformanceTesting\AgileMapper.PerformanceTesting.csproj", "{F377844C-1A00-4685-8C04-07E6067C2812}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AgileMapper.PerformanceTesting", "AgileMapper.PerformanceTesting\AgileMapper.PerformanceTesting.csproj", "{F377844C-1A00-4685-8C04-07E6067C2812}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AgileMapper.PerformanceTester.NetCore21", "AgileMapper.PerformanceTester.NetCore21\AgileMapper.PerformanceTester.NetCore21.csproj", "{B5BA0B88-48C7-47AE-9236-719BFE67B0A9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -134,6 +136,10 @@ Global {F377844C-1A00-4685-8C04-07E6067C2812}.Debug|Any CPU.Build.0 = Debug|Any CPU {F377844C-1A00-4685-8C04-07E6067C2812}.Release|Any CPU.ActiveCfg = Release|Any CPU {F377844C-1A00-4685-8C04-07E6067C2812}.Release|Any CPU.Build.0 = Release|Any CPU + {B5BA0B88-48C7-47AE-9236-719BFE67B0A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B5BA0B88-48C7-47AE-9236-719BFE67B0A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5BA0B88-48C7-47AE-9236-719BFE67B0A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B5BA0B88-48C7-47AE-9236-719BFE67B0A9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From fb5f6f459fa78c75c66ecb72f57c6d1e7c958f75 Mon Sep 17 00:00:00 2001 From: Steve Wilkes Date: Fri, 7 Sep 2018 18:50:35 +0100 Subject: [PATCH 6/6] Updating mapper tests --- .../ExpressMapperComplexTypeMapperSetup.cs | 11 ++-- .../ExpressMapperDeepMapperSetup.cs | 11 ++-- .../Mapster/MapsterEntityMapperSetup.cs | 38 ++++++----- .../Program.cs | 2 +- .../Properties/launchSettings.json | 2 +- .../AbstractMappers/ComplexTypeMapperBase.cs | 2 + .../ComplexTypeMapperSetupBase.cs | 6 +- .../AbstractMappers/CtorMapperBase.cs | 2 + .../AbstractMappers/DeepMapperBase.cs | 2 + .../AbstractMappers/DeepMapperSetupBase.cs | 6 +- .../AbstractMappers/EntityMapperBase.cs | 2 + .../AbstractMappers/EntityMapperSetupBase.cs | 6 +- .../AbstractMappers/FlatteningMapperBase.cs | 2 + .../AbstractMappers/IObjectMapperTest.cs | 2 + .../MapperInstantiationBase.cs | 4 +- .../AbstractMappers/MapperSetupTestBase.cs | 12 ++-- .../AbstractMappers/MapperTestBase.cs | 4 +- .../AbstractMappers/UnflatteningMapperBase.cs | 2 + .../UnflatteningMapperSetupBase.cs | 6 +- .../AgileMapperComplexTypeMapperSetup.cs | 8 ++- .../AgileMapper/AgileMapperDeepMapperSetup.cs | 8 ++- .../AgileMapperEntityMapperSetup.cs | 8 ++- .../AgileMapperUnflatteningMapperSetup.cs | 8 ++- .../AutoMapperComplexTypeMapperSetup.cs | 4 +- .../AutoMapper/AutoMapperDeepMapperSetup.cs | 4 +- .../AutoMapper/AutoMapperEntityMapperSetup.cs | 66 ++++++++++--------- .../AutoMapperUnflatteningMapperSetup.cs | 4 +- .../Mapster/MapsterComplexTypeMapperSetup.cs | 4 +- .../Mapster/MapsterDeepMapperSetup.cs | 4 +- .../PerformanceTestRunner.cs | 1 + 30 files changed, 142 insertions(+), 99 deletions(-) diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapperSetup.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapperSetup.cs index daeead363..bf49bc623 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapperSetup.cs +++ b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperComplexTypeMapperSetup.cs @@ -13,12 +13,7 @@ public override void Initialise() { } - protected override void Reset() - { - Mapper.Reset(); - } - - protected override void SetupComplexTypeMapper() + protected override Foo SetupComplexTypeMapper(Foo sourceFoo) { Mapper .Register() @@ -29,7 +24,9 @@ protected override void SetupComplexTypeMapper() Mapper.Compile(); - Mapper.Map(new Foo()); + return Mapper.Map(sourceFoo); } + + protected override void Reset() => Mapper.Reset(); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapperSetup.cs b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapperSetup.cs index f9a56b95a..138b2317c 100644 --- a/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapperSetup.cs +++ b/AgileMapper.PerformanceTester.Net45/ConcreteMappers/ExpressMapper/ExpressMapperDeepMapperSetup.cs @@ -12,12 +12,7 @@ public override void Initialise() { } - protected override void Reset() - { - Mapper.Reset(); - } - - protected override void SetupDeepMapper() + protected override CustomerDto SetupDeepMapper(Customer customer) { Mapper .Register() @@ -35,7 +30,9 @@ protected override void SetupDeepMapper() Mapper.Compile(); - Mapper.Map(new Customer()); + return Mapper.Map(customer); } + + protected override void Reset() => Mapper.Reset(); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTester.NetCore21/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs b/AgileMapper.PerformanceTester.NetCore21/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs index b6547c135..8e4299466 100644 --- a/AgileMapper.PerformanceTester.NetCore21/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs +++ b/AgileMapper.PerformanceTester.NetCore21/ConcreteMappers/Mapster/MapsterEntityMapperSetup.cs @@ -1,25 +1,27 @@ namespace AgileObjects.AgileMapper.PerformanceTester.NetCore21.ConcreteMappers.Mapster { - using global::Mapster; - using PerformanceTesting.AbstractMappers; - using static PerformanceTesting.TestClasses.Entities; + // warehouse.Adapt(); throws a StackOverflowException - public class MapsterEntityMapperSetup : EntityMapperSetupBase - { - public override void Initialise() - { - } + //using global::Mapster; + //using PerformanceTesting.AbstractMappers; + //using static PerformanceTesting.TestClasses.Entities; - protected override void SetupEntityMapper() - { - TypeAdapterConfig.NewConfig() - // .Map(dest => dest.Foos, src => src.Foos ?? new List()) - .Compile(); + //public class MapsterEntityMapperSetup : EntityMapperSetupBase + //{ + // public override void Initialise() + // { + // } - new Warehouse().Adapt(); - } + // protected override Warehouse SetupEntityMapper(Warehouse warehouse) + // { + // TypeAdapterConfig.NewConfig() + // // .Map(dest => dest.Foos, src => src.Foos ?? new List()) + // .Compile(); - protected override void Reset() - => TypeAdapterConfig.Clear(); - } + // return warehouse.Adapt(); + // } + + // protected override void Reset() + // => TypeAdapterConfig.Clear(); + //} } diff --git a/AgileMapper.PerformanceTester.NetCore21/Program.cs b/AgileMapper.PerformanceTester.NetCore21/Program.cs index d220977f3..79f8133b4 100644 --- a/AgileMapper.PerformanceTester.NetCore21/Program.cs +++ b/AgileMapper.PerformanceTester.NetCore21/Program.cs @@ -7,7 +7,7 @@ public class Program public static void Main(string[] args) { new PerformanceTestRunner() - //.AddTest(MapperIds.Mapster, null) + //.AddTest(MapperIds.Mapster, typeof(MapsterEntityMapperSetup)) .Run(args); } } diff --git a/AgileMapper.PerformanceTester.NetCore21/Properties/launchSettings.json b/AgileMapper.PerformanceTester.NetCore21/Properties/launchSettings.json index d05a7ba89..728c7483f 100644 --- a/AgileMapper.PerformanceTester.NetCore21/Properties/launchSettings.json +++ b/AgileMapper.PerformanceTester.NetCore21/Properties/launchSettings.json @@ -2,7 +2,7 @@ "profiles": { "AgileMapper.PerformanceTester.NetCore21": { "commandName": "Project", - "commandLineArgs": "ag,au ents" + "commandLineArgs": "ma ents" } } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/ComplexTypeMapperBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/ComplexTypeMapperBase.cs index cf12fef67..b53db44f7 100644 --- a/AgileMapper.PerformanceTesting/AbstractMappers/ComplexTypeMapperBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/ComplexTypeMapperBase.cs @@ -41,6 +41,8 @@ protected ComplexTypeMapperBase() public override string Type => "compl"; + public override object SourceObject => _foo; + public override object Execute(Stopwatch timer) => Clone(_foo); public override void Verify(object result) diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/ComplexTypeMapperSetupBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/ComplexTypeMapperSetupBase.cs index 3843bbb92..bc14b36de 100644 --- a/AgileMapper.PerformanceTesting/AbstractMappers/ComplexTypeMapperSetupBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/ComplexTypeMapperSetupBase.cs @@ -1,11 +1,13 @@ namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers { + using static TestClasses.Complex; + public abstract class ComplexTypeMapperSetupBase : MapperSetupTestBase { public override string Type => "compls"; - protected override void Execute() => SetupComplexTypeMapper(); + protected override object Execute() => SetupComplexTypeMapper((Foo)SourceObject); - protected abstract void SetupComplexTypeMapper(); + protected abstract Foo SetupComplexTypeMapper(Foo foo); } } diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/CtorMapperBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/CtorMapperBase.cs index 390030623..66b778cbf 100644 --- a/AgileMapper.PerformanceTesting/AbstractMappers/CtorMapperBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/CtorMapperBase.cs @@ -15,6 +15,8 @@ protected CtorMapperBase() public override string Type => "ctor"; + public override object SourceObject => _valueObject; + public override object Execute(Stopwatch timer) => Construct(_valueObject); protected abstract ConstructedObject Construct(ValueObject valueObject); diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/DeepMapperBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/DeepMapperBase.cs index 5dd54bc0c..bec137db0 100644 --- a/AgileMapper.PerformanceTesting/AbstractMappers/DeepMapperBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/DeepMapperBase.cs @@ -34,6 +34,8 @@ protected DeepMapperBase() public override string Type => "deep"; + public override object SourceObject => _customer; + public override object Execute(Stopwatch timer) => Map(_customer); protected abstract CustomerDto Map(Customer customer); diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/DeepMapperSetupBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/DeepMapperSetupBase.cs index a9a8d2fdb..d6fb336b2 100644 --- a/AgileMapper.PerformanceTesting/AbstractMappers/DeepMapperSetupBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/DeepMapperSetupBase.cs @@ -1,11 +1,13 @@ namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers { + using static TestClasses.Deep; + public abstract class DeepMapperSetupBase : MapperSetupTestBase { public override string Type => "deeps"; - protected override void Execute() => SetupDeepMapper(); + protected override object Execute() => SetupDeepMapper((Customer)SourceObject); - protected abstract void SetupDeepMapper(); + protected abstract CustomerDto SetupDeepMapper(Customer customer); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/EntityMapperBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/EntityMapperBase.cs index 01a9a9a63..a3b3dfb95 100644 --- a/AgileMapper.PerformanceTesting/AbstractMappers/EntityMapperBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/EntityMapperBase.cs @@ -11,6 +11,8 @@ public abstract class EntityMapperBase : MapperTestBase public override int NumberOfExecutions => 100_000; + public override object SourceObject => _warehouse; + protected EntityMapperBase() { var warehouse = new Warehouse diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/EntityMapperSetupBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/EntityMapperSetupBase.cs index d255748f4..b3b83eafd 100644 --- a/AgileMapper.PerformanceTesting/AbstractMappers/EntityMapperSetupBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/EntityMapperSetupBase.cs @@ -1,11 +1,13 @@ namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers { + using static TestClasses.Entities; + public abstract class EntityMapperSetupBase : MapperSetupTestBase { public override string Type => "ents"; - protected override void Execute() => SetupEntityMapper(); + protected override object Execute() => SetupEntityMapper((Warehouse)SourceObject); - protected abstract void SetupEntityMapper(); + protected abstract Warehouse SetupEntityMapper(Warehouse warehouse); } } diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/FlatteningMapperBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/FlatteningMapperBase.cs index 0a2638a03..7cfb56feb 100644 --- a/AgileMapper.PerformanceTesting/AbstractMappers/FlatteningMapperBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/FlatteningMapperBase.cs @@ -35,6 +35,8 @@ protected FlatteningMapperBase() public override string Type => "flat"; + public override object SourceObject => _modelObject; + public override object Execute(Stopwatch timer) => Flatten(_modelObject); protected abstract ModelDto Flatten(ModelObject model); diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/IObjectMapperTest.cs b/AgileMapper.PerformanceTesting/AbstractMappers/IObjectMapperTest.cs index 707467fcb..1d1715de5 100644 --- a/AgileMapper.PerformanceTesting/AbstractMappers/IObjectMapperTest.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/IObjectMapperTest.cs @@ -10,6 +10,8 @@ public interface IObjectMapperTest int NumberOfExecutions { get; } + object SourceObject { get; } + void Initialise(); object Execute(Stopwatch timer); diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/MapperInstantiationBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/MapperInstantiationBase.cs index 2d5dcb773..0817f03c8 100644 --- a/AgileMapper.PerformanceTesting/AbstractMappers/MapperInstantiationBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/MapperInstantiationBase.cs @@ -5,9 +5,11 @@ public abstract class MapperInstantiationBase : MapperTestBase { public override string Type => "new"; - + public override int NumberOfExecutions => 10_000; + public override object SourceObject => null; + public override void Initialise() { } diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/MapperSetupTestBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/MapperSetupTestBase.cs index f5395e77f..f750bb292 100644 --- a/AgileMapper.PerformanceTesting/AbstractMappers/MapperSetupTestBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/MapperSetupTestBase.cs @@ -14,8 +14,6 @@ protected MapperSetupTestBase() var mapperTestType = FindTestTypeOrThrow(); _mapperTest = (IObjectMapperTest)Activator.CreateInstance(mapperTestType); - - _mapperTest.Initialise(); } private Type FindTestTypeOrThrow() @@ -50,6 +48,8 @@ private Type FindTestTypeOrThrow() public int NumberOfExecutions => 100; + public object SourceObject => _mapperTest.SourceObject; + public abstract void Initialise(); public object Execute(Stopwatch timer) @@ -60,16 +60,18 @@ public object Execute(Stopwatch timer) timer.Start(); - Execute(); + var mapped = Execute(); - var mapped = _mapperTest.Execute(new Stopwatch()); + timer.Stop(); _mapperTest.Verify(mapped); + timer.Start(); + return null; } - protected abstract void Execute(); + protected abstract object Execute(); public void Verify(object result) { diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/MapperTestBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/MapperTestBase.cs index ac5f8d99c..30f67aedd 100644 --- a/AgileMapper.PerformanceTesting/AbstractMappers/MapperTestBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/MapperTestBase.cs @@ -10,10 +10,12 @@ public abstract class MapperTestBase : IObjectMapperTest public virtual int NumberOfExecutions => 1_000_000; + public abstract object SourceObject { get; } + public abstract void Initialise(); public abstract object Execute(Stopwatch timer); - + public abstract void Verify(object result); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/UnflatteningMapperBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/UnflatteningMapperBase.cs index 1ce38dfdb..a33a3e77d 100644 --- a/AgileMapper.PerformanceTesting/AbstractMappers/UnflatteningMapperBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/UnflatteningMapperBase.cs @@ -23,6 +23,8 @@ protected UnflatteningMapperBase() public override string Type => "unflat"; + public override object SourceObject => _modelDto; + public override object Execute(Stopwatch timer) => Unflatten(_modelDto); protected abstract ModelObject Unflatten(ModelDto dto); diff --git a/AgileMapper.PerformanceTesting/AbstractMappers/UnflatteningMapperSetupBase.cs b/AgileMapper.PerformanceTesting/AbstractMappers/UnflatteningMapperSetupBase.cs index 8cc73832c..363ca0d4a 100644 --- a/AgileMapper.PerformanceTesting/AbstractMappers/UnflatteningMapperSetupBase.cs +++ b/AgileMapper.PerformanceTesting/AbstractMappers/UnflatteningMapperSetupBase.cs @@ -1,11 +1,13 @@ namespace AgileObjects.AgileMapper.PerformanceTesting.AbstractMappers { + using static TestClasses.Flattening; + public abstract class UnflatteningMapperSetupBase : MapperSetupTestBase { public override string Type => "unflats"; - protected override void Execute() => SetupUnflatteningMapper(); + protected override object Execute() => SetupUnflatteningMapper((ModelDto)SourceObject); - protected abstract void SetupUnflatteningMapper(); + protected abstract ModelObject SetupUnflatteningMapper(ModelDto dto); } } \ No newline at end of file diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapperSetup.cs index 4a75b6eb5..aa11573ee 100644 --- a/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperComplexTypeMapperSetup.cs @@ -9,8 +9,12 @@ public class AgileMapperComplexTypeMapperSetup : ComplexTypeMapperSetupBase public override void Initialise() => _mapper = Mapper.CreateNew(); - protected override void SetupComplexTypeMapper() - => _mapper.GetPlanFor().ToANew(); + protected override Foo SetupComplexTypeMapper(Foo foo) + { + _mapper.GetPlanFor().ToANew(); + + return _mapper.Map(foo).ToANew(); + } protected override void Reset() { diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperDeepMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperDeepMapperSetup.cs index 22799119b..be487ed5d 100644 --- a/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperDeepMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperDeepMapperSetup.cs @@ -9,8 +9,12 @@ public class AgileMapperDeepMapperSetup : DeepMapperSetupBase public override void Initialise() => _mapper = Mapper.CreateNew(); - protected override void SetupDeepMapper() - => _mapper.GetPlanFor().ToANew(); + protected override CustomerDto SetupDeepMapper(Customer customer) + { + _mapper.GetPlanFor().ToANew(); + + return _mapper.Map(customer).ToANew(); + } protected override void Reset() => _mapper.Dispose(); } diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperEntityMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperEntityMapperSetup.cs index 4c437988a..8e2388da0 100644 --- a/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperEntityMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperEntityMapperSetup.cs @@ -9,8 +9,12 @@ public class AgileMapperEntityMapperSetup : EntityMapperSetupBase public override void Initialise() => _mapper = Mapper.CreateNew(); - protected override void SetupEntityMapper() - => _mapper.GetPlanFor().ToANew(); + protected override Warehouse SetupEntityMapper(Warehouse warehouse) + { + _mapper.GetPlanFor().ToANew(); + + return _mapper.Map(warehouse).ToANew(); + } protected override void Reset() => _mapper.Dispose(); } diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapperSetup.cs index dd85e59fb..4ff01d5ce 100644 --- a/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AgileMapper/AgileMapperUnflatteningMapperSetup.cs @@ -9,8 +9,12 @@ public class AgileMapperUnflatteningMapperSetup : UnflatteningMapperSetupBase public override void Initialise() => _mapper = Mapper.CreateNew(); - protected override void SetupUnflatteningMapper() - => _mapper.GetPlanFor().ToANew(); + protected override ModelObject SetupUnflatteningMapper(ModelDto dto) + { + _mapper.GetPlanFor().ToANew(); + + return _mapper.Map(dto).ToANew(); + } protected override void Reset() => _mapper.Dispose(); } diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapperSetup.cs index 77ee8301d..106a54620 100644 --- a/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperComplexTypeMapperSetup.cs @@ -10,11 +10,11 @@ public override void Initialise() { } - protected override void SetupComplexTypeMapper() + protected override Foo SetupComplexTypeMapper(Foo foo) { Mapper.Initialize(cfg => cfg.CreateMap()); - Mapper.Map(new Foo()); + return Mapper.Map(foo); } protected override void Reset() => Mapper.Reset(); diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperDeepMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperDeepMapperSetup.cs index 22dc84c20..14e7e4232 100644 --- a/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperDeepMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperDeepMapperSetup.cs @@ -10,7 +10,7 @@ public override void Initialise() { } - protected override void SetupDeepMapper() + protected override CustomerDto SetupDeepMapper(Customer customer) { Mapper.Initialize(cfg => { @@ -19,7 +19,7 @@ protected override void SetupDeepMapper() cfg.CreateMap(); }); - Mapper.Map(new Customer()); + return Mapper.Map(customer); } protected override void Reset() => Mapper.Reset(); diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs index c022136db..3c73c5341 100644 --- a/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperEntityMapperSetup.cs @@ -1,39 +1,41 @@ namespace AgileObjects.AgileMapper.PerformanceTesting.ConcreteMappers.AutoMapper { - using AbstractMappers; - using global::AutoMapper; - using static TestClasses.Entities; + // Mapper.Map(warehouse); throws a StackOverflow exception - public class AutoMapperEntityMapperSetup : EntityMapperSetupBase - { - public override void Initialise() - { - } + //using AbstractMappers; + //using global::AutoMapper; + //using static TestClasses.Entities; - protected override void SetupEntityMapper() - { - Mapper.Initialize(cfg => - { - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - }); + //public class AutoMapperEntityMapperSetup : EntityMapperSetupBase + //{ + // public override void Initialise() + // { + // } - Mapper.Map(new Warehouse()); - } + // protected override Warehouse SetupEntityMapper(Warehouse warehouse) + // { + // Mapper.Initialize(cfg => + // { + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // cfg.CreateMap(); + // }); - protected override void Reset() => Mapper.Reset(); - } + // return Mapper.Map(warehouse); + // } + + // protected override void Reset() => Mapper.Reset(); + //} } diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapperSetup.cs index 427a37063..815dbc1c8 100644 --- a/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/AutoMapper/AutoMapperUnflatteningMapperSetup.cs @@ -10,11 +10,11 @@ public override void Initialise() { } - protected override void SetupUnflatteningMapper() + protected override ModelObject SetupUnflatteningMapper(ModelDto dto) { Mapper.Initialize(cfg => cfg.CreateMap().ReverseMap()); - Mapper.Map(new ModelDto()); + return Mapper.Map(dto); } protected override void Reset() => Mapper.Reset(); diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterComplexTypeMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterComplexTypeMapperSetup.cs index 9309c38b8..421794d48 100644 --- a/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterComplexTypeMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterComplexTypeMapperSetup.cs @@ -12,7 +12,7 @@ public override void Initialise() { } - protected override void SetupComplexTypeMapper() + protected override Foo SetupComplexTypeMapper(Foo foo) { TypeAdapterConfig.NewConfig() .Map(dest => dest.Foos, src => src.Foos ?? new List()) @@ -21,7 +21,7 @@ protected override void SetupComplexTypeMapper() .Map(dest => dest.IntArray, src => src.IntArray ?? new int[0]) .Compile(); - new Foo().Adapt(); + return foo.Adapt(); } protected override void Reset() diff --git a/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterDeepMapperSetup.cs b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterDeepMapperSetup.cs index 5910f9a62..e03a04a4c 100644 --- a/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterDeepMapperSetup.cs +++ b/AgileMapper.PerformanceTesting/ConcreteMappers/Mapster/MapsterDeepMapperSetup.cs @@ -11,14 +11,14 @@ public override void Initialise() { } - protected override void SetupDeepMapper() + protected override CustomerDto SetupDeepMapper(Customer customer) { TypeAdapterConfig.NewConfig() .Map(dest => dest.Addresses, src => src.Addresses ?? new List
()) .Map(dest => dest.AddressesArray, src => src.AddressesArray ?? new Address[0]) .Compile(); - new Customer().Adapt(); + return customer.Adapt(); } protected override void Reset() diff --git a/AgileMapper.PerformanceTesting/PerformanceTestRunner.cs b/AgileMapper.PerformanceTesting/PerformanceTestRunner.cs index 9b88a5d55..506375593 100644 --- a/AgileMapper.PerformanceTesting/PerformanceTestRunner.cs +++ b/AgileMapper.PerformanceTesting/PerformanceTestRunner.cs @@ -95,6 +95,7 @@ public void Run(string[] args) .Filter(testId => testsToRun.Contains(testId)) .Project(testId => mapperTestsByType[testId] .Filter(d => mappersToTest.Contains(d.MapperId)) + .OrderBy(d => d.MapperId) .Project(d => d.Test) .ToArray()) .ToArray();