From 79c0e7e3863c4c00cc53b7fbb71caf9f7d53a7db Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 8 Apr 2019 18:51:30 +0800 Subject: [PATCH] Add tenant-management unit tests. --- .../Volo.Abp.TenantManagement.sln | 11 +++- .../Abp/TenantManagement/TenantManager.cs | 1 + ...o.Abp.TenantManagement.Domain.Tests.csproj | 18 ++++++ .../AbpTenantManagementDomainTestBase.cs | 11 ++++ .../AbpTenantManagementDomainTestModule.cs | 15 +++++ .../TenantConnectionString_Tests.cs | 23 ++++++++ .../TenantManagement/TenantManager_Tests.cs | 55 +++++++++++++++++++ .../Abp/TenantManagement/TenantStore_Tests.cs | 39 +++++++++++++ .../Volo/Abp/TenantManagement/Tenant_Tests.cs | 38 +++++++++++++ 9 files changed, 209 insertions(+), 2 deletions(-) create mode 100644 modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo.Abp.TenantManagement.Domain.Tests.csproj create mode 100644 modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/AbpTenantManagementDomainTestBase.cs create mode 100644 modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/AbpTenantManagementDomainTestModule.cs create mode 100644 modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantConnectionString_Tests.cs create mode 100644 modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantManager_Tests.cs create mode 100644 modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantStore_Tests.cs create mode 100644 modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/Tenant_Tests.cs diff --git a/modules/tenant-management/Volo.Abp.TenantManagement.sln b/modules/tenant-management/Volo.Abp.TenantManagement.sln index 82e976220f..99ca26e1f0 100644 --- a/modules/tenant-management/Volo.Abp.TenantManagement.sln +++ b/modules/tenant-management/Volo.Abp.TenantManagement.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27428.1 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.28729.10 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{799CA525-4748-421A-9892-05C68BB2FA13}" EndProject @@ -33,6 +33,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.TenantManagement.M EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.TenantManagement.TestBase", "test\Volo.Abp.TenantManagement.TestBase\Volo.Abp.TenantManagement.TestBase.csproj", "{C3BAD6E8-00CD-4283-9416-64287BB5B265}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.TenantManagement.Domain.Tests", "test\Volo.Abp.TenantManagement.Domain.Tests\Volo.Abp.TenantManagement.Domain.Tests.csproj", "{F7219BE2-4588-489C-9D31-647C59694C03}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -91,6 +93,10 @@ Global {C3BAD6E8-00CD-4283-9416-64287BB5B265}.Debug|Any CPU.Build.0 = Debug|Any CPU {C3BAD6E8-00CD-4283-9416-64287BB5B265}.Release|Any CPU.ActiveCfg = Release|Any CPU {C3BAD6E8-00CD-4283-9416-64287BB5B265}.Release|Any CPU.Build.0 = Release|Any CPU + {F7219BE2-4588-489C-9D31-647C59694C03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F7219BE2-4588-489C-9D31-647C59694C03}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F7219BE2-4588-489C-9D31-647C59694C03}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F7219BE2-4588-489C-9D31-647C59694C03}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -109,6 +115,7 @@ Global {ED95242E-3C31-4A89-9C62-93B306EFEB15} = {799CA525-4748-421A-9892-05C68BB2FA13} {F75B4C54-A5F1-4101-99F5-A5B868A5146B} = {C6941869-A9FC-4BEA-AD3F-C1E104826ECA} {C3BAD6E8-00CD-4283-9416-64287BB5B265} = {C6941869-A9FC-4BEA-AD3F-C1E104826ECA} + {F7219BE2-4588-489C-9D31-647C59694C03} = {C6941869-A9FC-4BEA-AD3F-C1E104826ECA} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {7C258726-2CE0-44D3-A2D7-71812E8F505C} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantManager.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantManager.cs index b410632502..79d7cf891e 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantManager.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantManager.cs @@ -12,6 +12,7 @@ namespace Volo.Abp.TenantManagement public TenantManager(ITenantRepository tenantRepository) { _tenantRepository = tenantRepository; + } public async Task CreateAsync(string name) diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo.Abp.TenantManagement.Domain.Tests.csproj b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo.Abp.TenantManagement.Domain.Tests.csproj new file mode 100644 index 0000000000..8814eeca18 --- /dev/null +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo.Abp.TenantManagement.Domain.Tests.csproj @@ -0,0 +1,18 @@ + + + + netcoreapp2.2 + + false + + + + + + + + + + + + diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/AbpTenantManagementDomainTestBase.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/AbpTenantManagementDomainTestBase.cs new file mode 100644 index 0000000000..2a50504941 --- /dev/null +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/AbpTenantManagementDomainTestBase.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Volo.Abp.TenantManagement +{ + public class AbpTenantManagementDomainTestBase : TenantManagementTestBase + { + + } +} diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/AbpTenantManagementDomainTestModule.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/AbpTenantManagementDomainTestModule.cs new file mode 100644 index 0000000000..74167c62ec --- /dev/null +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/AbpTenantManagementDomainTestModule.cs @@ -0,0 +1,15 @@ +using System; +using Volo.Abp.Modularity; +using Volo.Abp.TenantManagement.EntityFrameworkCore; +using Xunit; + +namespace Volo.Abp.TenantManagement +{ + [DependsOn( + typeof(AbpTenantManagementEntityFrameworkCoreTestModule), + typeof(AbpTenantManagementTestBaseModule))] + public class AbpSettingManagementDomainTestModule : AbpModule + { + + } +} diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantConnectionString_Tests.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantConnectionString_Tests.cs new file mode 100644 index 0000000000..7e7d70d0f4 --- /dev/null +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantConnectionString_Tests.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using Shouldly; +using Xunit; + +namespace Volo.Abp.TenantManagement +{ + public class TenantConnectionString_Tests + { + [Theory] + [InlineData("aaa")] + [InlineData("bbb")] + public async Task SetValue(string value) + { + var tenantConnectionString = + new TenantConnectionString(Guid.NewGuid(), "MyConnString", "MyConnString-Value"); + tenantConnectionString.SetValue(value); + tenantConnectionString.Value.ShouldBe(value); + } + } +} diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantManager_Tests.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantManager_Tests.cs new file mode 100644 index 0000000000..2c6b4c6f89 --- /dev/null +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantManager_Tests.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using Shouldly; +using Xunit; + +namespace Volo.Abp.TenantManagement +{ + public class TenantManager_Tests : AbpTenantManagementDomainTestBase + { + private readonly ITenantManager _tenantManager; + private readonly ITenantRepository _tenantRepository; + + public TenantManager_Tests() + { + _tenantManager = GetRequiredService(); + _tenantRepository = GetRequiredService(); + } + + + [Fact] + public async Task CreateAsync() + { + var tenant = await _tenantManager.CreateAsync("Test"); + tenant.Name.ShouldBe("Test"); + } + + [Fact] + public async Task Create_Tenant_Name_Can_Not_Duplicate() + { + await Assert.ThrowsAsync(async () => await _tenantManager.CreateAsync("volosoft")); + } + + [Fact] + public async Task ChangeNameAsync() + { + var tenant = await _tenantRepository.FindByNameAsync("volosoft"); + tenant.ShouldNotBeNull(); + + await _tenantManager.ChangeNameAsync(tenant, "newVolosoft"); + + tenant.Name.ShouldBe("newVolosoft"); + } + + [Fact] + public async Task ChangeName_Tenant_Name_Can_Not_Duplicate() + { + var tenant = await _tenantRepository.FindByNameAsync("acme"); + tenant.ShouldNotBeNull(); + + await Assert.ThrowsAsync(async () => await _tenantManager.ChangeNameAsync(tenant, "volosoft")); + } + } +} diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantStore_Tests.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantStore_Tests.cs new file mode 100644 index 0000000000..89345b62ff --- /dev/null +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantStore_Tests.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using Shouldly; +using Volo.Abp.MultiTenancy; +using Xunit; + +namespace Volo.Abp.TenantManagement +{ + public class TenantStore_Tests : AbpTenantManagementDomainTestBase + { + private readonly ITenantStore _tenantStore; + private readonly ITenantRepository _tenantRepository; + + public TenantStore_Tests() + { + _tenantStore = GetRequiredService(); + _tenantRepository = GetRequiredService(); + } + + [Fact] + public async Task FindAsyncByName() + { + var acme = await _tenantStore.FindAsync("acme"); + acme.ShouldNotBeNull(); + acme.Name.ShouldBe("acme"); + } + + [Fact] + public async Task FindAsyncById() + { + var acme = await _tenantRepository.FindByNameAsync("acme"); + acme.ShouldNotBeNull(); + + (await _tenantStore.FindAsync(acme.Id)).ShouldNotBeNull(); + } + } +} diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/Tenant_Tests.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/Tenant_Tests.cs new file mode 100644 index 0000000000..71cf42c83c --- /dev/null +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/Tenant_Tests.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using Shouldly; +using Xunit; + +namespace Volo.Abp.TenantManagement +{ + public class Tenant_Tests : AbpTenantManagementDomainTestBase + { + private readonly ITenantRepository _tenantRepository; + + public Tenant_Tests() + { + _tenantRepository = GetRequiredService(); + } + + [Fact] + public async Task FindDefaultConnectionString() + { + var acme = await _tenantRepository.FindByNameAsync("acme"); + + acme.ShouldNotBeNull(); + acme.FindDefaultConnectionString().ShouldBe("DefaultConnString-Value"); + } + + [Fact] + public async Task FindConnectionString() + { + var acme = await _tenantRepository.FindByNameAsync("acme"); + + acme.ShouldNotBeNull(); + acme.FindConnectionString(Data.ConnectionStrings.DefaultConnectionStringName).ShouldBe("DefaultConnString-Value"); + acme.FindConnectionString("MyConnString").ShouldBe("MyConnString-Value"); + } + } +}