Exemplo n.º 1
0
        public void UpdatePermissions_ShouldUpdatePermissions_WhenCommandIsValid()
        {
            var roleCmdGen        = new RoleCmdGenerator();
            var createCmd         = roleCmdGen.CreateRoleCommand;
            var role              = Role.Create(createCmd);
            var createResourceCmd = ApplicationResourceCmdGenerator.CreateApplicationResourceCommand;
            var resource          = ApplicationResource.Create(createResourceCmd);
            var action            = resource.AddResourceAction(ApplicationResourceCmdGenerator.AddResourceActionCommand);
            var command           = new UpdateRolePermissionsCommand
            {
                Permissions = new[] { new UpdateRolePermissionItem {
                                          Action = action, Permission = Permission.Allow
                                      } }
            };

            try
            {
                role.UpdatePermissions(command);
            }
            catch (DomainValidationException ex)
            {
                Assert.True(false, Newtonsoft.Json.JsonConvert.SerializeObject(ex.ValidationErrors));
            }

            Assert.Contains(role.RolePermissions,
                            p => p.Action == command.Permissions.Single().Action &&
                            p.Permission == command.Permissions.Single().Permission);
        }
Exemplo n.º 2
0
        public void UpdatePermissions(UpdateRolePermissionsCommand command)
        {
            command.Validate(this, true);

            this.rolePermissions.Clear();
            this.rolePermissions.AddRange(command.Permissions.Select(p => new RoleActionPermission
            {
                Action     = p.Action,
                Permission = p.Permission
            }));

            this.AddEvent(new RolePermissionsUpdatedEvent(this)
            {
                Permissions = this.rolePermissions.Select(p => new Contracts.Role.RoleActionPermissionDto
                {
                    Action = new Contracts.ApplicationResource.ResourceActionDto
                    {
                        Id   = p.Action.Id,
                        Name = p.Action.Name
                    },
                    Permission = p.Permission
                })
            });
        }
Exemplo n.º 3
0
        public void UpdatePermissions_ShouldThrowDomainValidaitonException_WhenCommandIsInvalid(UpdateRolePermissionsCommand command, ValidationError[] errors)
        {
            var roleCmdGen        = new RoleCmdGenerator();
            var createCmd         = roleCmdGen.CreateRoleCommand;
            var role              = Role.Create(createCmd);
            var createResourceCmd = ApplicationResourceCmdGenerator.CreateApplicationResourceCommand;
            var resource          = ApplicationResource.Create(createResourceCmd);
            var action            = resource.AddResourceAction(ApplicationResourceCmdGenerator.AddResourceActionCommand);

            var ex = Assert.Throws <DomainValidationException>(() => role.UpdatePermissions(command));

            Assert.Equal(errors.Length, ex.ValidationErrors.Count());
            Assert.All(ex.ValidationErrors, e => errors.Any(err => err.Code == e.Code && err.Member == e.Member));
        }