示例#1
0
        public async Task Post_Returns_BadRequest_WhenModelInvalid()
        {
            _sut.ModelState.AddModelError("property", "invalid");

            var result = await _sut.Post(new PaymentRequest());

            result.ShouldNotBeNull();
            result.ShouldBeOfType(typeof(BadRequestResult));
        }
示例#2
0
        public void Post_ReturnsNOK()
        {
            var controller = new PaymentGatewayController(pgm);
            // Act
            PaymentGatewayDto pgdo = new PaymentGatewayDto();
            var result             = controller.Post(pgdo);

            // Assert
            Assert.IsType <BadRequestResult>(result);
        }
        public async Task Call_PaymentGatewayService_To_Process_Payment_When_Handling_Request()
        {
            // Arrange
            var paymentGatewayController = new PaymentGatewayController(paymentGatewayServiceMock.Object);
            var paymentRequest           = CreatePaymentRequest();

            // Act
            await paymentGatewayController.Post(paymentRequest);

            // Assert
            paymentGatewayServiceMock.Verify(service => service.SendPayment(paymentRequest), Times.Once);
        }
        public async Task Return_BadRequest_When_PaymentRequest_Is_Invalid()
        {
            // Arrange
            var paymentGatewayController = new PaymentGatewayController(paymentGatewayServiceMock.Object);

            // Act
            PaymentRequest invalidPaymentRequest = new PaymentRequest("", "", 0m, "", 0);
            var            response = await paymentGatewayController.Post(invalidPaymentRequest) as BadRequestObjectResult;

            // Assert
            Assert.Equal(HttpStatusCode.BadRequest, (HttpStatusCode)response.StatusCode);
            Assert.Equal("Invalid payment request", response.Value);
        }
示例#5
0
        public void Create_ReturnsBadRequest_GivenInvalidModel()
        {
            // Arrange & Act
            var mockSub    = new Mock <IPaymentGatewayManipulation>();
            var controller = new PaymentGatewayController(mockSub.Object);

            controller.ModelState.AddModelError("error", "some error");

            // Act
            var result = controller.Post(paymentGateway: null);

            // Assert
            Assert.IsType <BadRequestObjectResult>(result);
        }
        public async Task GivenAsubmitPaymentRequest_WhenProcessingIt_ShouldPassItToThePaymentOrchestrator()
        {
            // given
            var submitPaymentRequest = _fixture.Create <SubmitPaymentRequest>();
            var bankPaymentResponse  = _fixture.Create <BankPaymentResponse>();

            _mockOrchestator.Setup(x => x.ProcessPayment(It.IsAny <BankPaymentRequest>()))
            .Returns(bankPaymentResponse);

            // when
            await _sut.Post(submitPaymentRequest);

            // then
            _mockOrchestator.Verify(x => x.ProcessPayment(It.Is <BankPaymentRequest>(y =>
                                                                                     y.Amount == submitPaymentRequest.Amount &&
                                                                                     y.CardDetails.CVV == submitPaymentRequest.CardDetails.CVV &&
                                                                                     y.CardDetails.CardNumber == submitPaymentRequest.CardDetails.CardNumber &&
                                                                                     y.CardDetails.ExpiryDate == submitPaymentRequest.CardDetails.ExpiryDate &&
                                                                                     y.CardDetails.Currency == submitPaymentRequest.CardDetails.Currency &&
                                                                                     y.MerchantDetails.MerchantId == submitPaymentRequest.MerchantDetails.MerchantId
                                                                                     )));
        }