public async Task Execute_Should_ReturnUserNotFound() { var address = _fixture.Create <AddressAdd>(); _store.GetAsync(address.UserId, Arg.Any <CancellationToken>()) .Returns(Task.FromResult((IUserAggregationRoot)null)); var result = await _operation.ExecuteAsync(address, 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(address.UserId, Arg.Any <CancellationToken>()); _mapper .DidNotReceive() .Map(Arg.Any <Domain.Common.Address>()); await _store .DidNotReceive() .SaveAsync(Arg.Any <IUserAggregationRoot>(), Arg.Any <CancellationToken>()); }
public async Task <IActionResult> AddAddress([FromRoute] Guid id, [FromBody] AddressResponse address, [FromServices] AddressAddOperation operation) { var result = await operation.ExecuteAsync(new AddressAdd { UserId = id, Number = address.Number, Line = address.Line, PostCode = address.PostCode }); if (result is OkResult <AddressResponse> 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)); }