diff --git a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/App/AppModule.cs b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/App/AppModule.cs index 76556eda78..93543c3025 100644 --- a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/App/AppModule.cs +++ b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/App/AppModule.cs @@ -18,9 +18,9 @@ namespace Volo.Abp.AspNetCore.App { public override void ConfigureServices(ServiceConfigurationContext context) { - Configure(options => + Configure(options => { - options.AddDomainTenantResolver("{0}.abp.io"); + options.IsEnabled = true; }); } diff --git a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/MultiTenancy/AspNetCoreMultiTenancy_WithDomainResolver_Tests.cs b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/MultiTenancy/AspNetCoreMultiTenancy_WithDomainResolver_Tests.cs new file mode 100644 index 0000000000..c107444ba1 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/MultiTenancy/AspNetCoreMultiTenancy_WithDomainResolver_Tests.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; +using Shouldly; +using Volo.Abp.MultiTenancy; +using Volo.Abp.MultiTenancy.ConfigurationStore; +using Xunit; + +namespace Volo.Abp.AspNetCore.MultiTenancy +{ + public class AspNetCoreMultiTenancy_WithDomainResolver_Tests : AspNetCoreMultiTenancyTestBase + { + private readonly Guid _testTenantId = Guid.NewGuid(); + private readonly string _testTenantName = "acme"; + + private readonly AspNetCoreMultiTenancyOptions _options; + + public AspNetCoreMultiTenancy_WithDomainResolver_Tests() + { + _options = ServiceProvider.GetRequiredService>().Value; + } + + protected override IWebHostBuilder CreateWebHostBuilder() + { + return base.CreateWebHostBuilder().ConfigureServices(services => + { + services.Configure(options => + { + options.Tenants = new[] + { + new TenantConfiguration(_testTenantId, _testTenantName) + }; + }); + + services.Configure(options => + { + options.AddDomainTenantResolver("{0}.abp.io"); + }); + }); + } + + [Fact] + public async Task Should_Use_Host_If_Tenant_Is_Not_Specified() + { + var result = await GetResponseAsObjectAsync>("http://abp.io"); + result["TenantId"].ShouldBe(""); + } + + [Fact] + public async Task Should_Use_Domain_If_Specified() + { + var result = await GetResponseAsObjectAsync>("http://acme.abp.io"); + result["TenantId"].ShouldBe(_testTenantId.ToString()); + } + + [Fact] + public async Task Should_Use_Domain_As_First_Priority_If_Specified() + { + Client.DefaultRequestHeaders.Add(_options.TenantKey, Guid.NewGuid().ToString()); + + var result = await GetResponseAsObjectAsync>("http://acme.abp.io"); + result["TenantId"].ShouldBe(_testTenantId.ToString()); + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/MultiTenancy/AspNetCoreMultiTenancy_Tests.cs b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/MultiTenancy/AspNetCoreMultiTenancy_Without_DomainResolver_Tests.cs similarity index 76% rename from framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/MultiTenancy/AspNetCoreMultiTenancy_Tests.cs rename to framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/MultiTenancy/AspNetCoreMultiTenancy_Without_DomainResolver_Tests.cs index 9dd846ddc8..98a7e92ef1 100644 --- a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/MultiTenancy/AspNetCoreMultiTenancy_Tests.cs +++ b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo/Abp/AspNetCore/MultiTenancy/AspNetCoreMultiTenancy_Without_DomainResolver_Tests.cs @@ -12,14 +12,14 @@ using Xunit; namespace Volo.Abp.AspNetCore.MultiTenancy { - public class AspNetCoreMultiTenancy_Tests : AspNetCoreMultiTenancyTestBase + public class AspNetCoreMultiTenancy_Without_DomainResolver_Tests : AspNetCoreMultiTenancyTestBase { private readonly Guid _testTenantId = Guid.NewGuid(); private readonly string _testTenantName = "acme"; private readonly AspNetCoreMultiTenancyOptions _options; - public AspNetCoreMultiTenancy_Tests() + public AspNetCoreMultiTenancy_Without_DomainResolver_Tests() { _options = ServiceProvider.GetRequiredService>().Value; } @@ -61,23 +61,7 @@ namespace Volo.Abp.AspNetCore.MultiTenancy var result = await GetResponseAsObjectAsync>("http://abp.io"); result["TenantId"].ShouldBe(_testTenantId.ToString()); } - - [Fact] - public async Task Should_Use_Domain_If_Specified() - { - var result = await GetResponseAsObjectAsync>("http://acme.abp.io"); - result["TenantId"].ShouldBe(_testTenantId.ToString()); - } - - [Fact] - public async Task Should_Use_Domain_As_First_Priority_If_Specified() - { - Client.DefaultRequestHeaders.Add(_options.TenantKey, Guid.NewGuid().ToString()); - - var result = await GetResponseAsObjectAsync>("http://acme.abp.io"); - result["TenantId"].ShouldBe(_testTenantId.ToString()); - } - + [Fact] public async Task Should_Use_Cookie_Tenant_Id_If_Specified() {