Browse Source

Add unit tests to `PermissionManagement`.

pull/13881/head
maliming 4 years ago
parent
commit
79a89b8998
No known key found for this signature in database GPG Key ID: 96224957E51C89E
  1. 5
      modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs
  2. 19
      modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs
  3. 27
      modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionDefinitionRecordRepository_Tests.cs
  4. 13
      modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/StaticPermissionSaver_Tests.cs
  5. 1
      modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj
  6. 6
      modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo/Abp/PermissionManagement/EntityFrameworkCore/EFCorePermissionDefinitionRecordRepository_Tests.cs
  7. 1
      modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo.Abp.PermissionManagement.MongoDB.Tests.csproj
  8. 9
      modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbPermissionDefinitionRecordRepository_Tests.cs

5
modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs

@ -43,6 +43,11 @@ public class AbpFeatureManagementDomainModule : AbpModule
private readonly CancellationTokenSource _cancellationTokenSource = new();
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
AsyncHelper.RunSync(() => OnApplicationInitializationAsync(context));
}
public override Task OnApplicationInitializationAsync(ApplicationInitializationContext context)
{
InitializeDynamicFeatures(context);

19
modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs

@ -25,7 +25,12 @@ namespace Volo.Abp.PermissionManagement;
public class AbpPermissionManagementDomainModule : AbpModule
{
private readonly CancellationTokenSource _cancellationTokenSource = new();
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
AsyncHelper.RunSync(() => OnApplicationInitializationAsync(context));
}
public override Task OnApplicationInitializationAsync(ApplicationInitializationContext context)
{
InitializeDynamicPermissions(context);
@ -44,12 +49,12 @@ public class AbpPermissionManagementDomainModule : AbpModule
.ServiceProvider
.GetRequiredService<IOptions<PermissionManagementOptions>>()
.Value;
if (!options.SaveStaticPermissionsToDatabase && !options.IsDynamicPermissionStoreEnabled)
{
return;
}
var rootServiceProvider = context.ServiceProvider.GetRequiredService<IRootServiceProvider>();
Task.Run(async () =>
@ -58,7 +63,7 @@ public class AbpPermissionManagementDomainModule : AbpModule
var applicationLifetime = scope.ServiceProvider.GetService<IHostApplicationLifetime>();
var cancellationTokenProvider = scope.ServiceProvider.GetRequiredService<ICancellationTokenProvider>();
var cancellationToken = applicationLifetime?.ApplicationStopping ?? _cancellationTokenSource.Token;
try
{
using (cancellationTokenProvider.Use(cancellationToken))
@ -67,7 +72,7 @@ public class AbpPermissionManagementDomainModule : AbpModule
{
return;
}
await SaveStaticPermissionsToDatabaseAsync(options, scope, cancellationTokenProvider);
if (cancellationTokenProvider.Token.IsCancellationRequested)
@ -127,7 +132,7 @@ public class AbpPermissionManagementDomainModule : AbpModule
try
{
// Pre-cache permissions, so first request doesn't wait
// Pre-cache permissions, so first request doesn't wait
await scope
.ServiceProvider
.GetRequiredService<IDynamicPermissionDefinitionStore>()
@ -144,4 +149,4 @@ public class AbpPermissionManagementDomainModule : AbpModule
throw; // It will be cached in InitializeDynamicPermissions
}
}
}
}

27
modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionDefinitionRecordRepository_Tests.cs

@ -0,0 +1,27 @@
using System.Threading.Tasks;
using Shouldly;
using Xunit;
namespace Volo.Abp.PermissionManagement;
public abstract class PermissionDefinitionRecordRepository_Tests : PermissionTestBase
{
protected IPermissionDefinitionRecordRepository PermissionDefinitionRecordRepository { get; set; }
protected PermissionDefinitionRecordRepository_Tests()
{
PermissionDefinitionRecordRepository = GetRequiredService<IPermissionDefinitionRecordRepository>();
}
[Fact]
public async Task FindByNameAsync()
{
var permission = await PermissionDefinitionRecordRepository.FindByNameAsync("MyPermission1");
permission.ShouldNotBeNull();
permission.Name.ShouldBe("MyPermission1");
permission = await PermissionDefinitionRecordRepository.FindByNameAsync("MyPermission2");
permission.ShouldNotBeNull();
permission.Name.ShouldBe("MyPermission2");
}
}

13
modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/StaticPermissionSaver_Tests.cs

@ -0,0 +1,13 @@
namespace Volo.Abp.PermissionManagement;
public class StaticPermissionSaver_Tests : PermissionTestBase
{
private readonly IStaticPermissionSaver _saver;
public StaticPermissionSaver_Tests()
{
_saver = GetRequiredService<IStaticPermissionSaver>();
}
}

1
modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj

@ -13,6 +13,7 @@
<ItemGroup>
<ProjectReference Include="..\..\src\Volo.Abp.PermissionManagement.EntityFrameworkCore\Volo.Abp.PermissionManagement.EntityFrameworkCore.csproj" />
<ProjectReference Include="..\Volo.Abp.PermissionManagement.Domain.Tests\Volo.Abp.PermissionManagement.Domain.Tests.csproj" />
<ProjectReference Include="..\Volo.Abp.PermissionManagement.TestBase\Volo.Abp.PermissionManagement.TestBase.csproj" />
</ItemGroup>

6
modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo/Abp/PermissionManagement/EntityFrameworkCore/EFCorePermissionDefinitionRecordRepository_Tests.cs

@ -0,0 +1,6 @@
namespace Volo.Abp.PermissionManagement.EntityFrameworkCore;
public class EFCorePermissionDefinitionRecordRepository_Tests : PermissionDefinitionRecordRepository_Tests
{
}

1
modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo.Abp.PermissionManagement.MongoDB.Tests.csproj

@ -13,6 +13,7 @@
<ItemGroup>
<ProjectReference Include="..\..\src\Volo.Abp.PermissionManagement.MongoDB\Volo.Abp.PermissionManagement.MongoDB.csproj" />
<ProjectReference Include="..\Volo.Abp.PermissionManagement.Domain.Tests\Volo.Abp.PermissionManagement.Domain.Tests.csproj" />
<ProjectReference Include="..\Volo.Abp.PermissionManagement.TestBase\Volo.Abp.PermissionManagement.TestBase.csproj" />
</ItemGroup>

9
modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbPermissionDefinitionRecordRepository_Tests.cs

@ -0,0 +1,9 @@
using Xunit;
namespace Volo.Abp.PermissionManagement.MongoDB;
[Collection(MongoTestCollection.Name)]
public class MongoDbPermissionDefinitionRecordRepository_Tests : PermissionGrantRepository_Tests<AbpPermissionManagementMongoDbTestModule>
{
}
Loading…
Cancel
Save