public void TestSuccessfulCreditCardPayment() { //Arrange IPaymentsDao paymentsDao = new PaymentsDao(); var creditCardHandler = new CreditCardPaymentTypeHandler(new CreditCardService(), paymentsDao); var eftHandler = new EftPaymentTypeHandler(new EftProcessor(), paymentsDao); var checkHandler = new CheckPaymentTypeHandler(paymentsDao); creditCardHandler.NextPaymentHandler = eftHandler; eftHandler.NextPaymentHandler = checkHandler; var paymentProcessor = new PaymentProcessor(creditCardHandler); CreditCardPaymentData creditCardPayment = new CreditCardPaymentData() { CreditCardNumber = SampleData.CARD_NUMBER_ONE, ExpirationDate = "10/2019", Cvv = "755", CustomerAccountNumber = "00012345", PaymentDate = DateTime.Today, BillingZipCode = "60067", CardholderName = "John Doe", PaymentType = PaymentType.CREDIT_CARD, Amount = 100.00m }; // Act PaymentResult result = paymentProcessor.ProcessPayment(creditCardPayment); // Assert Assert.True(result.Success); Assert.Equal(10, result.ReferenceNumber); }
public void TestSuccessfulEftPayment() { //Arrange IPaymentsDao paymentsDao = new PaymentsDao(); var creditCardHandler = new CreditCardPaymentTypeHandler(new CreditCardService(), paymentsDao); var eftHandler = new EftPaymentTypeHandler(new EftProcessor(), paymentsDao); var checkHandler = new CheckPaymentTypeHandler(paymentsDao); creditCardHandler.NextPaymentHandler = eftHandler; eftHandler.NextPaymentHandler = checkHandler; var paymentProcessor = new PaymentProcessor(creditCardHandler); EftPaymentData eftPaymentData = new EftPaymentData() { CustomerAccountNumber = "00012345", PaymentDate = DateTime.Today, PaymentType = PaymentType.EFT, Amount = 100.00m, RoutingNumber = SampleData.BANK_ROUTING_ONE, BankAccountNumber = SampleData.BANK_ACCOUNT_ONE, AccountType = BankAccountType.CHECKING }; // Act PaymentResult result = paymentProcessor.ProcessPayment(eftPaymentData); // Assert Assert.True(result.Success); Assert.Equal(20, result.ReferenceNumber); }
public PaymentProcessor CreatePaymentProcessor() { IPaymentsDao paymentsDao = new PaymentsDao(); ICreditCardProcessor creditCardProcessor = new CreditCardProcessor(); IEftProcessor eftProcessor = new EftProcessor(); CheckPaymentTypeHandler checkHandler = new CheckPaymentTypeHandler(null, paymentsDao); EftPaymentTypeHandler eftPaymentHandler = new EftPaymentTypeHandler(checkHandler, eftProcessor, paymentsDao); CreditCardPaymentTypeHandler creditCardHandler = new CreditCardPaymentTypeHandler(eftPaymentHandler, creditCardProcessor, paymentsDao); PaymentProcessor paymentProcessor = new PaymentProcessor(creditCardHandler); return(paymentProcessor); }