package hs.fulda.de.ci.exam.project; import org.junit.Test; import static hs.fulda.de.ci.exam.project.PaymentStatus.*; import static hs.fulda.de.ci.exam.project.ReservationStatus.Confirmed; import static org.junit.jupiter.api.Assertions.assertEquals; public class PaymentTest { @Test public void should_be_possible_to_pay_with_credit_card(){ Payment credit_card_payment = new CreditCardTransaction(11, "139€", Unpaid, "01234567890123456789"); FlightReservation reservation = new FlightReservation(); reservation.makePayment(credit_card_payment); assertEquals(Confirmed, reservation.getStatus()); assertEquals(Completed, credit_card_payment.status); } @Test public void should_be_possible_to_pay_with_bank_account(){ FlightReservation reservation = new FlightReservation(); BankTransaction payment = new BankTransaction(11, "139€", Unpaid, "Sparkasse Fulda", "DE01234567890123456789"); reservation.makePayment(payment); assertEquals(Confirmed, reservation.getStatus()); assertEquals(Completed, payment.status); } @Test public void paymentShould_not_be_possible_if_credit_card_deatils_is_wrong(){ CreditCardTransaction credit_card_payment = new CreditCardTransaction(11, "139€", Unpaid, "123"); FlightReservation reservation = new FlightReservation(); reservation.makePayment(credit_card_payment); assertEquals(ReservationStatus.Cancelled, reservation.getStatus()); assertEquals(Failed, credit_card_payment.status); } @Test public void paymentShould_not_be_possible_if_iban_is_wrong(){ BankTransaction bank_payment = new BankTransaction(11, "139€", Unpaid, "Sparkasse Fulda", "DE012"); FlightReservation reservation = new FlightReservation(); reservation.makePayment(bank_payment); assertEquals(ReservationStatus.Cancelled, reservation.getStatus()); assertEquals(Failed, bank_payment.status); } @Test public void cashPaymentShouldBePossible(){ CashTransaction cash_payment = new CashTransaction(11, "139€", Unpaid); FlightReservation reservation = new FlightReservation(); reservation.makePayment(cash_payment); assertEquals(Confirmed, reservation.getStatus()); assertEquals(Completed, cash_payment.status); } }