Skip to content

Commit

Permalink
Add unit test to create a payment method specific type
Browse files Browse the repository at this point in the history
  • Loading branch information
Viincenttt committed Jul 9, 2024
1 parent 855bc11 commit e4996ac
Showing 1 changed file with 39 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
using System;
using FluentAssertions;
using Mollie.Api.Models;
using Mollie.Api.Models.Payment;
using Mollie.Api.Models.Payment.Request;
using Mollie.Api.Models.Payment.Request.PaymentSpecificParameters;
using Xunit;

namespace Mollie.Tests.Unit.Models.Payment.Request;

public class PaymentRequestTests {
[Theory]
[InlineData(PaymentMethod.CreditCard, typeof(CreditCardPaymentRequest))]
[InlineData(PaymentMethod.Ideal, typeof(IdealPaymentRequest))]
public void CreatePaymentRequest(string paymentMethod, Type expectedType) {
var amount = new Amount(Currency.EUR, 50m);
var description = "my-description";
var paymentRequest = new PaymentRequest() {
Amount = amount,
Description = description
};
switch (paymentMethod) {
case PaymentMethod.CreditCard:
paymentRequest = new CreditCardPaymentRequest(paymentRequest) {
CardToken = "card-token"
};
break;
case PaymentMethod.Ideal:
paymentRequest = new IdealPaymentRequest(paymentRequest) {
Issuer = "ideal_issuer"
};
break;
}

paymentRequest.Should().BeOfType(expectedType);
paymentRequest.Amount.Should().Be(amount);
paymentRequest.Description.Should().Be(description);
}
}

0 comments on commit e4996ac

Please sign in to comment.