コード例 #1
0
        public void TokenizeCard_GivenValidResult_ShouldReturnOk()
        {
            //Arrange
            var cardRequest = new TokenizeCardRequest
            {
                Name        = "Biplov KC",
                Number      = "111222333444",
                ExpiryYear  = 2021,
                ExpiryMonth = 12,
                Cvv         = "222",
            };

            _merchantQueryMock
            .Setup(x => x.GetMerchantIdAsync(It.IsNotNull <string>()))
            .ReturnsAsync(It.IsAny <Guid>());

            var innerCommand = new AddNewCardCommand(cardRequest.Name, cardRequest.Number, cardRequest.ExpiryMonth, cardRequest.ExpiryYear, cardRequest.Cvv, null, It.IsAny <string>());
            var command      = new IdentifiedCommand <AddNewCardCommand, Result>(innerCommand);

            _mediatorMock.Setup(x => x.Send(command, It.IsAny <CancellationToken>())).ReturnsAsync(Result.Ok);

            //Act
            var result   = _sut.TokenizeCard(cardRequest).GetAwaiter().GetResult();
            var okResult = result as OkObjectResult;

            //Assert
            okResult.ShouldNotBeNull();
            okResult.StatusCode.ShouldBe(200);
        }
コード例 #2
0
        public async Task<IActionResult> TokenizeCard([FromBody] TokenizeCardRequest request)
        {
            var merchantIdentity = await _merchantQuery.GetMerchantIdAsync(GetAuthorizationKey());
            if (merchantIdentity.Equals(Guid.Empty))
                return new UnauthorizedObjectResult(ExternalErrorReason.InvalidSecretKey);

            var innerCommand = new AddNewCardCommand(request.Name, request.Number, request.ExpiryMonth, request.ExpiryYear, request.Cvv, null, HttpContext.TraceIdentifier);
            var command = new IdentifiedCommand<AddNewCardCommand, Result>(innerCommand);
            var result = await _mediator.Send(command);

            if (result.IsSuccess)
            {
                var card = await _cardQuery.GetCardByCardNumberAsync(request.Number);
                return Ok(card);
            }
            return UnprocessableEntity(result.Error);
        }