public void AddPermission_ThrowException_If_Command_IsNotValid(string name, string domain, string resource) { var command = new AddPermissionCommand(name, domain, resource); Assert.ThrowsAsync <BusinessException>(async() => await authorizationAppService.AddPermission(command, CancellationToken.None)); }
public async Task <Guid> AddPermission(AddPermissionCommand command, CancellationToken cancellationToken) { if (command == null) { throw new ArgumentNullException(nameof(command)); } command.EnsureIsValid(); var persistedPermission = await authorizationRepository.GetPermissionsBy(command.Domain, command.Resource, cancellationToken : cancellationToken).ConfigureAwait(false); if (persistedPermission?.Count > 0) { throw new BusinessException(Messages.PermissionAlreadyExist); } var permission = new Permission() { Domain = command.Domain, Name = command.Name, Resource = command.Resource }; await authorizationRepository.AddPermission(permission, cancellationToken).ConfigureAwait(false); return(permission.Id); }
public async Task <ActionResult <Permission> > Create(AddPermissionCommand addPermissionCommand) { try { Permission permission = await this.mediator.Send(addPermissionCommand); return(Ok(permission)); } catch (Exception ex) { return(this.BadRequest(ex)); } }
public async Task AddPermission() { var command = new AddPermissionCommand("Admin", "Allow Admin users", "/users"); authorizationRepositoryMock.GetPermissionsBy(command.Domain, command.Resource, null, Arg.Any <CancellationToken>()) .Returns(default(List <Permission>)); var permissionId = await authorizationAppService.AddPermission(command, CancellationToken.None); Assert.IsNotNull(permissionId); Assert.IsFalse(permissionId == Guid.Empty); await authorizationRepositoryMock.Received(1).GetPermissionsBy(command.Domain, command.Resource, null, Arg.Any <CancellationToken>()); await authorizationRepositoryMock.Received(1).AddPermission(Arg.Any <Permission>(), Arg.Any <CancellationToken>()); }
public async Task AddPermission_Throw_Exception_If_Permission_Already_Exist() { var expectedPermission = new Permission() { Name = "AllowGet", Domain = "user", Resource = "/user" }; var command = new AddPermissionCommand(expectedPermission.Name, expectedPermission.Domain, expectedPermission.Resource); authorizationRepositoryMock.GetPermissionsBy(command.Domain, command.Resource, null, Arg.Any <CancellationToken>()) .Returns(new List <Permission>() { expectedPermission }); Assert.ThrowsAsync <BusinessException>(async() => await authorizationAppService.AddPermission(command, CancellationToken.None), "Permission already exist."); await authorizationRepositoryMock.Received(1).GetPermissionsBy(command.Domain, command.Resource, null, Arg.Any <CancellationToken>()); }
public async Task <IActionResult> Add([FromBody] AddPermissionCommand command) { var result = await Mediator.Send(command); return(Ok(result)); }
public async Task <IActionResult> Add(AddPermissionCommand command, CancellationToken cancellationToken = default) { var permissionId = await authorizationAppService.AddPermission(command, cancellationToken); return(Ok(permissionId)); }