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)
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)
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)
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)
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)
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"])