public async Task Execute_Should_ReturnUserNotFound() { var request = _fixture.Create <UserUpdate>(); _store.GetAsync(request.Id, Arg.Any <CancellationToken>()) .Returns(Task.FromResult((IUserAggregationRoot)null)); var result = await _operation.ExecuteAsync(request, CancellationToken.None); result.IsSuccess.Should().BeFalse(); result.Value.Should().BeNull(); result.ErrorCode.Should().NotBeNullOrEmpty(); result.Description.Should().NotBeNullOrEmpty(); result.Should().Be(DomainError.UserError.UserNotFound); await _store .Received(1) .GetAsync(request.Id, Arg.Any <CancellationToken>()); _mapper .DidNotReceive() .Map(Arg.Any <Domain.Common.User>()); await _store .DidNotReceive() .SaveAsync(Arg.Any <IUserAggregationRoot>(), Arg.Any <CancellationToken>()); }
public async Task <IActionResult> UpdateUser([FromRoute] Guid id, [FromBody] UserResponse user, [FromServices] UserUpdateOperation operation) { var result = await operation.ExecuteAsync(new UserUpdate { Id = id, FirstName = user.FirstName, LastNames = user.LastNames, BirthDate = user.BirthDay }); if (result is OkResult <UserResponse> ok) { return(Ok(ok.Value)); } if (result is ErrorResult error && error.ErrorCode.StartsWith("USR")) { if (error.ErrorCode == DomainError.UserError.UserNotFound.ErrorCode) { return(NotFound(error)); } return(UnprocessableEntity(error)); } return(BadRequest(result)); }