Example #1
0
    def test_too_little_premium_gateways(self):

        data = {}
        data["creditcardnumber"] = "4024007129931746"
        data["cardholder"] = "John Doe"
        data["expirationdate"] = datetime.date(2021,6,5)
        data["securitycode"] = "043"
        data["amount"] = 100

        payment = PaymentForm(data)
        payment = payment.save()
        gateway = PremiumGateway()
        payment = model_to_dict(payment)
        name, status = gateway.process(payment)

        self.assertEqual(status,HTTPStatus.REQUESTED_RANGE_NOT_SATISFIABLE)
Example #2
0
    def test_unavaialble_premium_gateways(self):

        data = {}
        data["creditcardnumber"] = "4024007129931746"
        data["cardholder"] = "John Doe"
        data["expirationdate"] = datetime.date(2021,6,5)
        data["securitycode"] = "043"
        data["amount"] = 600

        payment = PaymentForm(data)
        payment = payment.save()
        gateway = PremiumGateway(False)
        payment = model_to_dict(payment)
        name, status = gateway.process(payment)

        self.assertEqual(status,HTTPStatus.TOO_MANY_REQUESTS)
Example #3
0
    def test_available_expensive_gateway(self):

        data = {}
        data["creditcardnumber"] = "4024007129931746"
        data["cardholder"] = "John Doe"
        data["expirationdate"] = datetime.date(2021,6,5)
        data["securitycode"] = "043"
        data["amount"] = 25

        payment = PaymentForm(data)
        payment = payment.save()
        gateway = ExpensiveGateway()
        payment = model_to_dict(payment)
        name, status = gateway.process(payment)

        self.assertEqual(status,HTTPStatus.OK)
Example #4
0
    def test_functionality_case_premium(self):

        data = {}
        data["creditcardnumber"] = "4024007129931746"
        data["cardholder"] = "John Doe"
        data["expirationdate"] = datetime.date(2021,6,5)
        data["securitycode"] = "043"
        data["amount"] = 501

        payment = PaymentForm(data)
        payment = payment.save()
        payment = model_to_dict(payment)

        name, status = Dispatcher.dispatch(payment)

        self.assertEqual(status, HTTPStatus.OK)
        self.assertEqual(name, Dispatcher.premium_gateway.name)
Example #5
0
    def test_functionality_case_unavailable_cheap(self):

        data = {}
        data["creditcardnumber"] = "4024007129931746"
        data["cardholder"] = "John Doe"
        data["expirationdate"] = datetime.date(2021,6,5)
        data["securitycode"] = "043"
        data["amount"] = 15

        payment = PaymentForm(data)
        payment = payment.save()
        payment = model_to_dict(payment)

        Dispatcher.cheap_gateway = CheapGateway(False)

        name, status = Dispatcher.dispatch(payment)

        self.assertEqual(status, HTTPStatus.TOO_MANY_REQUESTS)
        self.assertEqual(name, Dispatcher.cheap_gateway.name)
Example #6
0
    def test_valid_payment(self):
        
        data = {}
        data["creditcardnumber"] = "4024007129931746"
        data["cardholder"] = "John Doe"
        data["expirationdate"] = datetime.date(2021,6,5)
        data["securitycode"] = "043"
        data["amount"] = 12

        form = PaymentForm(data=data)

        self.assertTrue(form.is_valid())

        payment = form.save()

        self.assertEqual(payment.creditcardnumber, data["creditcardnumber"] )
        self.assertEqual(payment.cardholder, data["cardholder"])
        self.assertEqual(payment.expirationdate, data["expirationdate"])
        self.assertEqual(payment.securitycode, data["securitycode"], )
        self.assertEqual(payment.amount, data["amount"])