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)); }
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); }
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 ))); }