Merge pull request #9030 from abpframework/maliming/RequirePermissionsSimpleBatchStateChecker_Tests

Add RequirePermissionsSimpleBatchStateChecker_Tests.
pull/9043/head
liangshiwei 4 years ago committed by GitHub
commit 08f03d78be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,50 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Shouldly;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.SimpleStateChecking;
using Xunit;
namespace Volo.Abp.Authorization
{
public class RequirePermissionsSimpleBatchStateChecker_Tests : AuthorizationTestBase
{
private readonly ISimpleStateCheckerManager<MyStateEntity> _simpleStateCheckerManager;
public RequirePermissionsSimpleBatchStateChecker_Tests()
{
_simpleStateCheckerManager = GetRequiredService<ISimpleStateCheckerManager<MyStateEntity>>();
}
[Fact]
public async Task RequirePermissionsSimpleBatchStateChecker_Test()
{
var myStateEntities = new MyStateEntity[]
{
new MyStateEntity().RequirePermissions(requiresAll: true, batchCheck:true, permissions: "MyPermission3"),
new MyStateEntity().RequirePermissions(requiresAll: true, batchCheck:true, permissions: "MyPermission4"),
new MyStateEntity().RequirePermissions(requiresAll: true, batchCheck:true, permissions: "MyPermission4"),
new MyStateEntity().RequirePermissions(requiresAll: true, batchCheck:true, permissions: "MyPermission5"),
};
var result = await _simpleStateCheckerManager.IsEnabledAsync(myStateEntities);
result.Count.ShouldBe(myStateEntities.Length);
result[myStateEntities[0]].ShouldBeTrue();
result[myStateEntities[1]].ShouldBeFalse();
result[myStateEntities[2]].ShouldBeFalse();
result[myStateEntities[3]].ShouldBeTrue();
}
class MyStateEntity : IHasSimpleStateCheckers<MyStateEntity>
{
public List<ISimpleStateChecker<MyStateEntity>> StateCheckers { get; }
public MyStateEntity()
{
StateCheckers = new List<ISimpleStateChecker<MyStateEntity>>();
}
}
}
}

@ -19,6 +19,9 @@ namespace Volo.Abp.Authorization.TestServices
group.AddPermission("MyPermission1").StateCheckers.Add(new TestRequireEditionPermissionSimpleStateChecker());
group.AddPermission("MyPermission2");
group.AddPermission("MyPermission3");
group.AddPermission("MyPermission4");
group.AddPermission("MyPermission5");
group.GetPermissionOrNull("MyAuthorizedService1").ShouldNotBeNull();

@ -0,0 +1,27 @@
using System.Threading.Tasks;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Authorization.TestServices
{
public class FakePermissionStore : IPermissionStore, ITransientDependency
{
public Task<bool> IsGrantedAsync(string name, string providerName, string providerKey)
{
return Task.FromResult(name == "MyPermission3" || name == "MyPermission5");
}
public Task<MultiplePermissionGrantResult> IsGrantedAsync(string[] names, string providerName, string providerKey)
{
var result = new MultiplePermissionGrantResult();
foreach (var name in names)
{
result.Result.Add(name, name == "MyPermission3" || name == "MyPermission5"
? PermissionGrantResult.Granted
: PermissionGrantResult.Prohibited);
}
return Task.FromResult(result);
}
}
}
Loading…
Cancel
Save