public void TestFailingCreditCardPayment() { //Arrange IPaymentsDao paymentsDao = new PaymentsDao(); ICreditCardProcessor creditCardProcessor = new CreditCardProcessor(); IEftProcessor eftProcessor = new EftProcessor(); PaymentProcessor.PaymentProcessor paymentProcessor = new PaymentProcessor.PaymentProcessor(creditCardProcessor, eftProcessor, paymentsDao); 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 = 10000.00m }; // Act PaymentResult result = paymentProcessor.ProcessPayment(creditCardPayment); // Assert Assert.False(result.Success); Assert.Equal(15, result.ReferenceNumber); }
public PaymentResult ProcessPayment(PaymentDataBase paymentData) { CreditCardPaymentData creditCardData = paymentData as CreditCardPaymentData; CreditCardResult authResult = this.creditCardProcessor.AuthorizeCreditCard(creditCardData.CreditCardNumber, creditCardData.ExpirationDate, creditCardData.Cvv, creditCardData.BillingZipCode, creditCardData.Amount); if (authResult.Authorized == true) { int referenceNumber = paymentsDao.SaveSuccessfulCreditCardPayment(creditCardData, authResult); PaymentResult paymentResult = new PaymentResult() { CustomerAccountNumber = creditCardData.CustomerAccountNumber, PaymentDate = creditCardData.PaymentDate, Success = authResult.Authorized, ReferenceNumber = referenceNumber }; return(paymentResult); } else { int referenceNumber = paymentsDao.SaveFailedCreditCardPayment(creditCardData, authResult); PaymentResult paymentResult = new PaymentResult() { CustomerAccountNumber = creditCardData.CustomerAccountNumber, PaymentDate = creditCardData.PaymentDate, Success = authResult.Authorized, ReferenceNumber = referenceNumber }; return(paymentResult); } }
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 override PaymentResult TryProcessPayment(PaymentDataBase paymentData) { if (paymentData.PaymentType == PaymentType.CREDIT_CARD) { CreditCardPaymentData creditCardData = paymentData as CreditCardPaymentData; CreditCardResult authResult = this.creditCardProcessor.AuthorizeCreditCard(creditCardData.CreditCardNumber, creditCardData.ExpirationDate, creditCardData.Cvv, creditCardData.BillingZipCode, creditCardData.Amount); if (authResult.Authorized == true) { int referenceNumber = paymentsDao.SaveSuccessfulCreditCardPayment(creditCardData, authResult); PaymentResult paymentResult = new PaymentResult() { CustomerAccountNumber = creditCardData.CustomerAccountNumber, PaymentDate = creditCardData.PaymentDate, Success = authResult.Authorized, ReferenceNumber = referenceNumber }; return(paymentResult); } else { int referenceNumber = paymentsDao.SaveFailedCreditCardPayment(creditCardData, authResult); PaymentResult paymentResult = new PaymentResult() { CustomerAccountNumber = creditCardData.CustomerAccountNumber, PaymentDate = creditCardData.PaymentDate, Success = authResult.Authorized, ReferenceNumber = referenceNumber }; return(paymentResult); } } else if (this.NextPaymentTypeHandler != null) { return(this.NextPaymentTypeHandler.TryProcessPayment(paymentData)); } else { throw new ApplicationException("Unknown payment type"); } }
public void TestSuccessfulCreditCardPayment() { //Arrange PaymentProcessor paymentProcessor = this.CreatePaymentProcessor(); CreditCardPaymentData creditCardPayment = new CreditCardPaymentData() { CreditCardNumber = SampleData.CARD_NUMBER_ONE, ExpirationDate = "10/2019", Cvv = "755", CustomerAccountNumber = "00012345", PaymentDate = DateTime.Today, BillingZipCode = "60067", CardholderName = "John Doe", Amount = 100.00m }; // Act PaymentResult result = paymentProcessor.ProcessPayment(creditCardPayment); // Assert Assert.True(result.Success); Assert.Equal(10, result.ReferenceNumber); }
public int SaveFailedCreditCardPayment(CreditCardPaymentData creditCardData, CreditCardResult result) { // This would save to a database return(15); }
public int SaveSuccessfulCreditCardPayment(CreditCardPaymentData creditCardData, CreditCardResult result) { // This would save to a database return(10); }