|
|
|
@ -1,4 +1,6 @@ |
|
|
|
using System.Threading.Tasks; |
|
|
|
using System; |
|
|
|
using System.Linq; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using Shouldly; |
|
|
|
using Volo.Abp.Authorization.Permissions; |
|
|
|
using Volo.Abp.Data; |
|
|
|
@ -18,6 +20,25 @@ public class PermissionDefinitionSerializer_Tests : PermissionTestBase |
|
|
|
{ |
|
|
|
_serializer = GetRequiredService<IPermissionDefinitionSerializer>(); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public async Task Serialize_Permission_Group_Definition() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
|
|
|
|
var context = new PermissionDefinitionContext(null); |
|
|
|
var group1 = CreatePermissionGroup1(context); |
|
|
|
|
|
|
|
// Act
|
|
|
|
|
|
|
|
var permissionGroupRecord = await _serializer.SerializeAsync(group1); |
|
|
|
|
|
|
|
//Assert
|
|
|
|
|
|
|
|
permissionGroupRecord.Name.ShouldBe("Group1"); |
|
|
|
permissionGroupRecord.DisplayName.ShouldBe("Group one"); |
|
|
|
permissionGroupRecord.GetProperty("CustomProperty1").ShouldBe("CustomValue1"); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public async Task Serialize_Complex_Permission_Definition() |
|
|
|
@ -52,6 +73,41 @@ public class PermissionDefinitionSerializer_Tests : PermissionTestBase |
|
|
|
permissionRecord.MultiTenancySide.ShouldBe(MultiTenancySides.Tenant); |
|
|
|
permissionRecord.StateCheckers.ShouldBe("[{\"T\":\"GF\",\"A\":true,\"N\":[\"GlobalFeature1\",\"GlobalFeature2\"]}]"); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact(Skip = "Not implemented yet")] |
|
|
|
public async Task Deserialize_Complex_Permission_Definition() |
|
|
|
{ |
|
|
|
// Arrange
|
|
|
|
|
|
|
|
var permissionRecord = new PermissionDefinitionRecord |
|
|
|
{ |
|
|
|
Name = "Permission1", |
|
|
|
GroupName = "Group1", |
|
|
|
DisplayName = "Permission one", |
|
|
|
Providers = "ProviderA,ProviderB", |
|
|
|
IsEnabled = true, |
|
|
|
MultiTenancySide = MultiTenancySides.Tenant, |
|
|
|
StateCheckers = "[{\"T\":\"GF\",\"A\":true,\"N\":[\"GlobalFeature1\",\"GlobalFeature2\"]}]" |
|
|
|
}; |
|
|
|
|
|
|
|
// Act
|
|
|
|
|
|
|
|
var permission = await _serializer.DeserializeAsync(permissionRecord); |
|
|
|
|
|
|
|
//Assert
|
|
|
|
|
|
|
|
permission.Name.ShouldBe("Permission1"); |
|
|
|
permission.DisplayName.ShouldBeOfType<FixedLocalizableString>(); |
|
|
|
permission.DisplayName.As<FixedLocalizableString>().Value.ShouldBe("Permission one"); |
|
|
|
permission.Parent.ShouldBeNull(); |
|
|
|
permission.MultiTenancySide.ShouldBe(MultiTenancySides.Tenant); |
|
|
|
permission.IsEnabled.ShouldBe(true); |
|
|
|
permission.Providers.Count.ShouldBe(2); |
|
|
|
permission.Providers.ShouldContain("ProviderA"); |
|
|
|
permission.Providers.ShouldContain("ProviderB"); |
|
|
|
permission.StateCheckers.Count.ShouldBe(1); |
|
|
|
permission.StateCheckers[0].ShouldBeOfType<RequireGlobalFeaturesSimpleStateChecker<PermissionDefinition>>(); |
|
|
|
} |
|
|
|
|
|
|
|
private static PermissionGroupDefinition CreatePermissionGroup1( |
|
|
|
IPermissionDefinitionContext context) |
|
|
|
|