Browse Source

Added data for permission tests.

pull/208/head
Halil İbrahim Kalkan 9 years ago
parent
commit
f162d2de02
  1. 1
      test/Volo.Abp.Identity.Tests/Volo.Abp.Identity.Tests.csproj
  2. 10
      test/Volo.Abp.Identity.Tests/Volo/Abp/Identity/AbpIdentityDomainTestModule.cs
  3. 56
      test/Volo.Abp.Identity.Tests/Volo/Abp/Identity/AbpIdentityTestDataBuilder.cs
  4. 17
      test/Volo.Abp.Identity.Tests/Volo/Abp/Identity/IdentityTestPermissionDefinitionProvider.cs
  5. 18
      test/Volo.Abp.Identity.Tests/Volo/Abp/Identity/PermissionManager_Tests.cs
  6. 14
      test/Volo.Abp.Identity.Tests/Volo/Abp/Identity/TestPermissionNames.cs

1
test/Volo.Abp.Identity.Tests/Volo.Abp.Identity.Tests.csproj

@ -14,6 +14,7 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" /> <ProjectReference Include="..\..\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" />
<ProjectReference Include="..\..\src\Volo.Abp.Identity.Domain\Volo.Abp.Identity.Domain.csproj" /> <ProjectReference Include="..\..\src\Volo.Abp.Identity.Domain\Volo.Abp.Identity.Domain.csproj" />
<ProjectReference Include="..\..\src\Volo.Abp.Permissions.EntityFrameworkCore\Volo.Abp.Permissions.EntityFrameworkCore.csproj" />
<ProjectReference Include="..\AbpTestBase\AbpTestBase.csproj" /> <ProjectReference Include="..\AbpTestBase\AbpTestBase.csproj" />
<ProjectReference Include="..\..\src\Volo.Abp.Identity.EntityFrameworkCore\Volo.Abp.Identity.EntityFrameworkCore.csproj" /> <ProjectReference Include="..\..\src\Volo.Abp.Identity.EntityFrameworkCore\Volo.Abp.Identity.EntityFrameworkCore.csproj" />
</ItemGroup> </ItemGroup>

10
test/Volo.Abp.Identity.Tests/Volo/Abp/Identity/AbpIdentityDomainTestModule.cs

@ -5,13 +5,16 @@ using Volo.Abp.Autofac;
using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.Identity.EntityFrameworkCore; using Volo.Abp.Identity.EntityFrameworkCore;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using Volo.Abp.Permissions;
using Volo.Abp.Permissions.EntityFrameworkCore;
using Volo.Abp.Uow; using Volo.Abp.Uow;
namespace Volo.Abp.Identity namespace Volo.Abp.Identity
{ {
[DependsOn( [DependsOn(
typeof(AbpIdentityDomainModule), typeof(AbpIdentityDomainModule),
typeof(AbpIdentityEntityFrameworkCoreModule), typeof(AbpIdentityEntityFrameworkCoreModule),
typeof(AbpPermissionsEntityFrameworkCoreModule),
typeof(AbpAutofacModule))] typeof(AbpAutofacModule))]
public class AbpIdentityDomainTestModule : AbpModule public class AbpIdentityDomainTestModule : AbpModule
{ {
@ -34,6 +37,11 @@ namespace Volo.Abp.Identity
options.TransactionBehavior = UnitOfWorkTransactionBehavior.Disabled; //EF in-memory database does not support transactions options.TransactionBehavior = UnitOfWorkTransactionBehavior.Disabled; //EF in-memory database does not support transactions
}); });
services.Configure<PermissionOptions>(options =>
{
options.DefinitionProviders.Add<IdentityTestPermissionDefinitionProvider>();
});
services.AddAssemblyOf<AbpIdentityDomainTestModule>(); services.AddAssemblyOf<AbpIdentityDomainTestModule>();
} }

56
test/Volo.Abp.Identity.Tests/Volo/Abp/Identity/AbpIdentityTestDataBuilder.cs

@ -1,5 +1,7 @@
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.Guids; using Volo.Abp.Guids;
using Volo.Abp.Permissions;
using Volo.Abp.Session;
namespace Volo.Abp.Identity namespace Volo.Abp.Identity
{ {
@ -8,25 +10,33 @@ namespace Volo.Abp.Identity
private readonly IGuidGenerator _guidGenerator; private readonly IGuidGenerator _guidGenerator;
private readonly IIdentityUserRepository _userRepository; private readonly IIdentityUserRepository _userRepository;
private readonly IIdentityRoleRepository _roleRepository; private readonly IIdentityRoleRepository _roleRepository;
private readonly IPermissionGrantRepository _permissionGrantRepository;
private IdentityRole _adminRole; private IdentityRole _adminRole;
private IdentityRole _moderator; private IdentityRole _moderator;
private IdentityRole _supporterRole; private IdentityRole _supporterRole;
private IdentityUser _adminUser;
private IdentityUser _john;
private IdentityUser _david;
public AbpIdentityTestDataBuilder( public AbpIdentityTestDataBuilder(
IGuidGenerator guidGenerator, IGuidGenerator guidGenerator,
IIdentityUserRepository userRepository, IIdentityUserRepository userRepository,
IIdentityRoleRepository roleRepository) IIdentityRoleRepository roleRepository,
IPermissionGrantRepository permissionGrantRepository)
{ {
_guidGenerator = guidGenerator; _guidGenerator = guidGenerator;
_userRepository = userRepository; _userRepository = userRepository;
_roleRepository = roleRepository; _roleRepository = roleRepository;
_permissionGrantRepository = permissionGrantRepository;
} }
public void Build() public void Build()
{ {
AddRoles(); AddRoles();
AddRolePermissions();
AddUsers(); AddUsers();
AddUserPermissions();
} }
private void AddRoles() private void AddRoles()
@ -40,12 +50,48 @@ namespace Volo.Abp.Identity
_roleRepository.Insert(_supporterRole); _roleRepository.Insert(_supporterRole);
} }
private void AddRolePermissions()
{
AddPermission(TestPermissionNames.MyPermission1, RolePermissionValueProvider.ProviderName, _adminRole.Name);
AddPermission(TestPermissionNames.MyPermission2, RolePermissionValueProvider.ProviderName, _adminRole.Name);
AddPermission(TestPermissionNames.MyPermission2_ChildPermission1, RolePermissionValueProvider.ProviderName, _adminRole.Name);
AddPermission(TestPermissionNames.MyPermission1, RolePermissionValueProvider.ProviderName, _moderator.Name);
AddPermission(TestPermissionNames.MyPermission2, RolePermissionValueProvider.ProviderName, _moderator.Name);
AddPermission(TestPermissionNames.MyPermission1, RolePermissionValueProvider.ProviderName, _supporterRole.Name);
}
private void AddUsers() private void AddUsers()
{ {
var john = new IdentityUser(_guidGenerator.Create(), "john.nash"); _adminUser = new IdentityUser(_guidGenerator.Create(), "administrator");
john.AddRole(_moderator.Id); _adminUser.AddRole(_adminRole.Id);
john.AddRole(_supporterRole.Id); _userRepository.Insert(_adminUser);
_userRepository.Insert(john);
_john = new IdentityUser(_guidGenerator.Create(), "john.nash");
_john.AddRole(_moderator.Id);
_john.AddRole(_supporterRole.Id);
_userRepository.Insert(_john);
_david = new IdentityUser(_guidGenerator.Create(), "david");
_userRepository.Insert(_david);
}
private void AddUserPermissions()
{
AddPermission(TestPermissionNames.MyPermission1, UserPermissionValueProvider.ProviderName, _david.Id.ToString());
}
private void AddPermission(string permissionName, string providerName, string providerKey)
{
_permissionGrantRepository.Insert(
new PermissionGrant(
_guidGenerator.Create(),
permissionName,
providerName,
providerKey
)
);
} }
} }
} }

17
test/Volo.Abp.Identity.Tests/Volo/Abp/Identity/IdentityTestPermissionDefinitionProvider.cs

@ -0,0 +1,17 @@
using Volo.Abp.Permissions;
namespace Volo.Abp.Identity
{
public class IdentityTestPermissionDefinitionProvider : PermissionDefinitionProvider
{
public override void Define(IPermissionDefinitionContext context)
{
var testGroup = context.AddGroup(TestPermissionNames.Groups.TestGroup);
testGroup.AddPermission(TestPermissionNames.MyPermission1);
var myPermission2 = testGroup.AddPermission(TestPermissionNames.MyPermission2);
myPermission2.AddChild(TestPermissionNames.MyPermission2_ChildPermission1);
}
}
}

18
test/Volo.Abp.Identity.Tests/Volo/Abp/Identity/PermissionManager_Tests.cs

@ -1,10 +1,20 @@
using System; using System.Threading.Tasks;
using System.Collections.Generic; using Volo.Abp.Permissions;
using System.Text;
namespace Volo.Abp.Identity namespace Volo.Abp.Identity
{ {
public class PermissionManager_Tests public class PermissionManager_Tests : AbpIdentityDomainTestBase
{ {
private readonly IPermissionManager _permissionManager;
public PermissionManager_Tests()
{
_permissionManager = GetRequiredService<IPermissionManager>();
}
public async Task Test1()
{
}
} }
} }

14
test/Volo.Abp.Identity.Tests/Volo/Abp/Identity/TestPermissionNames.cs

@ -0,0 +1,14 @@
namespace Volo.Abp.Identity
{
public static class TestPermissionNames
{
public static class Groups
{
public const string TestGroup = "TestGroup";
}
public const string MyPermission1 = "MyPermission1";
public const string MyPermission2 = "MyPermission2";
public const string MyPermission2_ChildPermission1 = "MyPermission2.ChildPermission1";
}
}
Loading…
Cancel
Save