Browse Source

Added AsyncLocalAmbientTenantScopeProvider_Tests.

pull/81/head
Halil İbrahim Kalkan 10 years ago
parent
commit
383ed32017
  1. 2
      src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/AsyncLocalAmbientTenantScopeProvider.cs
  2. 2
      src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/IAmbientTenantScopeProvider.cs
  3. 2
      src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenancyManager.cs
  4. 37
      test/Volo.Abp.MultiTenancy.Tests/Volo/Abp/MultiTenancy/AsyncLocalAmbientTenantScopeProvider_Tests.cs

2
src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/AsyncLocalAmbientTenantScopeProvider.cs

@ -19,7 +19,7 @@ namespace Volo.Abp.MultiTenancy
_tenant = new AsyncLocal<AmbientTenantScope>(); _tenant = new AsyncLocal<AmbientTenantScope>();
} }
public IDisposable CreateScope(TenantInfo tenantInfo) public IDisposable EnterScope(TenantInfo tenantInfo)
{ {
var parentScope = CurrentScope; var parentScope = CurrentScope;
CurrentScope = new AmbientTenantScope(tenantInfo); CurrentScope = new AmbientTenantScope(tenantInfo);

2
src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/IAmbientTenantScopeProvider.cs

@ -6,6 +6,6 @@ namespace Volo.Abp.MultiTenancy
{ {
AmbientTenantScope CurrentScope { get; set; } AmbientTenantScope CurrentScope { get; set; }
IDisposable CreateScope(TenantInfo tenantInfo); IDisposable EnterScope(TenantInfo tenantInfo);
} }
} }

2
src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenancyManager.cs

@ -42,7 +42,7 @@ namespace Volo.Abp.MultiTenancy
public IDisposable ChangeTenant(TenantInfo tenantInfo) public IDisposable ChangeTenant(TenantInfo tenantInfo)
{ {
return _ambientTenantScopeProvider.CreateScope(tenantInfo); return _ambientTenantScopeProvider.EnterScope(tenantInfo);
} }
} }
} }

37
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();
}
}
}
Loading…
Cancel
Save