Пример #1
0
        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);
        }
Пример #2
0
        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);
        }