Skip to content

Commit a2bfc2c

Browse files
committed
Add checkout test cases for errors
1 parent b515f7c commit a2bfc2c

File tree

1 file changed

+94
-0
lines changed

1 file changed

+94
-0
lines changed

test/CheckoutTest.py

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,20 @@ def test_payment_methods_success_mocked(self):
2727
self.assertEqual("Credit Card via AsiaPay",
2828
result.message['paymentMethods'][3]['name'])
2929

30+
def test_payment_methods_error_mocked(self):
31+
request = {'merchantAccount': "YourMerchantAccount"}
32+
self.ady.client = self.test.create_client_from_file(200, request,
33+
"test/mocks/"
34+
"checkout/"
35+
"paymentmethods-"
36+
"error-forbidden"
37+
"-403.json")
38+
result = self.ady.checkout.payment_methods(request)
39+
self.assertEqual(403, result.message['status'])
40+
self.assertEqual("901", result.message['errorCode'])
41+
self.assertEqual("Invalid Merchant Account", result.message['message'])
42+
self.assertEqual("security", result.message['errorType'])
43+
3044
def test_payments_success_mocked(self):
3145
request = {'amount': {"value": "100000", "currency": "EUR"},
3246
'reference': "123456", 'paymentMethod': {
@@ -52,6 +66,30 @@ def test_payments_success_mocked(self):
5266
self.assertEqual("GREEN",
5367
result.message["additionalData"]['fraudResultType'])
5468

69+
def test_payments_error_mocked(self):
70+
request = {'amount': {"value": "100000", "currency": "EUR"},
71+
'reference': "54431", 'paymentMethod': {
72+
"type": "scheme",
73+
"number": "4111111111111111",
74+
"expiryMonth": "08",
75+
"expiryYear": "2018",
76+
"holderName": "John Smith",
77+
"cvc": "737"
78+
}, 'merchantAccount': "YourMerchantAccount",
79+
'returnUrl': "https://your-company.com/..."}
80+
81+
self.ady.client = self.test.create_client_from_file(200, request,
82+
"test/mocks/"
83+
"checkout/"
84+
"payments-error"
85+
"-invalid-data-422"
86+
".json")
87+
result = self.ady.checkout.payments(request)
88+
self.assertEqual(422, result.message['status'])
89+
self.assertEqual("130", result.message['errorCode'])
90+
self.assertEqual("Reference Missing", result.message['message'])
91+
self.assertEqual("validation", result.message['errorType'])
92+
5593
def test_payments_details_success_mocked(self):
5694
request = {'paymentData': "Hee57361f99....", 'details': {
5795
"MD": "sdfsdfsdf...",
@@ -70,6 +108,23 @@ def test_payments_details_success_mocked(self):
70108
self.assertEqual("AUTHORISED",
71109
result.message['additionalData']['refusalReasonRaw'])
72110

111+
def test_payments_details_error_mocked(self):
112+
request = {'paymentData': "Hee57361f99....", 'details': {
113+
"MD": "sdfsdfsdf...",
114+
"PaRes": "sdkfhskdjfsdf..."
115+
}}
116+
self.ady.client = self.test.create_client_from_file(200, request,
117+
"test/mocks/"
118+
"checkout/"
119+
"paymentsdetails"
120+
"-error-invalid-"
121+
"data-422.json")
122+
result = self.ady.checkout.payments_details(request)
123+
self.assertEqual(422, result.message['status'])
124+
self.assertEqual("101", result.message['errorCode'])
125+
self.assertEqual("Invalid card number", result.message['message'])
126+
self.assertEqual("validation", result.message['errorType'])
127+
73128
def test_payments_session_success_mocked(self):
74129
request = {"reference": "Your order number",
75130
"shopperReference": "yourShopperId_IOfW3k9G2PvXFu2j",
@@ -89,6 +144,30 @@ def test_payments_session_success_mocked(self):
89144
result = self.ady.checkout.payment_session(request)
90145
self.assertIsNotNone(result.message['paymentSession'])
91146

147+
def test_payments_session_error_mocked(self):
148+
request = {"reference": "Your wro order number",
149+
"shopperReference": "yourShopperId_IOfW3k9G2PvXFu2j",
150+
"channel": "iOS",
151+
"token": "WRONG_TOKEN",
152+
"returnUrl": "app://", "countryCode": "NL",
153+
"shopperLocale": "nl_NL",
154+
"sessionValidity": "2017-04-06T13:09:13Z",
155+
"merchantAccount": "YOUR_MERCHANT_ACCOUNT",
156+
'amount': {"value": "17408", "currency": "EUR"}}
157+
158+
self.ady.client = self.test.create_client_from_file(200, request,
159+
"test/mocks/"
160+
"checkout/"
161+
"paymentsession"
162+
"-error-invalid-"
163+
"data-422.json")
164+
result = self.ady.checkout.payment_session(request)
165+
self.assertEqual(422, result.message['status'])
166+
self.assertEqual("14_012", result.message['errorCode'])
167+
self.assertEqual("The provided SDK token could not be parsed.",
168+
result.message['message'])
169+
self.assertEqual("validation", result.message['errorType'])
170+
92171
def test_payments_result_success_mocked(self):
93172
request = {"payload": "VALUE_YOU_GET_FROM_CHECKOUT_SDK"}
94173
self.ady.client = self.test.create_client_from_file(200, request,
@@ -99,3 +178,18 @@ def test_payments_result_success_mocked(self):
99178
result = self.ady.checkout.payment_result(request)
100179
self.assertEqual("8535253563623704", result.message['pspReference'])
101180
self.assertEqual("Authorised", result.message['resultCode'])
181+
182+
def test_payments_result_error_mocked(self):
183+
request = {"payload": "VALUE_YOU_GET_FROM_CHECKOUT_SDK"}
184+
self.ady.client = self.test.create_client_from_file(200, request,
185+
"test/mocks/"
186+
"checkout/"
187+
"paymentsresult"
188+
"-error-invalid-"
189+
"data-payload-"
190+
"422.json")
191+
result = self.ady.checkout.payment_result(request)
192+
self.assertEqual(422, result.message['status'])
193+
self.assertEqual("14_018", result.message['errorCode'])
194+
self.assertEqual("Invalid payload provided", result.message['message'])
195+
self.assertEqual("validation", result.message['errorType'])

0 commit comments

Comments
 (0)