public void CardPayment_InValidPayments(Card card, BankAccount bankAccount, TransactionStatus resulTransactionStatus) { var fakeCardRepository = new FakeCardRepository(); var fakeBankAccountRepository = new FakeBankAccountRepository(); var inMemPaymentRepository = new InMemoryPaymentRepository(); var service = new CardPaymentService(fakeCardRepository, fakeBankAccountRepository, inMemPaymentRepository); CardPaymentResponse response = service.DoPayment(new CardPaymentRequest(requestId1, card, bankAccount)); Assert.Equal(resulTransactionStatus, response.TransactionStatus); }
public void CardPayment_DoublePayment() { // arrange var fakeCardRepository = new FakeCardRepository(); var fakeBankAccountRepository = new FakeBankAccountRepository(); var inMemPaymentRepository = new InMemoryPaymentRepository(); // act var service = new CardPaymentService(fakeCardRepository, fakeBankAccountRepository, inMemPaymentRepository); CardPaymentResponse response = service.DoPayment(new CardPaymentRequest(requestId1, FakeCardRepository.GenerateCard_JohnDoe(), FakeBankAccountRepository.GenerateBankAccount_Amazon())); service = new CardPaymentService(new FakeCardRepository(), new FakeBankAccountRepository(), inMemPaymentRepository); // act-assert Assert.Throws <RequestAlreadyProcessedException>(() => service.DoPayment(new CardPaymentRequest(requestId1, FakeCardRepository.GenerateCard_JohnDoe(), FakeBankAccountRepository.GenerateBankAccount_Amazon()))); }