public async Task Return_Success_Response_When_Request_Is_Successful() { BankPaymentResponse bankPaymentResponse = (new BankPaymentResponse { PaymentIdentifier = Guid.NewGuid().ToString(), PaymentStatus = PaymentStatus.Success }); _server .Given(Request.Create() .WithPath($"/api/payment").UsingPost()) .RespondWith(Response.Create() .WithStatusCode(200) .WithHeader("Content-Type", "application/json") .WithBody(bankPaymentResponse.ToJson())); _mockAcquiryBankOptions.SetupGet(x => x.CurrentValue) .Returns(new AcquiringBankSettings { ApiUrl = _server.Urls.First() }); var sut = new AcquiringBankClient(new HttpClient(), _mockAcquiryBankOptions.Object, _mockLogger.Object); var response = await sut.ProcessPayment(new BankPaymentRequest { Amount = 100, Currency = "EUR", CardExpiryYear = "24", CardExpiryMonth = "4", CardNumber = "5564876598743467", CVV = "782", MerchantId = Guid.NewGuid().ToString() }); response.Should().BeEquivalentTo(bankPaymentResponse); }
public async Task Return_Failed_Response_When_Request_Is_Not_SuccessFul() { _server .Given(Request.Create() .WithPath($"/api/payment").UsingPost()) .RespondWith(Response.Create() .WithStatusCode(500)); _mockAcquiryBankOptions.SetupGet(x => x.CurrentValue) .Returns(new AcquiringBankSettings { ApiUrl = _server.Urls.First() }); var sut = new AcquiringBankClient(new HttpClient(), _mockAcquiryBankOptions.Object, _mockLogger.Object); var response = await sut.ProcessPayment(new BankPaymentRequest { Amount = 100, Currency = "EUR", }); response.PaymentStatus.Should().Be(PaymentStatus.Failed); response.PaymentIdentifier.Should().BeNull(); }