Completed
Push — master ( 1f0760...e94022 )
by Authorize.Net
01:28
created

testGetTransactionDetails_AssertNestedField()   A

Complexity

Conditions 1

Size

Total Lines 14

Duplication

Lines 14
Ratio 100 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
dl 14
loc 14
rs 9.4285
c 2
b 0
f 0
cc 1
1
'''
2
Created on Nov 16, 2015
3
4
@author: krgupta
5
'''
6
from authorizenet import apicontractsv1
7
from authorizenet.constants import constants
8
from authorizenet.apicontractsv1 import CTD_ANON
9
from authorizenet.apicontrollers import *
10
from decimal import *
11
import datetime
12
import unittest
13
from tests import apitestbase
14
from authorizenet import utility
15
     
16
class test_ReadProperty(apitestbase.ApiTestBase):
17
    def testPropertyFromFile(self):
18
        login= utility.helper.getproperty("api.login.id")
19
        transactionkey = utility.helper.getproperty("transaction.key")
20
        self.assertIsNotNone(login)
21
        self.assertIsNotNone(transactionkey)
22
23
class shippingAddressUnitTest(apitestbase.ApiTestBase): 
24
    def testget_customer_shipping_address(self):
25
        # create get shipping address request
26
        getShippingAddress = apicontractsv1.getCustomerShippingAddressRequest()
27
        getShippingAddress.merchantAuthentication = self.merchantAuthentication
28
        getShippingAddress.customerProfileId = '40812683'
29
        getShippingAddress.customerAddressId = '38558024'
30
    
31
        # Make the API call
32
        getShippingAddressController = getCustomerShippingAddressController(getShippingAddress)
33
        getShippingAddressController.execute()
34
        response = getShippingAddressController.getresponse()
35
        self.assertEquals('Ok', response.messages.resultCode)  
36
        
37
class customerprofileUnitTest(apitestbase.ApiTestBase):
38
    def testget_customer_profile(self):
39
        getCustomerProfile = apicontractsv1.getCustomerProfileRequest()
40
        getCustomerProfile.merchantAuthentication = self.merchantAuthentication
41
        getCustomerProfile.customerProfileId = '40812683'
42
        controller = getCustomerProfileController(getCustomerProfile)
43
        controller.execute()
44
        response = controller.getresponse()
45
        self.assertEquals('Ok', response.messages.resultCode)
46
47
48
class test_TransactionReportingUnitTest(apitestbase.ApiTestBase):
49
    def testGetTransactionDetails(self):    
50
        gettransactiondetailsrequest = apicontractsv1.getTransactionDetailsRequest()
51
        gettransactiondetailsrequest.merchantAuthentication = self.merchantAuthentication
52
        gettransactiondetailsrequest.transId ='20000152262' #update valid transaction id
53
        gettransactiondetailscontroller = getTransactionDetailsController(gettransactiondetailsrequest)
54
        gettransactiondetailscontroller.execute()
55
        response =  gettransactiondetailscontroller.getresponse()
56
        self.assertEquals('Ok', response.messages.resultCode)    
57
        self.assertIsNotNone(response.transaction.payment.creditCard.cardNumber) 
58
#         value = getattr(response.messages.message, 'text')
59
#         print ("value = %s" %value)
60
#         if hasattr(response, 'messages') == True:
61
#             if hasattr(response.messages, 'message') == True:
62
#                 if hasattr(response.messages.message, 'text') == True:
63
#                     print ("message code = %s " %(response.messages.message.text)) 
64
           
65
class test_RecurringBillingTest(apitestbase.ApiTestBase):
66
    createdSubscriptionId = None
67
   
68
    def testCreateSubscription(self):
69
        createsubscriptionrequest = apicontractsv1.ARBCreateSubscriptionRequest()
70
        createsubscriptionrequest.merchantAuthentication = self.merchantAuthentication
71
        createsubscriptionrequest.refId = 'Sample'
72 View Code Duplication
        createsubscriptionrequest.subscription = self.subscriptionOne
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
73
        arbcreatesubscriptioncontroller = ARBCreateSubscriptionController(createsubscriptionrequest)
74
        arbcreatesubscriptioncontroller.execute()
75
        response = arbcreatesubscriptioncontroller.getresponse()
76
        #print ("Test named 'testCreateSubscription' has response.subscriptionId = %s" %response.subscriptionId)
77
        self.assertIsNotNone(response.subscriptionId)
78
        self.assertEquals('Ok', response.messages.resultCode)
79
        self.__class__.createdSubscriptionId = response.subscriptionId
80
81
#     def testCreateSubscription_withResponseIDValue(self):    
82
#         createsubscriptionrequest = apicontractsv1.ARBCreateSubscriptionRequest()
83
#         createsubscriptionrequest.merchantAuthentication = self.merchantAuthentication
84
#         createsubscriptionrequest.refId = 'Sample'
85
#         createsubscriptionrequest.subscription = self.subscriptionOne #required field
86
#         arbcreatesubscriptioncontroller = ARBCreateSubscriptionController(createsubscriptionrequest)
87
#         arbcreatesubscriptioncontroller.execute()
88
#         response = arbcreatesubscriptioncontroller.getresponse()
89
#         print ("Test named 'testCreateSubscription_withResponseIDValue' has response.subscriptionId = %s" %response.subscriptionId)
90
#         self.assertEquals('Ok', response.messages.resultCode) 
91
92
  
93 View Code Duplication
    def testgetsubscription(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
94
        getSubscription = apicontractsv1.ARBGetSubscriptionRequest()
95
        getSubscription.merchantAuthentication = self.merchantAuthentication
96
        #getSubscription.subscriptionId = myresponse.subscriptionId.text
97
        getSubscription.subscriptionId = str(self.__class__.createdSubscriptionId) #update valid subscription id 
98
        #getSubscription.subscriptionId = self.__class__.createdSubscriptionId
99
        getSubscriptionController = ARBGetSubscriptionController(getSubscription)
100
        getSubscriptionController.execute()
101
        response = getSubscriptionController.getresponse()
102
        self.assertIsNotNone(response.subscription.name)
103
        self.assertEquals('Ok', response.messages.resultCode) 
104
    
105
    def testcancelSubscription(self):   
106
        cancelsubscriptionrequest = apicontractsv1.ARBCancelSubscriptionRequest()
107
        cancelsubscriptionrequest.merchantAuthentication = self.merchantAuthentication
108
        cancelsubscriptionrequest.refId = 'Sample'
109
        cancelsubscriptionrequest.subscriptionId = str(self.__class__.createdSubscriptionId) #input valid subscriptionId
110
        #cancelsubscriptionrequest.subscriptionId = self.__class__.createdSubscriptionId
111
        
112
        cancelsubscriptioncontroller = ARBCancelSubscriptionController (cancelsubscriptionrequest)
113
        cancelsubscriptioncontroller.execute()  
114
        response = cancelsubscriptioncontroller.getresponse()
115
        self.assertEquals('Ok', response.messages.resultCode)  
116
 
117
class paymentTransactionUnitTest(apitestbase.ApiTestBase): 
118
    def testauthCaptureTransaction(self):  
119
        transactionrequesttype = apicontractsv1.transactionRequestType()
120
        transactionrequesttype.transactionType = "authCaptureTransaction"
121
        transactionrequesttype.amount = self.amount
122
        transactionrequesttype.payment = self.payment
123
        transactionrequesttype.order = self.order
124
        transactionrequesttype.customer = self.customerData
125
        transactionrequesttype.billTo = self.billTo
126
             
127
        createtransactionrequest = apicontractsv1.createTransactionRequest()
128
        createtransactionrequest.merchantAuthentication = self.merchantAuthentication
129
        createtransactionrequest.refId = self.ref_id
130
        createtransactionrequest.transactionRequest = transactionrequesttype
131
        createtransactioncontroller = createTransactionController(createtransactionrequest)
132
        createtransactioncontroller.execute()
133
        response = createtransactioncontroller.getresponse()
134
        self.assertIsNotNone(response)
135
        self.assertIsNotNone(response.transactionResponse)
136
        self.assertIsNotNone(response.transactionResponse.transId)
137
        self.assertIsNot("0", response.transactionResponse.transId)
138
            
139
    def testauthOnlyContinueTransaction(self):      
140
        transactionrequesttype = apicontractsv1.transactionRequestType()
141
        transactionrequesttype.transactionType = "authCaptureTransaction"
142
        transactionrequesttype.amount = self.amount
143
        transactionrequesttype.payment = self.payment
144
        transactionrequesttype.order = self.order
145
        transactionrequesttype.customer = self.customerData
146
        transactionrequesttype.billTo = self.billTo
147
             
148
        createtransactionrequest = apicontractsv1.createTransactionRequest()
149
        createtransactionrequest.merchantAuthentication = self.merchantAuthentication
150
        createtransactionrequest.refId = self.ref_id
151
        createtransactionrequest.transactionRequest = transactionrequesttype
152
        createtransactioncontroller = createTransactionController(createtransactionrequest)
153
        createtransactioncontroller.execute()
154
        response = createtransactioncontroller.getresponse()
155
        self.assertIsNotNone(response.transactionResponse)
156
        self.assertIsNotNone(response.transactionResponse.transId)
157
            
158
class pyxbBinding(apitestbase.ApiTestBase):
159
    def testCreateSubscription_DeSerialize(self):
160
        arbXMLrequest = '<?xml version="1.0" encoding="utf-8"?><ARBCreateSubscriptionResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"><refId>Sample</refId><messages><resultCode>Ok</resultCode><message><code>I00001</code><text>Successful.</text></message></messages><subscriptionId>3263738</subscriptionId><gupta>Jan</gupta><profile><customerProfileId>40712423</customerProfileId><customerPaymentProfileId>36983905</customerPaymentProfileId></profile><kriti>11</kriti></ARBCreateSubscriptionResponse>'
161
        #print( "ARBCreateTransaction Request: %s \n" % arbXMLrequest )
162
        try:
163
            #deserialize XML to object   
164
            deserializedObject = None
165
            deserializedObject = apicontractsv1.CreateFromDocument(arbXMLrequest)           
166
            self.assertIsNotNone(deserializedObject, "Null deserializedObject ")
167
         
168
            deseriaziedArbXmlRequest = deserializedObject.toxml(encoding=constants.xml_encoding, element_name='ARBCreateSubscriptionResponse') 
169
            deseriaziedArbXmlRequest = deseriaziedArbXmlRequest.replace(constants.nsNamespace1, '')
170
            deseriaziedArbXmlRequest = deseriaziedArbXmlRequest.replace(constants.nsNamespace2, '')
171
            logging.debug( "Good Dom Request: %s " % deseriaziedArbXmlRequest )
172
#             print( "ARB Dom Request: %s \n" % deseriaziedArbXmlRequest )
173
#             print("de-serialized successfully. ARBCreateTransaction \n ")
174
        except Exception as ex:
175
#             print("failed to de-serialized successfully. ARBCreateTransaction \n ")
176
            logging.error( 'Exception: %s, %s', type(ex), ex.args )        
177
   
178
# Leave this test commented            
179
#     def testCreateSubscription_missingElementStillAssertOk(self):    
180
#         createsubscriptionrequest = apicontractsv1.ARBCreateSubscriptionRequest()
181
#         createsubscriptionrequest.merchantAuthentication = self.merchantAuthentication
182
#         #createsubscriptionrequest.refId = 'Sample'
183
#         #createsubscriptionrequest.subscription = self.subscriptionOne #required field
184
#         arbcreatesubscriptioncontroller = ARBCreateSubscriptionController(createsubscriptionrequest)
185
#         arbcreatesubscriptioncontroller.execute()
186
#         response = arbcreatesubscriptioncontroller.getresponse()
187
#         self.assertEquals('Ok', response.messages.resultCode)
188
                   
189
   
190 View Code Duplication
    def testGetTransactionDetails_AssertNestedField(self):     
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
191
        gettransactiondetailsrequest = apicontractsv1.getTransactionDetailsRequest()
192
        gettransactiondetailsrequest.merchantAuthentication = self.merchantAuthentication
193
        gettransactiondetailsrequest.transId = '20000152262' #update valid transaction id
194
        gettransactiondetailscontroller = getTransactionDetailsController(gettransactiondetailsrequest)
195
        gettransactiondetailscontroller.execute()
196
        response =  gettransactiondetailscontroller.getresponse()
197
        self.assertEquals('Ok', response.messages.resultCode) 
198
        self.assertIsNotNone(response.transaction.settleAmount)    
199
        self.assertIsNotNone(response.transaction.payment.creditCard.cardNumber)
200
        self.assertIsNotNone(response.transaction.customer.id)
201
        self.assertIsNotNone(response.transaction.billTo.company)
202
        self.assertIsNotNone(response.transaction.entryMethod)
203
        self.assertIsNotNone(response.transaction.order.invoiceNumber)     
204
            
205 View Code Duplication
    def testGetTransactionDetails_UserAddsInvalidPropertyWhichIsNOTInRequestObject(self):     
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
206
        gettransactiondetailsrequest = apicontractsv1.getTransactionDetailsRequest()
207
        gettransactiondetailsrequest.merchantAuthentication = self.merchantAuthentication
208
        gettransactiondetailsrequest.transId ='20000152262' #update valid transaction id
209
        gettransactiondetailsrequest.abc = ' ' #user adds any extra element 
210
        gettransactiondetailscontroller = getTransactionDetailsController(gettransactiondetailsrequest)
211
        gettransactiondetailscontroller.execute()
212
        response =  gettransactiondetailscontroller.getresponse()
213
        self.assertEquals('Ok', response.messages.resultCode) 
214
        self.assertIsNotNone(response.transaction.settleAmount)    
215
        self.assertIsNotNone(response.transaction.payment.creditCard.cardNumber)
216
        self.assertIsNotNone(response.transaction.customer.id)
217
        self.assertIsNotNone(response.transaction.billTo.company)
218
        self.assertIsNotNone(response.transaction.entryMethod)
219
        self.assertIsNotNone(response.transaction.order.invoiceNumber)
220
221
'''
222
class test_PaymentTransactions(apitestbase.ApiTestBase):
223
    #Testing SDK SimpleType
224
    accountNumber = None
225
    def test_accountTypeEnumTestSimpleType(self):        
226
        payment = apicontractsv1.paymentType()
227
        
228
        bankAccountType = apicontractsv1.bankAccountType()
229
        accountType = apicontractsv1.bankAccountTypeEnum
230
        bankAccountType.accountType = accountType.checking
231
        bankAccountType.routingNumber = "125000024"
232
        bankAccountType.accountNumber = "12345678"
233
        bankAccountType.nameOnAccount = "John Doe"
234
        
235
        transactionrequest = apicontractsv1.transactionRequestType()
236
        transactionrequest.transactionType = "authCaptureTransaction"
237
        transactionrequest.amount = Decimal ('2.55')
238
        transactionrequest.payment = payment
239
        transactionrequest.payment.bankAccount = bankAccountType
240
        
241
        
242
        createtransactionrequest = apicontractsv1.createTransactionRequest()
243
        createtransactionrequest.merchantAuthentication = self.merchantAuthentication
244
        createtransactionrequest.refId = "MerchantID-0001"
245
        
246
        createtransactionrequest.transactionRequest = transactionrequest
247
        createtransactioncontroller = createTransactionController(createtransactionrequest)
248
        createtransactioncontroller.execute()
249
        
250
        response = createtransactioncontroller.getresponse()
251
        self.assertEquals('Ok', response.messages.resultCode) 
252
#        if (response.messages.resultCode=="Ok"):
253
#             print "Transaction ID : %s" % response.transactionResponse.transId
254
#             print response.transactionResponse.messages.message[0].description
255
#             print response.transactionResponse.messages.message[0].description
256
#             print response.transactionResponse.accountNumber
257
        
258
#        else:
259
#             print "response code: %s" % response.messages.resultCode
260
        self.__class__.accountNumber = response.transactionResponse.accountNumber
261
            
262
            
263
    def test_accountnumber_TestSimpleType(self):
264
        account  = self.__class__.accountNumber + 1 
265
        #print "account after adding 1 = %s" %account   
266
'''         
267
'''    
268
class test_ProductionURL(apitestbase.ApiTestBase):  
269
    #Tests will run only with production credentials
270
    
271
          
272
    def testGetSettledBatchList(self):
273
        settledBatchListRequest = apicontractsv1.getSettledBatchListRequest() 
274
        settledBatchListRequest.merchantAuthentication = self.merchantAuthentication
275
        settledBatchListController = getSettledBatchListController(settledBatchListRequest)
276
        customEndpoint = constants.PRODUCTION 
277
        apicontrollersbase.APIOperationBase.setenvironment(customEndpoint)
278
        settledBatchListController.execute() 
279
        response = settledBatchListController.getresponse() 
280
        self.assertEquals('Ok', response.messages.resultCode) 
281
    
282
    def testGetListofSubscriptions(self):    
283
        sorting = apicontractsv1.ARBGetSubscriptionListSorting()
284
        sorting.orderBy = apicontractsv1.ARBGetSubscriptionListOrderFieldEnum.id
285
        sorting.orderDescending = "false"
286
        paging = apicontractsv1.Paging()
287
        paging.limit = 1000
288
        paging.offset = 1
289
        GetListofSubscriptionRequest = apicontractsv1.ARBGetSubscriptionListRequest()
290
        GetListofSubscriptionRequest.merchantAuthentication = self.merchantAuthentication
291
        GetListofSubscriptionRequest.refId = "Sample"
292
        GetListofSubscriptionRequest.searchType = apicontractsv1.ARBGetSubscriptionListSearchTypeEnum.subscriptionInactive
293
        GetListofSubscriptionRequest.sorting = sorting
294
        GetListofSubscriptionRequest.paging = paging
295
        arbgetsubscriptionlistcontroller = ARBGetSubscriptionListController(GetListofSubscriptionRequest)
296
        customEndpoint = constants.PRODUCTION 
297
        apicontrollersbase.APIOperationBase.setenvironment(customEndpoint)
298
        arbgetsubscriptionlistcontroller.execute()
299
        response = arbgetsubscriptionlistcontroller.getresponse()
300
        self.assertEquals('Ok', response.messages.resultCode) 
301
'''        
302
if __name__ =='__main__':
303
    unittest.main()  
304