public async ValueTask <Result> ExecuteAsync(UserGet operation, CancellationToken cancellation = default) { var scope = _logger.BeginScope("Get user. [UserId: {userId}]", operation.Id); try { var user = await _repository.GetByIdAsync(operation.Id, cancellation); if (user == null) { _logger.LogInformation("User not found"); return(DomainError.UserError.UserNotFound); } _logger.LogInformation("Get user with success"); return(Result.Ok(_mapper.Map(user))); } catch (Exception e) { _logger.LogError(e, "Exception: "); return(Result.Fail(e)); } finally { scope.Dispose(); } }
public async Task Execute_Should_ReturnUserNotFound() { var request = _fixture.Create <UserGet>(); _repository.GetByIdAsync(request.Id, Arg.Any <CancellationToken>()) .Returns(Task.FromResult((Domain.Common.User)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 _repository .Received(1) .GetByIdAsync(request.Id, Arg.Any <CancellationToken>()); _mapper .DidNotReceive() .Map(Arg.Any <Domain.Common.User>()); }