示例#1
0
        public async Task Get_Returns_AcquiringBankResponse()
        {
            var paymentId        = _fixture.Create <string>();
            var mockBankResponse = _fixture.Create <IPayment>();

            _mockAcquiringBank.Setup(b => b.GetPayment(It.Is <string>(id => id == paymentId)))
            .ReturnsAsync(mockBankResponse);

            var result = await _sut.Get(paymentId);

            result.ShouldBeOfType(typeof(OkObjectResult));
            var actualResult = (result as OkObjectResult).Value as IPayment;

            actualResult.ShouldBeSameAs(mockBankResponse);
        }
        public async Task GivenARetrievePaymentRequest_WhenProcessingIt_ShouldPassItToThePaymentOrchestrator()
        {
            // given
            var submitPaymentRequest    = _fixture.Create <RetrievePaymentRequest>();
            var retrievePaymentResponse = _fixture.Create <Checkout.Services.Models.PaymentReadModel>();

            _mockOrchestator.Setup(x => x.RetrievePayment(It.IsAny <Checkout.Services.Models.RetrievePaymentRequest>()))
            .Returns(retrievePaymentResponse);

            // when
            await _sut.Get(submitPaymentRequest);

            // then
            _mockOrchestator.Verify(x => x.RetrievePayment(It.Is <Checkout.Services.Models.RetrievePaymentRequest>(y =>
                                                                                                                   y.PaymentId == submitPaymentRequest.PaymentId &&
                                                                                                                   y.MerchantId == submitPaymentRequest.MerchantId
                                                                                                                   )));
        }