Browse Source
Abstract all db-related unit tests in module template.
pull/17880/head
maliming
3 years ago
No known key found for this signature in database
GPG Key ID: A646B9CB645ECEA4
20 changed files with
90 additions and
32 deletions
-
templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyProjectNameApplicationTestBase.cs
-
templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppServiceTests.cs
-
templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestBase.cs
-
templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/Samples/SampleDomainTests.cs
-
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyProjectNameApplicationTestBase.cs
-
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppService_Tests.cs
-
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj
-
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestBase.cs
-
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestModule.cs
-
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/Samples/SampleManager_Tests.cs
-
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Applications/EfCoreSampleAppService_Tests.cs
-
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Domains/EfCoreSampleDomain_Tests.cs
-
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs
-
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj
-
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/Applications/MongoDBSampleAppService_Tests.cs
-
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/Domains/MongoDBSampleDomain_Tests.cs
-
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs
-
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj
-
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj
-
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyProjectNameTestBaseModule.cs
|
|
|
@ -1,6 +1,9 @@ |
|
|
|
namespace MyCompanyName.MyProjectName; |
|
|
|
using Volo.Abp.Modularity; |
|
|
|
|
|
|
|
public abstract class MyProjectNameApplicationTestBase : MyProjectNameTestBase<MyProjectNameApplicationTestModule> |
|
|
|
namespace MyCompanyName.MyProjectName; |
|
|
|
|
|
|
|
public abstract class MyProjectNameApplicationTestBase<TStartupModule> : MyProjectNameTestBase<TStartupModule> |
|
|
|
where TStartupModule : IAbpModule |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@ -11,7 +11,7 @@ namespace MyCompanyName.MyProjectName.Samples; |
|
|
|
* (like IIdentityUserAppService here). |
|
|
|
* Only test your own application services. |
|
|
|
*/ |
|
|
|
public abstract class SampleAppServiceTests<TStartupModule> : MyProjectNameTestBase<TStartupModule> |
|
|
|
public abstract class SampleAppServiceTests<TStartupModule> : MyProjectNameApplicationTestBase<TStartupModule> |
|
|
|
where TStartupModule : IAbpModule |
|
|
|
{ |
|
|
|
private readonly IIdentityUserAppService _userAppService; |
|
|
|
|
|
|
|
@ -1,6 +1,10 @@ |
|
|
|
namespace MyCompanyName.MyProjectName; |
|
|
|
using Volo.Abp.Modularity; |
|
|
|
|
|
|
|
public abstract class MyProjectNameDomainTestBase : MyProjectNameTestBase<MyProjectNameDomainTestModule> |
|
|
|
namespace MyCompanyName.MyProjectName; |
|
|
|
|
|
|
|
/* Inherit from this class for your domain layer tests. */ |
|
|
|
public abstract class MyProjectNameDomainTestBase<TStartupModule> : MyProjectNameTestBase<TStartupModule> |
|
|
|
where TStartupModule : IAbpModule |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@ -11,8 +11,7 @@ namespace MyCompanyName.MyProjectName.Samples; |
|
|
|
* (like IdentityUserManager here). |
|
|
|
* Only test your own domain services. |
|
|
|
*/ |
|
|
|
[Collection(MyProjectNameTestConsts.CollectionDefinitionName)] |
|
|
|
public abstract class SampleDomainTests<TStartupModule> : MyProjectNameTestBase<TStartupModule> |
|
|
|
public abstract class SampleDomainTests<TStartupModule> : MyProjectNameDomainTestBase<TStartupModule> |
|
|
|
where TStartupModule : IAbpModule |
|
|
|
{ |
|
|
|
private readonly IIdentityUserRepository _identityUserRepository; |
|
|
|
|
|
|
|
@ -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<MyProjectNameApplicationTestModule> |
|
|
|
public abstract class MyProjectNameApplicationTestBase<TStartupModule> : MyProjectNameTestBase<TStartupModule> |
|
|
|
where TStartupModule : IAbpModule |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@ -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<TStartupModule> : MyProjectNameApplicationTestBase<TStartupModule> |
|
|
|
where TStartupModule : IAbpModule |
|
|
|
{ |
|
|
|
private readonly ISampleAppService _sampleAppService; |
|
|
|
|
|
|
|
public SampleAppService_Tests() |
|
|
|
protected SampleAppService_Tests() |
|
|
|
{ |
|
|
|
_sampleAppService = GetRequiredService<ISampleAppService>(); |
|
|
|
} |
|
|
|
|
|
|
|
@ -10,7 +10,12 @@ |
|
|
|
|
|
|
|
<ItemGroup> |
|
|
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" /> |
|
|
|
<ProjectReference Include="..\MyCompanyName.MyProjectName.EntityFrameworkCore.Tests\MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj" /> |
|
|
|
</ItemGroup> |
|
|
|
|
|
|
|
<ItemGroup> |
|
|
|
<ProjectReference Include="..\..\src\MyCompanyName.MyProjectName.Domain\MyCompanyName.MyProjectName.Domain.csproj" /> |
|
|
|
<ProjectReference Include="..\MyCompanyName.MyProjectName.TestBase\MyCompanyName.MyProjectName.TestBase.csproj" /> |
|
|
|
</ItemGroup> |
|
|
|
|
|
|
|
|
|
|
|
</Project> |
|
|
|
|
|
|
|
@ -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<MyProjectNameDomainTestModule> |
|
|
|
public abstract class MyProjectNameDomainTestBase<TStartupModule> : MyProjectNameTestBase<TStartupModule> |
|
|
|
where TStartupModule : IAbpModule |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@ -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 |
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
@ -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<TStartupModule> : MyProjectNameDomainTestBase<TStartupModule> |
|
|
|
where TStartupModule : IAbpModule |
|
|
|
{ |
|
|
|
//private readonly SampleManager _sampleManager;
|
|
|
|
|
|
|
|
|
|
|
|
@ -0,0 +1,9 @@ |
|
|
|
using MyCompanyName.MyProjectName.Samples; |
|
|
|
using Xunit; |
|
|
|
|
|
|
|
namespace MyCompanyName.MyProjectName.EntityFrameworkCore.Applications; |
|
|
|
|
|
|
|
public class EfCoreSampleAppService_Tests : SampleAppService_Tests<MyProjectNameEntityFrameworkCoreTestModule> |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
@ -0,0 +1,9 @@ |
|
|
|
using MyCompanyName.MyProjectName.Samples; |
|
|
|
using Xunit; |
|
|
|
|
|
|
|
namespace MyCompanyName.MyProjectName.EntityFrameworkCore.Domains; |
|
|
|
|
|
|
|
public class EfCoreSampleDomain_Tests : SampleManager_Tests<MyProjectNameEntityFrameworkCoreTestModule> |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
@ -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) |
|
|
|
|
|
|
|
@ -12,8 +12,9 @@ |
|
|
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" /> |
|
|
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="8.0.0-rc.2.*" /> |
|
|
|
<ProjectReference Include="..\..\src\MyCompanyName.MyProjectName.EntityFrameworkCore\MyCompanyName.MyProjectName.EntityFrameworkCore.csproj" /> |
|
|
|
<ProjectReference Include="..\MyCompanyName.MyProjectName.TestBase\MyCompanyName.MyProjectName.TestBase.csproj" /> |
|
|
|
<ProjectReference Include="..\MyCompanyName.MyProjectName.Application.Tests\MyCompanyName.MyProjectName.Application.Tests.csproj" /> |
|
|
|
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.EntityFrameworkCore.Sqlite\Volo.Abp.EntityFrameworkCore.Sqlite.csproj" /> |
|
|
|
|
|
|
|
</ItemGroup> |
|
|
|
|
|
|
|
</Project> |
|
|
|
|
|
|
|
@ -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<MyProjectNameMongoDbTestModule> |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
@ -0,0 +1,10 @@ |
|
|
|
using MyCompanyName.MyProjectName.Samples; |
|
|
|
using Xunit; |
|
|
|
|
|
|
|
namespace MyCompanyName.MyProjectName.MongoDB.Domains; |
|
|
|
|
|
|
|
[Collection(MongoTestCollection.Name)] |
|
|
|
public class MongoDBSampleDomain_Tests : SampleManager_Tests<MyProjectNameMongoDbTestModule> |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
@ -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) |
|
|
|
|
|
|
|
@ -15,7 +15,7 @@ |
|
|
|
<PackageReference Include="EphemeralMongo6.runtime.osx-x64" Version="1.1.3" Condition="$([MSBuild]::IsOSPlatform('OSX'))" /> |
|
|
|
<PackageReference Include="EphemeralMongo6.runtime.win-x64" Version="1.1.3" Condition="$([MSBuild]::IsOSPlatform('Windows'))" /> |
|
|
|
<ProjectReference Include="..\..\src\MyCompanyName.MyProjectName.MongoDB\MyCompanyName.MyProjectName.MongoDB.csproj" /> |
|
|
|
<ProjectReference Include="..\MyCompanyName.MyProjectName.TestBase\MyCompanyName.MyProjectName.TestBase.csproj" /> |
|
|
|
<ProjectReference Include="..\MyCompanyName.MyProjectName.Application.Tests\MyCompanyName.MyProjectName.Application.Tests.csproj" /> |
|
|
|
</ItemGroup> |
|
|
|
|
|
|
|
</Project> |
|
|
|
|
|
|
|
@ -21,8 +21,8 @@ |
|
|
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.1" /> |
|
|
|
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" /> |
|
|
|
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Authorization\Volo.Abp.Authorization.csproj" /> |
|
|
|
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Guids\Volo.Abp.Guids.csproj" /> |
|
|
|
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.TestBase\Volo.Abp.TestBase.csproj" /> |
|
|
|
<ProjectReference Include="..\..\src\MyCompanyName.MyProjectName.Domain\MyCompanyName.MyProjectName.Domain.csproj" /> |
|
|
|
</ItemGroup> |
|
|
|
|
|
|
|
</Project> |
|
|
|
|
|
|
|
@ -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) |
|
|
|
|