public async Task Resolve_RoleUserPermissions_SuccessAsync() { var securableItem = "testapp"; var subjectId = "testuser"; var groups = new List <string> { "contributor" }; var roles = CreateRoles(securableItem, subjectId, groups); var mockPermissionStore = new Mock <IPermissionStore>().Object; var mockRoleStore = new Mock <IRoleStore>() .SetupGetRoles(roles) .Object; var roleService = new RoleService(mockRoleStore, mockPermissionStore); var resolverService = new RolePermissionResolverService(roleService); var resolutionResult = await resolverService.Resolve(new PermissionResolutionRequest { Grain = Domain.Defaults.Authorization.AppGrain, IdentityProvider = "Windows", SecurableItem = securableItem, SubjectId = subjectId, UserGroups = groups, IncludeSharedPermissions = false }); Assert.Equal(2, resolutionResult.AllowedPermissions.Count()); }
public async Task RolePermissionResolver_DuplicateGroupNames_SuccessAsync(string groupIdentityProvider, string tenantId, int expectedPermissions) { var securableItem = "testapp"; var subjectId = "testuser"; var groups = new List <Group> { new Group { Name = "contributor", IdentityProvider = "Windows", TenantId = "Tenant123" }, new Group { Name = "contributor", IdentityProvider = "Azure", TenantId = "Tenant456" } }; var roles = CreateRoles(securableItem, subjectId, groups); var mockPermissionStore = new Mock <IPermissionStore>().Object; var mockRoleStore = new Mock <IRoleStore>() .SetupGetRoles(roles) .Object; var roleService = new RoleService(mockRoleStore, mockPermissionStore); var resolverService = new RolePermissionResolverService(roleService); var resolutionResult = await resolverService.Resolve(new PermissionResolutionRequest { Grain = Domain.Defaults.Authorization.AppGrain, IdentityProvider = "Windows", SecurableItem = securableItem, SubjectId = subjectId, UserGroups = new List <Group> { new Group { IdentityProvider = groupIdentityProvider, TenantId = tenantId, Name = "contributor" } }, IncludeSharedPermissions = false }); Assert.Equal(expectedPermissions, resolutionResult.AllowedPermissions.Count()); }