Browse Source

Abstract all db-related unit tests in module template.

pull/17880/head
maliming 3 years ago
parent
commit
bde11c37ac
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 7
      templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyProjectNameApplicationTestBase.cs
  2. 2
      templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppServiceTests.cs
  3. 8
      templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestBase.cs
  4. 3
      templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/Samples/SampleDomainTests.cs
  5. 7
      templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyProjectNameApplicationTestBase.cs
  6. 6
      templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppService_Tests.cs
  7. 7
      templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj
  8. 7
      templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestBase.cs
  9. 12
      templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestModule.cs
  10. 4
      templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/Samples/SampleManager_Tests.cs
  11. 9
      templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Applications/EfCoreSampleAppService_Tests.cs
  12. 9
      templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Domains/EfCoreSampleDomain_Tests.cs
  13. 4
      templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs
  14. 3
      templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj
  15. 11
      templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/Applications/MongoDBSampleAppService_Tests.cs
  16. 10
      templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/Domains/MongoDBSampleDomain_Tests.cs
  17. 4
      templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs
  18. 2
      templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj
  19. 2
      templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj
  20. 5
      templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyProjectNameTestBaseModule.cs

7
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<MyProjectNameApplicationTestModule> namespace MyCompanyName.MyProjectName;
public abstract class MyProjectNameApplicationTestBase<TStartupModule> : MyProjectNameTestBase<TStartupModule>
where TStartupModule : IAbpModule
{ {
} }

2
templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppServiceTests.cs

@ -11,7 +11,7 @@ namespace MyCompanyName.MyProjectName.Samples;
* (like IIdentityUserAppService here). * (like IIdentityUserAppService here).
* Only test your own application services. * Only test your own application services.
*/ */
public abstract class SampleAppServiceTests<TStartupModule> : MyProjectNameTestBase<TStartupModule> public abstract class SampleAppServiceTests<TStartupModule> : MyProjectNameApplicationTestBase<TStartupModule>
where TStartupModule : IAbpModule where TStartupModule : IAbpModule
{ {
private readonly IIdentityUserAppService _userAppService; private readonly IIdentityUserAppService _userAppService;

8
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<MyProjectNameDomainTestModule> namespace MyCompanyName.MyProjectName;
/* Inherit from this class for your domain layer tests. */
public abstract class MyProjectNameDomainTestBase<TStartupModule> : MyProjectNameTestBase<TStartupModule>
where TStartupModule : IAbpModule
{ {
} }

3
templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/Samples/SampleDomainTests.cs

@ -11,8 +11,7 @@ namespace MyCompanyName.MyProjectName.Samples;
* (like IdentityUserManager here). * (like IdentityUserManager here).
* Only test your own domain services. * Only test your own domain services.
*/ */
[Collection(MyProjectNameTestConsts.CollectionDefinitionName)] public abstract class SampleDomainTests<TStartupModule> : MyProjectNameDomainTestBase<TStartupModule>
public abstract class SampleDomainTests<TStartupModule> : MyProjectNameTestBase<TStartupModule>
where TStartupModule : IAbpModule where TStartupModule : IAbpModule
{ {
private readonly IIdentityUserRepository _identityUserRepository; private readonly IIdentityUserRepository _identityUserRepository;

7
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. /* Inherit from this class for your application layer tests.
* See SampleAppService_Tests for example. * See SampleAppService_Tests for example.
*/ */
public abstract class MyProjectNameApplicationTestBase : MyProjectNameTestBase<MyProjectNameApplicationTestModule> public abstract class MyProjectNameApplicationTestBase<TStartupModule> : MyProjectNameTestBase<TStartupModule>
where TStartupModule : IAbpModule
{ {
} }

6
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppService_Tests.cs

@ -1,14 +1,16 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Shouldly; using Shouldly;
using Volo.Abp.Modularity;
using Xunit; using Xunit;
namespace MyCompanyName.MyProjectName.Samples; namespace MyCompanyName.MyProjectName.Samples;
public class SampleAppService_Tests : MyProjectNameApplicationTestBase public abstract class SampleAppService_Tests<TStartupModule> : MyProjectNameApplicationTestBase<TStartupModule>
where TStartupModule : IAbpModule
{ {
private readonly ISampleAppService _sampleAppService; private readonly ISampleAppService _sampleAppService;
public SampleAppService_Tests() protected SampleAppService_Tests()
{ {
_sampleAppService = GetRequiredService<ISampleAppService>(); _sampleAppService = GetRequiredService<ISampleAppService>();
} }

7
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj

@ -10,7 +10,12 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
<ProjectReference Include="..\MyCompanyName.MyProjectName.EntityFrameworkCore.Tests\MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\MyCompanyName.MyProjectName.Domain\MyCompanyName.MyProjectName.Domain.csproj" />
<ProjectReference Include="..\MyCompanyName.MyProjectName.TestBase\MyCompanyName.MyProjectName.TestBase.csproj" />
</ItemGroup>
</Project> </Project>

7
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. /* Inherit from this class for your domain layer tests.
* See SampleManager_Tests for example. * See SampleManager_Tests for example.
*/ */
public abstract class MyProjectNameDomainTestBase : MyProjectNameTestBase<MyProjectNameDomainTestModule> public abstract class MyProjectNameDomainTestBase<TStartupModule> : MyProjectNameTestBase<TStartupModule>
where TStartupModule : IAbpModule
{ {
} }

12
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; 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( [DependsOn(
typeof(MyProjectNameEntityFrameworkCoreTestModule) typeof(MyProjectNameDomainModule),
)] typeof(MyProjectNameTestBaseModule)
)]
public class MyProjectNameDomainTestModule : AbpModule public class MyProjectNameDomainTestModule : AbpModule
{ {

4
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/Samples/SampleManager_Tests.cs

@ -1,9 +1,11 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Modularity;
using Xunit; using Xunit;
namespace MyCompanyName.MyProjectName.Samples; namespace MyCompanyName.MyProjectName.Samples;
public class SampleManager_Tests : MyProjectNameDomainTestBase public abstract class SampleManager_Tests<TStartupModule> : MyProjectNameDomainTestBase<TStartupModule>
where TStartupModule : IAbpModule
{ {
//private readonly SampleManager _sampleManager; //private readonly SampleManager _sampleManager;

9
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<MyProjectNameEntityFrameworkCoreTestModule>
{
}

9
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<MyProjectNameEntityFrameworkCoreTestModule>
{
}

4
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreTestModule.cs

@ -10,10 +10,10 @@ using Volo.Abp.Uow;
namespace MyCompanyName.MyProjectName.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.EntityFrameworkCore;
[DependsOn( [DependsOn(
typeof(MyProjectNameTestBaseModule), typeof(MyProjectNameApplicationTestModule),
typeof(MyProjectNameEntityFrameworkCoreModule), typeof(MyProjectNameEntityFrameworkCoreModule),
typeof(AbpEntityFrameworkCoreSqliteModule) typeof(AbpEntityFrameworkCoreSqliteModule)
)] )]
public class MyProjectNameEntityFrameworkCoreTestModule : AbpModule public class MyProjectNameEntityFrameworkCoreTestModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)

3
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj

@ -12,8 +12,9 @@
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="8.0.0-rc.2.*" />
<ProjectReference Include="..\..\src\MyCompanyName.MyProjectName.EntityFrameworkCore\MyCompanyName.MyProjectName.EntityFrameworkCore.csproj" /> <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" /> <ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.EntityFrameworkCore.Sqlite\Volo.Abp.EntityFrameworkCore.Sqlite.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

11
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<MyProjectNameMongoDbTestModule>
{
}

10
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<MyProjectNameMongoDbTestModule>
{
}

4
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs

@ -6,9 +6,9 @@ using Volo.Abp.Uow;
namespace MyCompanyName.MyProjectName.MongoDB; namespace MyCompanyName.MyProjectName.MongoDB;
[DependsOn( [DependsOn(
typeof(MyProjectNameTestBaseModule), typeof(MyProjectNameApplicationTestModule),
typeof(MyProjectNameMongoDbModule) typeof(MyProjectNameMongoDbModule)
)] )]
public class MyProjectNameMongoDbTestModule : AbpModule public class MyProjectNameMongoDbTestModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)

2
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj

@ -15,7 +15,7 @@
<PackageReference Include="EphemeralMongo6.runtime.osx-x64" Version="1.1.3" Condition="$([MSBuild]::IsOSPlatform('OSX'))" /> <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'))" /> <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="..\..\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> </ItemGroup>
</Project> </Project>

2
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj

@ -21,8 +21,8 @@
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.1" /> <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.Autofac\Volo.Abp.Autofac.csproj" />
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Authorization\Volo.Abp.Authorization.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="..\..\..\..\..\framework\src\Volo.Abp.TestBase\Volo.Abp.TestBase.csproj" />
<ProjectReference Include="..\..\src\MyCompanyName.MyProjectName.Domain\MyCompanyName.MyProjectName.Domain.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

5
templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyProjectNameTestBaseModule.cs

@ -3,6 +3,7 @@ using Volo.Abp;
using Volo.Abp.Authorization; using Volo.Abp.Authorization;
using Volo.Abp.Autofac; using Volo.Abp.Autofac;
using Volo.Abp.Data; using Volo.Abp.Data;
using Volo.Abp.Guids;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using Volo.Abp.Threading; using Volo.Abp.Threading;
@ -12,8 +13,8 @@ namespace MyCompanyName.MyProjectName;
typeof(AbpAutofacModule), typeof(AbpAutofacModule),
typeof(AbpTestBaseModule), typeof(AbpTestBaseModule),
typeof(AbpAuthorizationModule), typeof(AbpAuthorizationModule),
typeof(MyProjectNameDomainModule) typeof(AbpGuidsModule)
)] )]
public class MyProjectNameTestBaseModule : AbpModule public class MyProjectNameTestBaseModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)

Loading…
Cancel
Save