public async Task GetEditPermissionsViewModelTest()
        {
            string roleId = Guid.NewGuid().ToString("N");
            string userId = Guid.NewGuid().ToString("N");

            var role = new IdentityRole {
                Id = roleId
            };
            var permission     = new IdentityPermission();
            var rolePermission = new IdentityRolePermission
            {
                RoleId       = role.Id,
                PermissionId = permission.Id
            };

            role.Permissions = new List <IdentityRolePermission> {
                rolePermission
            };

            var user = new User {
                Id = userId
            };

            user.Roles.Add(new IdentityUserRole {
                RoleId = role.Id, Role = role, User = user, UserId = user.Id
            });

            _userRepository.Setup(x => x.GetAsync(It.IsAny <string>()))
            .Returns(Task.FromResult(user));

            _permissionManagerFacade.Setup(x => x.GetAll())
            .Returns(Task.FromResult(Enumerable.Repeat(permission, 6)));

            var result = await _permissionsMapper.GetEditPermissionViewModel <IdentityRole, IdentityPermissionViewModel>(userId, roleId);

            Assert.That(result.Permissions.Count(), Is.EqualTo(6));
        }
Beispiel #2
0
        public async Task UpdateRolePermissionsShouldSuccess()
        {
            var    repository = Repository as RoleRepository;
            string roleId     = Guid.NewGuid().ToString("N");
            var    role       = new IdentityRole {
                Id = roleId
            };

            var permission1Id = Guid.NewGuid().ToString("N");
            var permission1   = new IdentityPermission {
                Name = "1", Id = permission1Id
            };

            var permission2Id = Guid.NewGuid().ToString("N");
            var permission2   = new IdentityPermission {
                Name = "2", Id = permission2Id
            };

            var p3 = new IdentityPermission {
                Name = "3"
            };
            var p4 = new IdentityPermission {
                Name = "4"
            };

            var allPermissions = new List <IdentityPermission>
            {
                permission1,
                permission2,
                p3,
                p4
            };

            _permissionManager.Setup(x => x.GetAll())
            .Returns(Task.FromResult(allPermissions.AsEnumerable()));

            _roleManager.Setup(x => x.FindByIdAsync(roleId))
            .Returns(Task.FromResult(role));

            var userPermission1 = new IdentityRolePermission
            {
                Permission   = permission1,
                PermissionId = permission1Id,
                Role         = role,
                RoleId       = roleId
            };

            var userPermission2 = new IdentityRolePermission
            {
                Permission   = permission2,
                PermissionId = permission2Id,
                Role         = role,
                RoleId       = roleId
            };

            role.Permissions = new List <IdentityRolePermission>
            {
                userPermission1,
                userPermission2
            };

            var permissions = new List <IdentityPermissionViewModel>
            {
                new IdentityPermissionViewModel {
                    Id = permission1.Id, IsSelected = false
                },
                new IdentityPermissionViewModel {
                    Id = permission2.Id, IsSelected = false
                },
                new IdentityPermissionViewModel {
                    Id = p3.Id, IsSelected = true
                },
                new IdentityPermissionViewModel {
                    Id = p3.Id, IsSelected = true
                }
            };

            IEditPermissionViewModel <IdentityRole, IdentityPermissionViewModel> model = new EditPermissionViewModel
            {
                Permissions = permissions,
                Role        = role,
                RoleId      = roleId
            };

            var result = await repository.UpdateRolePermissions(model);

            Assert.IsTrue(result.Succeeded);
        }