Beispiel #1
0
        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>());
        }
Beispiel #2
0
        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));
        }