From 383ed32017e3555db6801e4f704720cd5bbe8eec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 15 Dec 2016 20:47:34 +0300 Subject: [PATCH] Added AsyncLocalAmbientTenantScopeProvider_Tests. --- .../AsyncLocalAmbientTenantScopeProvider.cs | 2 +- .../IAmbientTenantScopeProvider.cs | 2 +- .../Abp/MultiTenancy/MultiTenancyManager.cs | 2 +- ...ncLocalAmbientTenantScopeProvider_Tests.cs | 37 +++++++++++++++++++ 4 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 test/Volo.Abp.MultiTenancy.Tests/Volo/Abp/MultiTenancy/AsyncLocalAmbientTenantScopeProvider_Tests.cs diff --git a/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/AsyncLocalAmbientTenantScopeProvider.cs b/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/AsyncLocalAmbientTenantScopeProvider.cs index e609900bd3..a77e8d8b27 100644 --- a/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/AsyncLocalAmbientTenantScopeProvider.cs +++ b/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/AsyncLocalAmbientTenantScopeProvider.cs @@ -19,7 +19,7 @@ namespace Volo.Abp.MultiTenancy _tenant = new AsyncLocal(); } - public IDisposable CreateScope(TenantInfo tenantInfo) + public IDisposable EnterScope(TenantInfo tenantInfo) { var parentScope = CurrentScope; CurrentScope = new AmbientTenantScope(tenantInfo); diff --git a/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/IAmbientTenantScopeProvider.cs b/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/IAmbientTenantScopeProvider.cs index 2876eab71a..ed8d3ca4e1 100644 --- a/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/IAmbientTenantScopeProvider.cs +++ b/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/IAmbientTenantScopeProvider.cs @@ -6,6 +6,6 @@ namespace Volo.Abp.MultiTenancy { AmbientTenantScope CurrentScope { get; set; } - IDisposable CreateScope(TenantInfo tenantInfo); + IDisposable EnterScope(TenantInfo tenantInfo); } } \ No newline at end of file diff --git a/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenancyManager.cs b/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenancyManager.cs index c054fd14a7..095a466802 100644 --- a/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenancyManager.cs +++ b/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenancyManager.cs @@ -42,7 +42,7 @@ namespace Volo.Abp.MultiTenancy public IDisposable ChangeTenant(TenantInfo tenantInfo) { - return _ambientTenantScopeProvider.CreateScope(tenantInfo); + return _ambientTenantScopeProvider.EnterScope(tenantInfo); } } } diff --git a/test/Volo.Abp.MultiTenancy.Tests/Volo/Abp/MultiTenancy/AsyncLocalAmbientTenantScopeProvider_Tests.cs b/test/Volo.Abp.MultiTenancy.Tests/Volo/Abp/MultiTenancy/AsyncLocalAmbientTenantScopeProvider_Tests.cs new file mode 100644 index 0000000000..5a14ed7450 --- /dev/null +++ b/test/Volo.Abp.MultiTenancy.Tests/Volo/Abp/MultiTenancy/AsyncLocalAmbientTenantScopeProvider_Tests.cs @@ -0,0 +1,37 @@ +using Shouldly; +using Xunit; + +namespace Volo.Abp.MultiTenancy +{ + public class AsyncLocalAmbientTenantScopeProvider_Tests + { + [Fact] + public void Should_Support_Inner_Scopes() + { + var scopeProvider = new AsyncLocalAmbientTenantScopeProvider(); + + scopeProvider.CurrentScope.ShouldBeNull(); + + using (scopeProvider.EnterScope(new TenantInfo("1","A"))) + { + scopeProvider.CurrentScope.Tenant.Name.ShouldBe("A"); + + using (scopeProvider.EnterScope(new TenantInfo("2", "B"))) + { + scopeProvider.CurrentScope.Tenant.Name.ShouldBe("B"); + + using (scopeProvider.EnterScope(null)) + { + scopeProvider.CurrentScope.Tenant.ShouldBeNull(); + } + + scopeProvider.CurrentScope.Tenant.Name.ShouldBe("B"); + } + + scopeProvider.CurrentScope.Tenant.Name.ShouldBe("A"); + } + + scopeProvider.CurrentScope.ShouldBeNull(); + } + } +}