From bde11c37acc24a56e1656008c523355f87296880 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 16 Oct 2023 15:28:17 +0800 Subject: [PATCH] Abstract all db-related unit tests in module template. --- .../MyProjectNameApplicationTestBase.cs | 7 +++++-- .../Samples/SampleAppServiceTests.cs | 2 +- .../MyProjectNameDomainTestBase.cs | 8 ++++++-- .../Samples/SampleDomainTests.cs | 3 +-- .../MyProjectNameApplicationTestBase.cs | 7 +++++-- .../Samples/SampleAppService_Tests.cs | 6 ++++-- .../MyCompanyName.MyProjectName.Domain.Tests.csproj | 7 ++++++- .../MyProjectNameDomainTestBase.cs | 7 +++++-- .../MyProjectNameDomainTestModule.cs | 12 ++++-------- .../Samples/SampleManager_Tests.cs | 4 +++- .../Applications/EfCoreSampleAppService_Tests.cs | 9 +++++++++ .../Domains/EfCoreSampleDomain_Tests.cs | 9 +++++++++ .../MyProjectNameEntityFrameworkCoreTestModule.cs | 4 ++-- ...me.MyProjectName.EntityFrameworkCore.Tests.csproj | 3 ++- .../Applications/MongoDBSampleAppService_Tests.cs | 11 +++++++++++ .../MongoDB/Domains/MongoDBSampleDomain_Tests.cs | 10 ++++++++++ .../MongoDB/MyProjectNameMongoDbTestModule.cs | 4 ++-- .../MyCompanyName.MyProjectName.MongoDB.Tests.csproj | 2 +- .../MyCompanyName.MyProjectName.TestBase.csproj | 2 +- .../MyProjectNameTestBaseModule.cs | 5 +++-- 20 files changed, 90 insertions(+), 32 deletions(-) create mode 100644 templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Applications/EfCoreSampleAppService_Tests.cs create mode 100644 templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Domains/EfCoreSampleDomain_Tests.cs create mode 100644 templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/Applications/MongoDBSampleAppService_Tests.cs create mode 100644 templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/Domains/MongoDBSampleDomain_Tests.cs diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyProjectNameApplicationTestBase.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyProjectNameApplicationTestBase.cs index 26a144d3a8..4bae1a4b22 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyProjectNameApplicationTestBase.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyProjectNameApplicationTestBase.cs @@ -1,6 +1,9 @@ -namespace MyCompanyName.MyProjectName; +using Volo.Abp.Modularity; -public abstract class MyProjectNameApplicationTestBase : MyProjectNameTestBase +namespace MyCompanyName.MyProjectName; + +public abstract class MyProjectNameApplicationTestBase : MyProjectNameTestBase + where TStartupModule : IAbpModule { } diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppServiceTests.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppServiceTests.cs index c4baf0d4f3..efa9ed777e 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppServiceTests.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppServiceTests.cs @@ -11,7 +11,7 @@ namespace MyCompanyName.MyProjectName.Samples; * (like IIdentityUserAppService here). * Only test your own application services. */ -public abstract class SampleAppServiceTests : MyProjectNameTestBase +public abstract class SampleAppServiceTests : MyProjectNameApplicationTestBase where TStartupModule : IAbpModule { private readonly IIdentityUserAppService _userAppService; diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestBase.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestBase.cs index 87a426d039..99059a9628 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestBase.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestBase.cs @@ -1,6 +1,10 @@ -namespace MyCompanyName.MyProjectName; +using Volo.Abp.Modularity; -public abstract class MyProjectNameDomainTestBase : MyProjectNameTestBase +namespace MyCompanyName.MyProjectName; + +/* Inherit from this class for your domain layer tests. */ +public abstract class MyProjectNameDomainTestBase : MyProjectNameTestBase + where TStartupModule : IAbpModule { } diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/Samples/SampleDomainTests.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/Samples/SampleDomainTests.cs index cf411cf411..ecdb170842 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/Samples/SampleDomainTests.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/Samples/SampleDomainTests.cs @@ -11,8 +11,7 @@ namespace MyCompanyName.MyProjectName.Samples; * (like IdentityUserManager here). * Only test your own domain services. */ -[Collection(MyProjectNameTestConsts.CollectionDefinitionName)] -public abstract class SampleDomainTests : MyProjectNameTestBase +public abstract class SampleDomainTests : MyProjectNameDomainTestBase where TStartupModule : IAbpModule { private readonly IIdentityUserRepository _identityUserRepository; diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyProjectNameApplicationTestBase.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyProjectNameApplicationTestBase.cs index 94f5f13609..c58486600f 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyProjectNameApplicationTestBase.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyProjectNameApplicationTestBase.cs @@ -1,9 +1,12 @@ -namespace MyCompanyName.MyProjectName; +using Volo.Abp.Modularity; + +namespace MyCompanyName.MyProjectName; /* Inherit from this class for your application layer tests. * See SampleAppService_Tests for example. */ -public abstract class MyProjectNameApplicationTestBase : MyProjectNameTestBase +public abstract class MyProjectNameApplicationTestBase : MyProjectNameTestBase + where TStartupModule : IAbpModule { } diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppService_Tests.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppService_Tests.cs index b8b7422710..8e8a3fd898 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppService_Tests.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppService_Tests.cs @@ -1,14 +1,16 @@ using System.Threading.Tasks; using Shouldly; +using Volo.Abp.Modularity; using Xunit; namespace MyCompanyName.MyProjectName.Samples; -public class SampleAppService_Tests : MyProjectNameApplicationTestBase +public abstract class SampleAppService_Tests : MyProjectNameApplicationTestBase + where TStartupModule : IAbpModule { private readonly ISampleAppService _sampleAppService; - public SampleAppService_Tests() + protected SampleAppService_Tests() { _sampleAppService = GetRequiredService(); } diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj index 35e03b03e1..4d2fb016c5 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj @@ -10,7 +10,12 @@ - + + + + + + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestBase.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestBase.cs index b0a1dadb5c..4902fdc7ae 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestBase.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestBase.cs @@ -1,9 +1,12 @@ -namespace MyCompanyName.MyProjectName; +using Volo.Abp.Modularity; + +namespace MyCompanyName.MyProjectName; /* Inherit from this class for your domain layer tests. * See SampleManager_Tests for example. */ -public abstract class MyProjectNameDomainTestBase : MyProjectNameTestBase +public abstract class MyProjectNameDomainTestBase : MyProjectNameTestBase + where TStartupModule : IAbpModule { } diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestModule.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestModule.cs index a4be6d894b..695903e189 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestModule.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestModule.cs @@ -1,15 +1,11 @@ -using MyCompanyName.MyProjectName.EntityFrameworkCore; -using Volo.Abp.Modularity; +using Volo.Abp.Modularity; namespace MyCompanyName.MyProjectName; -/* Domain tests are configured to use the EF Core provider. - * You can switch to MongoDB, however your domain tests should be - * database independent anyway. - */ [DependsOn( - typeof(MyProjectNameEntityFrameworkCoreTestModule) - )] + typeof(MyProjectNameDomainModule), + typeof(MyProjectNameTestBaseModule) +)] public class MyProjectNameDomainTestModule : AbpModule { diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/Samples/SampleManager_Tests.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/Samples/SampleManager_Tests.cs index d9c35ff3f9..9c0a416f96 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/Samples/SampleManager_Tests.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/Samples/SampleManager_Tests.cs @@ -1,9 +1,11 @@ using System.Threading.Tasks; +using Volo.Abp.Modularity; using Xunit; namespace MyCompanyName.MyProjectName.Samples; -public class SampleManager_Tests : MyProjectNameDomainTestBase +public abstract class SampleManager_Tests : MyProjectNameDomainTestBase + where TStartupModule : IAbpModule { //private readonly SampleManager _sampleManager; diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Applications/EfCoreSampleAppService_Tests.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Applications/EfCoreSampleAppService_Tests.cs new file mode 100644 index 0000000000..140ceb0ce0 --- /dev/null +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Applications/EfCoreSampleAppService_Tests.cs @@ -0,0 +1,9 @@ +using MyCompanyName.MyProjectName.Samples; +using Xunit; + +namespace MyCompanyName.MyProjectName.EntityFrameworkCore.Applications; + +public class EfCoreSampleAppService_Tests : SampleAppService_Tests +{ + +} diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Domains/EfCoreSampleDomain_Tests.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Domains/EfCoreSampleDomain_Tests.cs new file mode 100644 index 0000000000..0d353bbdaf --- /dev/null +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Domains/EfCoreSampleDomain_Tests.cs @@ -0,0 +1,9 @@ +using MyCompanyName.MyProjectName.Samples; +using Xunit; + +namespace MyCompanyName.MyProjectName.EntityFrameworkCore.Domains; + +public class EfCoreSampleDomain_Tests : SampleManager_Tests +{ + +} diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs index 635310bb2f..7abdfb25f8 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs @@ -10,10 +10,10 @@ using Volo.Abp.Uow; namespace MyCompanyName.MyProjectName.EntityFrameworkCore; [DependsOn( - typeof(MyProjectNameTestBaseModule), + typeof(MyProjectNameApplicationTestModule), typeof(MyProjectNameEntityFrameworkCoreModule), typeof(AbpEntityFrameworkCoreSqliteModule) - )] +)] public class MyProjectNameEntityFrameworkCoreTestModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj index e292e1606b..3d10c91a58 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj @@ -12,8 +12,9 @@ - + + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/Applications/MongoDBSampleAppService_Tests.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/Applications/MongoDBSampleAppService_Tests.cs new file mode 100644 index 0000000000..c363e29eb3 --- /dev/null +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/Applications/MongoDBSampleAppService_Tests.cs @@ -0,0 +1,11 @@ +using MyCompanyName.MyProjectName.MongoDB; +using MyCompanyName.MyProjectName.Samples; +using Xunit; + +namespace MyCompanyName.MyProjectName.MongoDb.Applications; + +[Collection(MongoTestCollection.Name)] +public class MongoDBSampleAppService_Tests : SampleAppService_Tests +{ + +} diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/Domains/MongoDBSampleDomain_Tests.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/Domains/MongoDBSampleDomain_Tests.cs new file mode 100644 index 0000000000..069bb88fe3 --- /dev/null +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/Domains/MongoDBSampleDomain_Tests.cs @@ -0,0 +1,10 @@ +using MyCompanyName.MyProjectName.Samples; +using Xunit; + +namespace MyCompanyName.MyProjectName.MongoDB.Domains; + +[Collection(MongoTestCollection.Name)] +public class MongoDBSampleDomain_Tests : SampleManager_Tests +{ + +} diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs index c0e58deceb..59a3a8957c 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs @@ -6,9 +6,9 @@ using Volo.Abp.Uow; namespace MyCompanyName.MyProjectName.MongoDB; [DependsOn( - typeof(MyProjectNameTestBaseModule), + typeof(MyProjectNameApplicationTestModule), typeof(MyProjectNameMongoDbModule) - )] +)] public class MyProjectNameMongoDbTestModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj index 1002c973c0..1e4104d8bf 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj @@ -15,7 +15,7 @@ - + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj index a5f50566ed..b28d658c1b 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj @@ -21,8 +21,8 @@ + - diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyProjectNameTestBaseModule.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyProjectNameTestBaseModule.cs index dcfdbfbe2c..2d054f822c 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyProjectNameTestBaseModule.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyProjectNameTestBaseModule.cs @@ -3,6 +3,7 @@ using Volo.Abp; using Volo.Abp.Authorization; using Volo.Abp.Autofac; using Volo.Abp.Data; +using Volo.Abp.Guids; using Volo.Abp.Modularity; using Volo.Abp.Threading; @@ -12,8 +13,8 @@ namespace MyCompanyName.MyProjectName; typeof(AbpAutofacModule), typeof(AbpTestBaseModule), typeof(AbpAuthorizationModule), - typeof(MyProjectNameDomainModule) - )] + typeof(AbpGuidsModule) +)] public class MyProjectNameTestBaseModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context)