mattbauer-activemerchant 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. data/CHANGELOG +459 -0
  2. data/CONTRIBUTERS +118 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README +134 -0
  5. data/Rakefile +153 -0
  6. data/gem-public_cert.pem +20 -0
  7. data/init.rb +3 -0
  8. data/lib/active_merchant.rb +60 -0
  9. data/lib/active_merchant/billing/avs_result.rb +98 -0
  10. data/lib/active_merchant/billing/base.rb +57 -0
  11. data/lib/active_merchant/billing/check.rb +68 -0
  12. data/lib/active_merchant/billing/credit_card.rb +159 -0
  13. data/lib/active_merchant/billing/credit_card_formatting.rb +21 -0
  14. data/lib/active_merchant/billing/credit_card_methods.rb +125 -0
  15. data/lib/active_merchant/billing/cvv_result.rb +38 -0
  16. data/lib/active_merchant/billing/expiry_date.rb +34 -0
  17. data/lib/active_merchant/billing/gateway.rb +158 -0
  18. data/lib/active_merchant/billing/gateways.rb +3 -0
  19. data/lib/active_merchant/billing/gateways/authorize_net.rb +657 -0
  20. data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +703 -0
  21. data/lib/active_merchant/billing/gateways/beanstream.rb +102 -0
  22. data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +233 -0
  23. data/lib/active_merchant/billing/gateways/beanstream_interac.rb +54 -0
  24. data/lib/active_merchant/billing/gateways/bogus.rb +98 -0
  25. data/lib/active_merchant/billing/gateways/braintree.rb +17 -0
  26. data/lib/active_merchant/billing/gateways/card_stream.rb +230 -0
  27. data/lib/active_merchant/billing/gateways/cyber_source.rb +406 -0
  28. data/lib/active_merchant/billing/gateways/data_cash.rb +595 -0
  29. data/lib/active_merchant/billing/gateways/efsnet.rb +229 -0
  30. data/lib/active_merchant/billing/gateways/elavon.rb +106 -0
  31. data/lib/active_merchant/billing/gateways/eway.rb +277 -0
  32. data/lib/active_merchant/billing/gateways/exact.rb +222 -0
  33. data/lib/active_merchant/billing/gateways/first_pay.rb +172 -0
  34. data/lib/active_merchant/billing/gateways/instapay.rb +164 -0
  35. data/lib/active_merchant/billing/gateways/linkpoint.rb +396 -0
  36. data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +154 -0
  37. data/lib/active_merchant/billing/gateways/merchant_ware.rb +283 -0
  38. data/lib/active_merchant/billing/gateways/modern_payments.rb +36 -0
  39. data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +214 -0
  40. data/lib/active_merchant/billing/gateways/moneris.rb +295 -0
  41. data/lib/active_merchant/billing/gateways/moneris_usa.rb +258 -0
  42. data/lib/active_merchant/billing/gateways/net_registry.rb +189 -0
  43. data/lib/active_merchant/billing/gateways/netbilling.rb +168 -0
  44. data/lib/active_merchant/billing/gateways/ogone.rb +259 -0
  45. data/lib/active_merchant/billing/gateways/pay_junction.rb +392 -0
  46. data/lib/active_merchant/billing/gateways/pay_secure.rb +120 -0
  47. data/lib/active_merchant/billing/gateways/payflow.rb +236 -0
  48. data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +207 -0
  49. data/lib/active_merchant/billing/gateways/payflow/payflow_express_response.rb +39 -0
  50. data/lib/active_merchant/billing/gateways/payflow/payflow_response.rb +13 -0
  51. data/lib/active_merchant/billing/gateways/payflow_express.rb +138 -0
  52. data/lib/active_merchant/billing/gateways/payflow_express_uk.rb +15 -0
  53. data/lib/active_merchant/billing/gateways/payflow_uk.rb +21 -0
  54. data/lib/active_merchant/billing/gateways/payment_express.rb +230 -0
  55. data/lib/active_merchant/billing/gateways/paypal.rb +121 -0
  56. data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +325 -0
  57. data/lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb +38 -0
  58. data/lib/active_merchant/billing/gateways/paypal_ca.rb +13 -0
  59. data/lib/active_merchant/billing/gateways/paypal_express.rb +130 -0
  60. data/lib/active_merchant/billing/gateways/paypal_express_common.rb +20 -0
  61. data/lib/active_merchant/billing/gateways/plugnpay.rb +292 -0
  62. data/lib/active_merchant/billing/gateways/psigate.rb +214 -0
  63. data/lib/active_merchant/billing/gateways/psl_card.rb +306 -0
  64. data/lib/active_merchant/billing/gateways/quickpay.rb +213 -0
  65. data/lib/active_merchant/billing/gateways/realex.rb +200 -0
  66. data/lib/active_merchant/billing/gateways/sage.rb +146 -0
  67. data/lib/active_merchant/billing/gateways/sage/sage_bankcard.rb +88 -0
  68. data/lib/active_merchant/billing/gateways/sage/sage_core.rb +110 -0
  69. data/lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb +97 -0
  70. data/lib/active_merchant/billing/gateways/sage_pay.rb +308 -0
  71. data/lib/active_merchant/billing/gateways/secure_pay.rb +31 -0
  72. data/lib/active_merchant/billing/gateways/secure_pay_au.rb +157 -0
  73. data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +113 -0
  74. data/lib/active_merchant/billing/gateways/skip_jack.rb +442 -0
  75. data/lib/active_merchant/billing/gateways/smart_ps.rb +254 -0
  76. data/lib/active_merchant/billing/gateways/trans_first.rb +127 -0
  77. data/lib/active_merchant/billing/gateways/transax.rb +26 -0
  78. data/lib/active_merchant/billing/gateways/trust_commerce.rb +418 -0
  79. data/lib/active_merchant/billing/gateways/usa_epay.rb +194 -0
  80. data/lib/active_merchant/billing/gateways/verifi.rb +228 -0
  81. data/lib/active_merchant/billing/gateways/viaklix.rb +189 -0
  82. data/lib/active_merchant/billing/gateways/wirecard.rb +318 -0
  83. data/lib/active_merchant/billing/integrations.rb +22 -0
  84. data/lib/active_merchant/billing/integrations/action_view_helper.rb +79 -0
  85. data/lib/active_merchant/billing/integrations/bogus.rb +22 -0
  86. data/lib/active_merchant/billing/integrations/bogus/helper.rb +17 -0
  87. data/lib/active_merchant/billing/integrations/bogus/notification.rb +11 -0
  88. data/lib/active_merchant/billing/integrations/bogus/return.rb +10 -0
  89. data/lib/active_merchant/billing/integrations/chronopay.rb +22 -0
  90. data/lib/active_merchant/billing/integrations/chronopay/helper.rb +81 -0
  91. data/lib/active_merchant/billing/integrations/chronopay/notification.rb +156 -0
  92. data/lib/active_merchant/billing/integrations/chronopay/return.rb +10 -0
  93. data/lib/active_merchant/billing/integrations/gestpay.rb +26 -0
  94. data/lib/active_merchant/billing/integrations/gestpay/common.rb +42 -0
  95. data/lib/active_merchant/billing/integrations/gestpay/helper.rb +70 -0
  96. data/lib/active_merchant/billing/integrations/gestpay/notification.rb +83 -0
  97. data/lib/active_merchant/billing/integrations/gestpay/return.rb +10 -0
  98. data/lib/active_merchant/billing/integrations/helper.rb +93 -0
  99. data/lib/active_merchant/billing/integrations/hi_trust.rb +26 -0
  100. data/lib/active_merchant/billing/integrations/hi_trust/helper.rb +58 -0
  101. data/lib/active_merchant/billing/integrations/hi_trust/notification.rb +59 -0
  102. data/lib/active_merchant/billing/integrations/hi_trust/return.rb +67 -0
  103. data/lib/active_merchant/billing/integrations/nochex.rb +87 -0
  104. data/lib/active_merchant/billing/integrations/nochex/helper.rb +68 -0
  105. data/lib/active_merchant/billing/integrations/nochex/notification.rb +94 -0
  106. data/lib/active_merchant/billing/integrations/nochex/return.rb +10 -0
  107. data/lib/active_merchant/billing/integrations/notification.rb +62 -0
  108. data/lib/active_merchant/billing/integrations/paypal.rb +40 -0
  109. data/lib/active_merchant/billing/integrations/paypal/helper.rb +119 -0
  110. data/lib/active_merchant/billing/integrations/paypal/notification.rb +154 -0
  111. data/lib/active_merchant/billing/integrations/paypal/return.rb +10 -0
  112. data/lib/active_merchant/billing/integrations/quickpay.rb +18 -0
  113. data/lib/active_merchant/billing/integrations/quickpay/helper.rb +72 -0
  114. data/lib/active_merchant/billing/integrations/quickpay/notification.rb +74 -0
  115. data/lib/active_merchant/billing/integrations/return.rb +35 -0
  116. data/lib/active_merchant/billing/integrations/two_checkout.rb +23 -0
  117. data/lib/active_merchant/billing/integrations/two_checkout/helper.rb +59 -0
  118. data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +114 -0
  119. data/lib/active_merchant/billing/integrations/two_checkout/return.rb +17 -0
  120. data/lib/active_merchant/billing/response.rb +32 -0
  121. data/lib/active_merchant/lib/connection.rb +170 -0
  122. data/lib/active_merchant/lib/country.rb +319 -0
  123. data/lib/active_merchant/lib/error.rb +4 -0
  124. data/lib/active_merchant/lib/post_data.rb +22 -0
  125. data/lib/active_merchant/lib/posts_data.rb +47 -0
  126. data/lib/active_merchant/lib/requires_parameters.rb +16 -0
  127. data/lib/active_merchant/lib/utils.rb +18 -0
  128. data/lib/active_merchant/lib/validateable.rb +76 -0
  129. data/lib/certs/cacert.pem +7815 -0
  130. data/lib/support/gateway_support.rb +58 -0
  131. data/script/destroy +14 -0
  132. data/script/generate +14 -0
  133. data/test/fixtures.yml +353 -0
  134. data/test/remote/gateways/remote_authorize_net_cim_test.rb +459 -0
  135. data/test/remote/gateways/remote_authorize_net_test.rb +145 -0
  136. data/test/remote/gateways/remote_beanstream_interac_test.rb +53 -0
  137. data/test/remote/gateways/remote_beanstream_test.rb +150 -0
  138. data/test/remote/gateways/remote_braintree_test.rb +154 -0
  139. data/test/remote/gateways/remote_card_stream_test.rb +148 -0
  140. data/test/remote/gateways/remote_cyber_source_test.rb +144 -0
  141. data/test/remote/gateways/remote_data_cash_test.rb +357 -0
  142. data/test/remote/gateways/remote_efsnet_test.rb +81 -0
  143. data/test/remote/gateways/remote_elavon_test.rb +66 -0
  144. data/test/remote/gateways/remote_eway_test.rb +74 -0
  145. data/test/remote/gateways/remote_exact_test.rb +60 -0
  146. data/test/remote/gateways/remote_first_pay_test.rb +87 -0
  147. data/test/remote/gateways/remote_instapay_test.rb +61 -0
  148. data/test/remote/gateways/remote_linkpoint_test.rb +112 -0
  149. data/test/remote/gateways/remote_merchant_e_solutions_test.rb +173 -0
  150. data/test/remote/gateways/remote_merchant_ware_test.rb +113 -0
  151. data/test/remote/gateways/remote_modern_payments_cim_test.rb +58 -0
  152. data/test/remote/gateways/remote_modern_payments_test.rb +43 -0
  153. data/test/remote/gateways/remote_moneris_test.rb +118 -0
  154. data/test/remote/gateways/remote_moneris_usa_test.rb +115 -0
  155. data/test/remote/gateways/remote_net_registry_test.rb +85 -0
  156. data/test/remote/gateways/remote_netbilling_test.rb +70 -0
  157. data/test/remote/gateways/remote_ogone_test.rb +108 -0
  158. data/test/remote/gateways/remote_pay_junction_test.rb +143 -0
  159. data/test/remote/gateways/remote_pay_secure_test.rb +39 -0
  160. data/test/remote/gateways/remote_payflow_express_test.rb +50 -0
  161. data/test/remote/gateways/remote_payflow_test.rb +237 -0
  162. data/test/remote/gateways/remote_payflow_uk_test.rb +173 -0
  163. data/test/remote/gateways/remote_payment_express_test.rb +136 -0
  164. data/test/remote/gateways/remote_paypal_express_test.rb +49 -0
  165. data/test/remote/gateways/remote_paypal_test.rb +178 -0
  166. data/test/remote/gateways/remote_plugnpay_test.rb +72 -0
  167. data/test/remote/gateways/remote_psigate_test.rb +50 -0
  168. data/test/remote/gateways/remote_psl_card_test.rb +125 -0
  169. data/test/remote/gateways/remote_quickpay_test.rb +190 -0
  170. data/test/remote/gateways/remote_realex_test.rb +224 -0
  171. data/test/remote/gateways/remote_sage_bankcard_test.rb +109 -0
  172. data/test/remote/gateways/remote_sage_pay_test.rb +219 -0
  173. data/test/remote/gateways/remote_sage_test.rb +87 -0
  174. data/test/remote/gateways/remote_sage_virtual_check_test.rb +62 -0
  175. data/test/remote/gateways/remote_secure_pay_au_test.rb +40 -0
  176. data/test/remote/gateways/remote_secure_pay_tech_test.rb +37 -0
  177. data/test/remote/gateways/remote_secure_pay_test.rb +28 -0
  178. data/test/remote/gateways/remote_skipjack_test.rb +105 -0
  179. data/test/remote/gateways/remote_trans_first_test.rb +34 -0
  180. data/test/remote/gateways/remote_transax_test.rb +112 -0
  181. data/test/remote/gateways/remote_trust_commerce_test.rb +152 -0
  182. data/test/remote/gateways/remote_usa_epay_test.rb +46 -0
  183. data/test/remote/gateways/remote_verifi_test.rb +107 -0
  184. data/test/remote/gateways/remote_viaklix_test.rb +43 -0
  185. data/test/remote/gateways/remote_wirecard_test.rb +111 -0
  186. data/test/remote/integrations/remote_gestpay_integration_test.rb +37 -0
  187. data/test/remote/integrations/remote_paypal_integration_test.rb +26 -0
  188. data/test/test_helper.rb +182 -0
  189. data/test/unit/avs_result_test.rb +59 -0
  190. data/test/unit/base_test.rb +55 -0
  191. data/test/unit/check_test.rb +88 -0
  192. data/test/unit/connection_test.rb +129 -0
  193. data/test/unit/country_code_test.rb +33 -0
  194. data/test/unit/country_test.rb +64 -0
  195. data/test/unit/credit_card_formatting_test.rb +19 -0
  196. data/test/unit/credit_card_methods_test.rb +179 -0
  197. data/test/unit/credit_card_test.rb +318 -0
  198. data/test/unit/cvv_result_test.rb +33 -0
  199. data/test/unit/expiry_date_test.rb +32 -0
  200. data/test/unit/gateways/authorize_net_cim_test.rb +638 -0
  201. data/test/unit/gateways/authorize_net_test.rb +290 -0
  202. data/test/unit/gateways/beanstream_interac_test.rb +51 -0
  203. data/test/unit/gateways/beanstream_test.rb +108 -0
  204. data/test/unit/gateways/bogus_test.rb +46 -0
  205. data/test/unit/gateways/braintree_test.rb +126 -0
  206. data/test/unit/gateways/card_stream_test.rb +90 -0
  207. data/test/unit/gateways/cyber_source_test.rb +188 -0
  208. data/test/unit/gateways/data_cash_test.rb +133 -0
  209. data/test/unit/gateways/efsnet_test.rb +123 -0
  210. data/test/unit/gateways/elavon_test.rb +139 -0
  211. data/test/unit/gateways/eway_test.rb +118 -0
  212. data/test/unit/gateways/exact_test.rb +156 -0
  213. data/test/unit/gateways/first_pay_test.rb +125 -0
  214. data/test/unit/gateways/gateway_test.rb +48 -0
  215. data/test/unit/gateways/instapay_test.rb +102 -0
  216. data/test/unit/gateways/linkpoint_test.rb +167 -0
  217. data/test/unit/gateways/merchant_e_solutions_test.rb +169 -0
  218. data/test/unit/gateways/merchant_ware_test.rb +188 -0
  219. data/test/unit/gateways/modern_payments_cim_test.rb +171 -0
  220. data/test/unit/gateways/moneris_test.rb +185 -0
  221. data/test/unit/gateways/moneris_usa_test.rb +183 -0
  222. data/test/unit/gateways/net_registry_test.rb +416 -0
  223. data/test/unit/gateways/netbilling_test.rb +54 -0
  224. data/test/unit/gateways/ogone_test.rb +256 -0
  225. data/test/unit/gateways/pay_junction_test.rb +123 -0
  226. data/test/unit/gateways/pay_secure_test.rb +71 -0
  227. data/test/unit/gateways/payflow_express_test.rb +173 -0
  228. data/test/unit/gateways/payflow_express_uk_test.rb +86 -0
  229. data/test/unit/gateways/payflow_test.rb +305 -0
  230. data/test/unit/gateways/payflow_uk_test.rb +30 -0
  231. data/test/unit/gateways/payment_express_test.rb +195 -0
  232. data/test/unit/gateways/paypal_express_test.rb +382 -0
  233. data/test/unit/gateways/paypal_test.rb +569 -0
  234. data/test/unit/gateways/plugnpay_test.rb +86 -0
  235. data/test/unit/gateways/psigate_test.rb +169 -0
  236. data/test/unit/gateways/psl_card_test.rb +64 -0
  237. data/test/unit/gateways/quickpay_test.rb +112 -0
  238. data/test/unit/gateways/realex_test.rb +151 -0
  239. data/test/unit/gateways/sage_bankcard_test.rb +162 -0
  240. data/test/unit/gateways/sage_pay_test.rb +139 -0
  241. data/test/unit/gateways/sage_virtual_check_test.rb +71 -0
  242. data/test/unit/gateways/secure_pay_au_test.rb +207 -0
  243. data/test/unit/gateways/secure_pay_tech_test.rb +44 -0
  244. data/test/unit/gateways/secure_pay_test.rb +87 -0
  245. data/test/unit/gateways/skip_jack_test.rb +133 -0
  246. data/test/unit/gateways/trans_first_test.rb +112 -0
  247. data/test/unit/gateways/trust_commerce_test.rb +90 -0
  248. data/test/unit/gateways/usa_epay_test.rb +128 -0
  249. data/test/unit/gateways/verifi_test.rb +96 -0
  250. data/test/unit/gateways/viaklix_test.rb +78 -0
  251. data/test/unit/gateways/wirecard_test.rb +250 -0
  252. data/test/unit/generators/test_gateway_generator.rb +46 -0
  253. data/test/unit/generators/test_generator_helper.rb +20 -0
  254. data/test/unit/generators/test_integration_generator.rb +53 -0
  255. data/test/unit/integrations/action_view_helper_test.rb +50 -0
  256. data/test/unit/integrations/bogus_module_test.rb +20 -0
  257. data/test/unit/integrations/chronopay_module_test.rb +13 -0
  258. data/test/unit/integrations/gestpay_module_test.rb +14 -0
  259. data/test/unit/integrations/helpers/bogus_helper_test.rb +28 -0
  260. data/test/unit/integrations/helpers/chronopay_helper_test.rb +67 -0
  261. data/test/unit/integrations/helpers/gestpay_helper_test.rb +100 -0
  262. data/test/unit/integrations/helpers/hi_trust_helper_test.rb +16 -0
  263. data/test/unit/integrations/helpers/nochex_helper_test.rb +53 -0
  264. data/test/unit/integrations/helpers/paypal_helper_test.rb +171 -0
  265. data/test/unit/integrations/helpers/quickpay_helper_test.rb +40 -0
  266. data/test/unit/integrations/helpers/two_checkout_helper_test.rb +92 -0
  267. data/test/unit/integrations/hi_trust_module_test.rb +13 -0
  268. data/test/unit/integrations/nochex_module_test.rb +13 -0
  269. data/test/unit/integrations/notifications/chronopay_notification_test.rb +66 -0
  270. data/test/unit/integrations/notifications/gestpay_notification_test.rb +60 -0
  271. data/test/unit/integrations/notifications/hi_trust_notification_test.rb +59 -0
  272. data/test/unit/integrations/notifications/nochex_notification_test.rb +51 -0
  273. data/test/unit/integrations/notifications/notification_test.rb +54 -0
  274. data/test/unit/integrations/notifications/paypal_notification_test.rb +85 -0
  275. data/test/unit/integrations/notifications/quickpay_notification_test.rb +69 -0
  276. data/test/unit/integrations/notifications/two_checkout_notification_test.rb +55 -0
  277. data/test/unit/integrations/paypal_module_test.rb +28 -0
  278. data/test/unit/integrations/quickpay_module_test.rb +9 -0
  279. data/test/unit/integrations/returns/chronopay_return_test.rb +11 -0
  280. data/test/unit/integrations/returns/gestpay_return_test.rb +10 -0
  281. data/test/unit/integrations/returns/hi_trust_return_test.rb +24 -0
  282. data/test/unit/integrations/returns/nochex_return_test.rb +10 -0
  283. data/test/unit/integrations/returns/paypal_return_test.rb +10 -0
  284. data/test/unit/integrations/returns/return_test.rb +11 -0
  285. data/test/unit/integrations/returns/two_checkout_return_test.rb +24 -0
  286. data/test/unit/integrations/two_checkout_module_test.rb +13 -0
  287. data/test/unit/post_data_test.rb +55 -0
  288. data/test/unit/posts_data_test.rb +48 -0
  289. data/test/unit/response_test.rb +28 -0
  290. data/test/unit/utils_test.rb +7 -0
  291. data/test/unit/validateable_test.rb +60 -0
  292. metadata +396 -0
@@ -0,0 +1,33 @@
1
+ require 'test_helper'
2
+
3
+ class CVVResultTest < Test::Unit::TestCase
4
+ def test_nil_data
5
+ result = CVVResult.new(nil)
6
+ assert_nil result.code
7
+ assert_nil result.message
8
+ end
9
+
10
+ def test_blank_data
11
+ result = CVVResult.new('')
12
+ assert_nil result.code
13
+ assert_nil result.message
14
+ end
15
+
16
+ def test_successful_match
17
+ result = CVVResult.new('M')
18
+ assert_equal 'M', result.code
19
+ assert_equal CVVResult.messages['M'], result.message
20
+ end
21
+
22
+ def test_failed_match
23
+ result = CVVResult.new('N')
24
+ assert_equal 'N', result.code
25
+ assert_equal CVVResult.messages['N'], result.message
26
+ end
27
+
28
+ def test_to_hash
29
+ result = CVVResult.new('M').to_hash
30
+ assert_equal 'M', result['code']
31
+ assert_equal CVVResult.messages['M'], result['message']
32
+ end
33
+ end
@@ -0,0 +1,32 @@
1
+ require 'test_helper'
2
+
3
+ class ExpiryDateTest < Test::Unit::TestCase
4
+ def test_should_be_expired
5
+ last_month = 2.months.ago
6
+ date = CreditCard::ExpiryDate.new(last_month.month, last_month.year)
7
+ assert date.expired?
8
+ end
9
+
10
+ def test_today_should_not_be_expired
11
+ today = Time.now.utc
12
+ date = CreditCard::ExpiryDate.new(today.month, today.year)
13
+ assert_false date.expired?
14
+ end
15
+
16
+ def test_dates_in_the_future_should_not_be_expired
17
+ next_month = 1.month.from_now
18
+ date = CreditCard::ExpiryDate.new(next_month.month, next_month.year)
19
+ assert_false date.expired?
20
+ end
21
+
22
+ def test_invalid_date
23
+ expiry = CreditCard::ExpiryDate.new(13, 2009)
24
+ assert_equal Time.at(0).utc, expiry.expiration
25
+ end
26
+
27
+ def test_month_and_year_coerced_to_integer
28
+ expiry = CreditCard::ExpiryDate.new("13", "2009")
29
+ assert_equal 13, expiry.month
30
+ assert_equal 2009, expiry.year
31
+ end
32
+ end
@@ -0,0 +1,638 @@
1
+ require 'test_helper'
2
+
3
+ class AuthorizeNetCimTest < Test::Unit::TestCase
4
+ def setup
5
+ @gateway = AuthorizeNetCimGateway.new(
6
+ :login => 'X',
7
+ :password => 'Y'
8
+ )
9
+ @amount = 100
10
+ @credit_card = credit_card
11
+ @address = address
12
+ @customer_profile_id = '3187'
13
+ @customer_payment_profile_id = '7813'
14
+ @customer_address_id = '4321'
15
+ @payment = {
16
+ :credit_card => @credit_card
17
+ }
18
+ @profile = {
19
+ :merchant_customer_id => 'Up to 20 chars', # Optional
20
+ :description => 'Up to 255 Characters', # Optional
21
+ :email => 'Up to 255 Characters', # Optional
22
+ :payment_profiles => { # Optional
23
+ :customer_type => 'individual or business', # Optional
24
+ :bill_to => @address,
25
+ :payment => @payment
26
+ },
27
+ :ship_to_list => {
28
+ :first_name => 'John',
29
+ :last_name => 'Doe',
30
+ :company => 'Widgets, Inc',
31
+ :address1 => '1234 Fake Street',
32
+ :city => 'Anytown',
33
+ :state => 'MD',
34
+ :zip => '12345',
35
+ :country => 'USA',
36
+ :phone_number => '(123)123-1234', # Optional - Up to 25 digits (no letters)
37
+ :fax_number => '(123)123-1234' # Optional - Up to 25 digits (no letters)
38
+ }
39
+ }
40
+ @options = {
41
+ :ref_id => '1234', # Optional
42
+ :profile => @profile
43
+ }
44
+ end
45
+
46
+ def test_expdate_formatting
47
+ assert_equal '2009-09', @gateway.send(:expdate, credit_card('4111111111111111', :month => "9", :year => "2009"))
48
+ assert_equal '2013-11', @gateway.send(:expdate, credit_card('4111111111111111', :month => "11", :year => "2013"))
49
+ end
50
+
51
+ def test_should_create_customer_profile_request
52
+ @gateway.expects(:ssl_post).returns(successful_create_customer_profile_response)
53
+
54
+ assert response = @gateway.create_customer_profile(@options)
55
+ assert_instance_of Response, response
56
+ assert_success response
57
+ assert_equal @customer_profile_id, response.authorization
58
+ assert_equal "Successful.", response.message
59
+ end
60
+
61
+ def test_should_create_customer_payment_profile_request
62
+ @gateway.expects(:ssl_post).returns(successful_create_customer_payment_profile_response)
63
+
64
+ assert response = @gateway.create_customer_payment_profile(
65
+ :customer_profile_id => @customer_profile_id,
66
+ :payment_profile => {
67
+ :customer_type => 'individual',
68
+ :bill_to => @address,
69
+ :payment => @payment
70
+ },
71
+ :validation_mode => :test
72
+ )
73
+ assert_instance_of Response, response
74
+ assert_success response
75
+ assert_equal @customer_payment_profile_id, response.params['customer_payment_profile_id']
76
+ assert_equal "This output is only present if the ValidationMode input parameter is passed with a value of testMode or liveMode", response.params['validation_direct_response']
77
+ end
78
+
79
+ def test_should_create_customer_shipping_address_request
80
+ @gateway.expects(:ssl_post).returns(successful_create_customer_shipping_address_response)
81
+
82
+ assert response = @gateway.create_customer_shipping_address(
83
+ :customer_profile_id => @customer_profile_id,
84
+ :address => {
85
+ :first_name => 'John',
86
+ :last_name => 'Doe',
87
+ :company => 'Widgets, Inc',
88
+ :address1 => '1234 Fake Street',
89
+ :city => 'Anytown',
90
+ :state => 'MD',
91
+ :country => 'USA',
92
+ :phone_number => '(123)123-1234',
93
+ :fax_number => '(123)123-1234'
94
+ }
95
+ )
96
+ assert_instance_of Response, response
97
+ assert_success response
98
+ assert_nil response.authorization
99
+ assert_equal 'customerAddressId', response.params['customer_address_id']
100
+ end
101
+
102
+ def test_should_create_customer_profile_transaction_auth_only_and_then_capture_only_requests
103
+ @gateway.expects(:ssl_post).returns(successful_create_customer_profile_transaction_response(:auth_only))
104
+
105
+ assert response = @gateway.create_customer_profile_transaction(
106
+ :transaction => {
107
+ :customer_profile_id => @customer_profile_id,
108
+ :customer_payment_profile_id => @customer_payment_profile_id,
109
+ :type => :auth_only,
110
+ :amount => @amount
111
+ }
112
+ )
113
+ assert_instance_of Response, response
114
+ assert_success response
115
+ assert_nil response.authorization
116
+ assert_equal 'This transaction has been approved.', response.params['direct_response']['message']
117
+ assert_equal 'auth_only', response.params['direct_response']['transaction_type']
118
+ assert_equal 'Gw4NGI', approval_code = response.params['direct_response']['approval_code']
119
+
120
+ @gateway.expects(:ssl_post).returns(successful_create_customer_profile_transaction_response(:capture_only))
121
+
122
+ assert response = @gateway.create_customer_profile_transaction(
123
+ :transaction => {
124
+ :customer_profile_id => @customer_profile_id,
125
+ :customer_payment_profile_id => @customer_payment_profile_id,
126
+ :type => :capture_only,
127
+ :amount => @amount,
128
+ :approval_code => approval_code
129
+ }
130
+ )
131
+ assert_instance_of Response, response
132
+ assert_success response
133
+ assert_nil response.authorization
134
+ assert_equal 'This transaction has been approved.', response.params['direct_response']['message']
135
+ end
136
+
137
+ def test_should_create_customer_profile_transaction_auth_capture_request
138
+ @gateway.expects(:ssl_post).returns(successful_create_customer_profile_transaction_response(:auth_capture))
139
+
140
+ assert response = @gateway.create_customer_profile_transaction(
141
+ :transaction => {
142
+ :customer_profile_id => @customer_profile_id,
143
+ :customer_payment_profile_id => @customer_payment_profile_id,
144
+ :type => :auth_capture,
145
+ :order => {
146
+ :invoice_number => '1234',
147
+ :description => 'Test Order Description',
148
+ :purchase_order_number => '4321'
149
+ },
150
+ :amount => @amount
151
+ }
152
+ )
153
+ assert_instance_of Response, response
154
+ assert_success response
155
+ assert_nil response.authorization
156
+ assert_equal 'This transaction has been approved.', response.params['direct_response']['message']
157
+ end
158
+
159
+ def test_should_delete_customer_profile_request
160
+ @gateway.expects(:ssl_post).returns(successful_delete_customer_profile_response)
161
+
162
+ assert response = @gateway.delete_customer_profile(:customer_profile_id => @customer_profile_id)
163
+ assert_instance_of Response, response
164
+ assert_success response
165
+ assert_equal @customer_profile_id, response.authorization
166
+ end
167
+
168
+ def test_should_delete_customer_payment_profile_request
169
+ @gateway.expects(:ssl_post).returns(successful_delete_customer_payment_profile_response)
170
+
171
+ assert response = @gateway.delete_customer_payment_profile(:customer_profile_id => @customer_profile_id, :customer_payment_profile_id => @customer_payment_profile_id)
172
+ assert_instance_of Response, response
173
+ assert_success response
174
+ assert_nil response.authorization
175
+ end
176
+
177
+ def test_should_delete_customer_shipping_address_request
178
+ @gateway.expects(:ssl_post).returns(successful_delete_customer_shipping_address_response)
179
+
180
+ assert response = @gateway.delete_customer_shipping_address(:customer_profile_id => @customer_profile_id, :customer_address_id => @customer_address_id)
181
+ assert_instance_of Response, response
182
+ assert_success response
183
+ assert_nil response.authorization
184
+ end
185
+
186
+ def test_should_get_customer_profile_request
187
+ @gateway.expects(:ssl_post).returns(successful_get_customer_profile_response)
188
+
189
+ assert response = @gateway.get_customer_profile(:customer_profile_id => @customer_profile_id)
190
+ assert_instance_of Response, response
191
+ assert_success response
192
+ assert_equal @customer_profile_id, response.authorization
193
+ end
194
+
195
+ def test_should_get_customer_profile_request_with_multiple_payment_profiles
196
+ @gateway.expects(:ssl_post).returns(successful_get_customer_profile_response_with_multiple_payment_profiles)
197
+
198
+ assert response = @gateway.get_customer_profile(:customer_profile_id => @customer_profile_id)
199
+ assert_instance_of Response, response
200
+ assert_success response
201
+
202
+ assert_equal @customer_profile_id, response.authorization
203
+ assert_equal 2, response.params['profile']['payment_profiles'].size
204
+ end
205
+
206
+ def test_should_get_customer_payment_profile_request
207
+ @gateway.expects(:ssl_post).returns(successful_get_customer_payment_profile_response)
208
+
209
+ assert response = @gateway.get_customer_payment_profile(
210
+ :customer_profile_id => @customer_profile_id,
211
+ :customer_payment_profile_id => @customer_payment_profile_id
212
+ )
213
+ assert_instance_of Response, response
214
+ assert_success response
215
+ assert_nil response.authorization
216
+ assert_equal @customer_payment_profile_id, response.params['profile']['payment_profiles']['customer_payment_profile_id']
217
+ end
218
+
219
+ def test_should_get_customer_shipping_address_request
220
+ @gateway.expects(:ssl_post).returns(successful_get_customer_shipping_address_response)
221
+
222
+ assert response = @gateway.get_customer_shipping_address(
223
+ :customer_profile_id => @customer_profile_id,
224
+ :customer_address_id => @customer_address_id
225
+ )
226
+ assert_instance_of Response, response
227
+ assert_success response
228
+ assert_nil response.authorization
229
+ end
230
+
231
+ def test_should_update_customer_profile_request
232
+ @gateway.expects(:ssl_post).returns(successful_update_customer_profile_response)
233
+
234
+ assert response = @gateway.update_customer_profile(
235
+ :profile => {
236
+ :customer_profile_id => @customer_profile_id,
237
+ :email => 'new email address'
238
+ }
239
+ )
240
+ assert_instance_of Response, response
241
+ assert_success response
242
+ assert_equal @customer_profile_id, response.authorization
243
+ end
244
+
245
+ def test_should_update_customer_payment_profile_request
246
+ @gateway.expects(:ssl_post).returns(successful_update_customer_payment_profile_response)
247
+
248
+ assert response = @gateway.update_customer_payment_profile(
249
+ :customer_profile_id => @customer_profile_id,
250
+ :payment_profile => {
251
+ :customer_payment_profile_id => @customer_payment_profile_id,
252
+ :customer_type => 'business'
253
+ }
254
+ )
255
+ assert_instance_of Response, response
256
+ assert_success response
257
+ assert_nil response.authorization
258
+ end
259
+
260
+ def test_should_update_customer_shipping_address_request
261
+ @gateway.expects(:ssl_post).returns(successful_update_customer_shipping_address_response)
262
+
263
+ assert response = @gateway.update_customer_shipping_address(
264
+ :customer_profile_id => @customer_profile_id,
265
+ :address => {
266
+ :customer_address_id => @customer_address_id,
267
+ :city => 'New City'
268
+ }
269
+ )
270
+ assert_instance_of Response, response
271
+ assert_success response
272
+ assert_nil response.authorization
273
+ end
274
+
275
+ def test_should_validate_customer_payment_profile_request
276
+ @gateway.expects(:ssl_post).returns(successful_validate_customer_payment_profile_response)
277
+
278
+ assert response = @gateway.validate_customer_payment_profile(
279
+ :customer_profile_id => @customer_profile_id,
280
+ :customer_payment_profile_id => @customer_payment_profile_id,
281
+ :customer_address_id => @customer_address_id,
282
+ :validation_mode => :live
283
+ )
284
+ assert_instance_of Response, response
285
+ assert_success response
286
+ assert_nil response.authorization
287
+ assert_equal 'This transaction has been approved.', response.params['direct_response']['message']
288
+ end
289
+
290
+ private
291
+
292
+ def successful_create_customer_profile_response
293
+ <<-XML
294
+ <?xml version="1.0" encoding="utf-8" ?>
295
+ <createCustomerProfileResponse
296
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
297
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
298
+ xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
299
+ <refId>refid1</refId>
300
+ <messages>
301
+ <resultCode>Ok</resultCode>
302
+ <message>
303
+ <code>I00001</code>
304
+ <text>Successful.</text>
305
+ </message>
306
+ </messages>
307
+ <customerProfileId>#{@customer_profile_id}</customerProfileId>
308
+ </createCustomerProfileResponse>
309
+ XML
310
+ end
311
+
312
+ def successful_create_customer_payment_profile_response
313
+ <<-XML
314
+ <?xml version="1.0" encoding="utf-8" ?>
315
+ <createCustomerPaymentProfileResponse
316
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
317
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
318
+ xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
319
+ <refId>refid1</refId>
320
+ <messages>
321
+ <resultCode>Ok</resultCode>
322
+ <message>
323
+ <code>I00001</code>
324
+ <text>Successful.</text>
325
+ </message>
326
+ </messages>
327
+ <customerPaymentProfileId>#{@customer_payment_profile_id}</customerPaymentProfileId>
328
+ <validationDirectResponse>This output is only present if the ValidationMode input parameter is passed with a value of testMode or liveMode</validationDirectResponse>
329
+ </createCustomerPaymentProfileResponse>
330
+ XML
331
+ end
332
+
333
+ def successful_create_customer_shipping_address_response
334
+ <<-XML
335
+ <?xml version="1.0" encoding="utf-8" ?>
336
+ <createCustomerShippingAddressResponse
337
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
338
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
339
+ xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
340
+ <refId>refid1</refId>
341
+ <messages>
342
+ <resultCode>Ok</resultCode>
343
+ <message>
344
+ <code>I00001</code>
345
+ <text>Successful.</text>
346
+ </message>
347
+ </messages>
348
+ <customerAddressId>customerAddressId</customerAddressId>
349
+ </createCustomerShippingAddressResponse>
350
+ XML
351
+ end
352
+
353
+ def successful_delete_customer_profile_response
354
+ <<-XML
355
+ <?xml version="1.0" encoding="utf-8" ?>
356
+ <deleteCustomerProfileResponse
357
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
358
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
359
+ xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
360
+ <refId>refid1</refId>
361
+ <messages>
362
+ <resultCode>Ok</resultCode>
363
+ <message>
364
+ <code>I00001</code>
365
+ <text>Successful.</text>
366
+ </message>
367
+ </messages>
368
+ <customerProfileId>#{@customer_profile_id}</customerProfileId>
369
+ </deleteCustomerProfileResponse>
370
+ XML
371
+ end
372
+
373
+ def successful_delete_customer_payment_profile_response
374
+ <<-XML
375
+ <?xml version="1.0" encoding="utf-8" ?>
376
+ <deleteCustomerPaymentProfileResponse
377
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
378
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
379
+ xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
380
+ <refId>refid1</refId>
381
+ <messages>
382
+ <resultCode>Ok</resultCode>
383
+ <message>
384
+ <code>I00001</code>
385
+ <text>Successful.</text>
386
+ </message>
387
+ </messages>
388
+ </deleteCustomerPaymentProfileResponse>
389
+ XML
390
+ end
391
+
392
+ def successful_delete_customer_shipping_address_response
393
+ <<-XML
394
+ <?xml version="1.0" encoding="utf-8" ?>
395
+ <deleteCustomerShippingAddressResponse
396
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
397
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
398
+ xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
399
+ <refId>refid1</refId>
400
+ <messages>
401
+ <resultCode>Ok</resultCode>
402
+ <message>
403
+ <code>I00001</code>
404
+ <text>Successful.</text>
405
+ </message>
406
+ </messages>
407
+ </deleteCustomerShippingAddressResponse>
408
+ XML
409
+ end
410
+
411
+ def successful_get_customer_profile_response
412
+ <<-XML
413
+ <?xml version="1.0" encoding="utf-8" ?>
414
+ <getCustomerProfileResponse
415
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
416
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
417
+ xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
418
+ <refId>refid1</refId>
419
+ <messages>
420
+ <resultCode>Ok</resultCode>
421
+ <message>
422
+ <code>I00001</code>
423
+ <text>Successful.</text>
424
+ </message>
425
+ </messages>
426
+ <customerProfileId>#{@customer_profile_id}</customerProfileId>
427
+ <profile>
428
+ <paymentProfiles>
429
+ <customerPaymentProfileId>123456</customerPaymentProfileId>
430
+ <payment>
431
+ <creditCard>
432
+ <cardNumber>#{@credit_card.number}</cardNumber>
433
+ <expirationDate>#{@gateway.send(:expdate, @credit_card)}</expirationDate>
434
+ </creditCard>
435
+ </payment>
436
+ </paymentProfiles>
437
+ </profile>
438
+ </getCustomerProfileResponse>
439
+ XML
440
+ end
441
+
442
+ def successful_get_customer_profile_response_with_multiple_payment_profiles
443
+ <<-XML
444
+ <?xml version="1.0" encoding="utf-8"?>
445
+ <getCustomerProfileResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
446
+ <messages>
447
+ <resultCode>Ok</resultCode>
448
+ <message>
449
+ <code>I00001</code>
450
+ <text>Successful.</text>
451
+ </message>
452
+ </messages>
453
+ <profile>
454
+ <merchantCustomerId>Up to 20 chars</merchantCustomerId>
455
+ <description>Up to 255 Characters</description>
456
+ <email>Up to 255 Characters</email>
457
+ <customerProfileId>#{@customer_profile_id}</customerProfileId>
458
+ <paymentProfiles>
459
+ <customerPaymentProfileId>1000</customerPaymentProfileId>
460
+ <payment>
461
+ <creditCard>
462
+ <cardNumber>#{@credit_card.number}</cardNumber>
463
+ <expirationDate>#{@gateway.send(:expdate, @credit_card)}</expirationDate>
464
+ </creditCard>
465
+ </payment>
466
+ </paymentProfiles>
467
+ <paymentProfiles>
468
+ <customerType>individual</customerType>
469
+ <customerPaymentProfileId>1001</customerPaymentProfileId>
470
+ <payment>
471
+ <creditCard>
472
+ <cardNumber>XXXX1234</cardNumber>
473
+ <expirationDate>XXXX</expirationDate>
474
+ </creditCard>
475
+ </payment>
476
+ </paymentProfiles>
477
+ </profile>
478
+ </getCustomerProfileResponse>
479
+ XML
480
+ end
481
+
482
+ def successful_get_customer_payment_profile_response
483
+ <<-XML
484
+ <?xml version="1.0" encoding="utf-8" ?>
485
+ <getCustomerPaymentProfileResponse
486
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
487
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
488
+ xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
489
+ <refId>refid1</refId>
490
+ <messages>
491
+ <resultCode>Ok</resultCode>
492
+ <message>
493
+ <code>I00001</code>
494
+ <text>Successful.</text>
495
+ </message>
496
+ </messages>
497
+ <profile>
498
+ <paymentProfiles>
499
+ <customerPaymentProfileId>#{@customer_payment_profile_id}</customerPaymentProfileId>
500
+ <payment>
501
+ <creditCard>
502
+ <cardNumber>#{@credit_card.number}</cardNumber>
503
+ <expirationDate>#{@gateway.send(:expdate, @credit_card)}</expirationDate>
504
+ </creditCard>
505
+ </payment>
506
+ </paymentProfiles>
507
+ </profile>
508
+ </getCustomerPaymentProfileResponse>
509
+ XML
510
+ end
511
+
512
+ def successful_get_customer_shipping_address_response
513
+ <<-XML
514
+ <?xml version="1.0" encoding="utf-8" ?>
515
+ <getCustomerShippingAddressResponse
516
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
517
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
518
+ xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
519
+ <refId>refid1</refId>
520
+ <messages>
521
+ <resultCode>Ok</resultCode>
522
+ <message>
523
+ <code>I00001</code>
524
+ <text>Successful.</text>
525
+ </message>
526
+ </messages>
527
+ <address>
528
+ <customerAddressId>#{@customer_address_id}</customerAddressId>
529
+ </address>
530
+ </getCustomerShippingAddressResponse>
531
+ XML
532
+ end
533
+
534
+ def successful_update_customer_profile_response
535
+ <<-XML
536
+ <?xml version="1.0" encoding="utf-8" ?>
537
+ <updateCustomerProfileResponse
538
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
539
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
540
+ xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
541
+ <refId>refid1</refId>
542
+ <messages>
543
+ <resultCode>Ok</resultCode>
544
+ <message>
545
+ <code>I00001</code>
546
+ <text>Successful.</text>
547
+ </message>
548
+ </messages>
549
+ <customerProfileId>#{@customer_profile_id}</customerProfileId>
550
+ </updateCustomerProfileResponse>
551
+ XML
552
+ end
553
+
554
+ def successful_update_customer_payment_profile_response
555
+ <<-XML
556
+ <?xml version="1.0" encoding="utf-8" ?>
557
+ <updateCustomerPaymentProfileResponse
558
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
559
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
560
+ xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
561
+ <refId>refid1</refId>
562
+ <messages>
563
+ <resultCode>Ok</resultCode>
564
+ <message>
565
+ <code>I00001</code>
566
+ <text>Successful.</text>
567
+ </message>
568
+ </messages>
569
+ </updateCustomerPaymentProfileResponse>
570
+ XML
571
+ end
572
+
573
+ def successful_update_customer_shipping_address_response
574
+ <<-XML
575
+ <?xml version="1.0" encoding="utf-8" ?>
576
+ <updateCustomerShippingAddressResponse
577
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
578
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
579
+ xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
580
+ <refId>refid1</refId>
581
+ <messages>
582
+ <resultCode>Ok</resultCode>
583
+ <message>
584
+ <code>I00001</code>
585
+ <text>Successful.</text>
586
+ </message>
587
+ </messages>
588
+ </updateCustomerShippingAddressResponse>
589
+ XML
590
+ end
591
+
592
+ SUCCESSFUL_DIRECT_RESPONSE = {
593
+ :auth_only => '1,1,1,This transaction has been approved.,Gw4NGI,Y,508223659,,,100.00,CC,auth_only,Up to 20 chars,,,,,,,,,,,Up to 255 Characters,,,,,,,,,,,,,,6E5334C13C78EA078173565FD67318E4,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
594
+ :capture_only => '1,1,1,This transaction has been approved.,,Y,508223660,,,100.00,CC,capture_only,Up to 20 chars,,,,,,,,,,,Up to 255 Characters,,,,,,,,,,,,,,6E5334C13C78EA078173565FD67318E4,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,',
595
+ :auth_capture => '1,1,1,This transaction has been approved.,d1GENk,Y,508223661,32968c18334f16525227,Store purchase,1.00,CC,auth_capture,,Longbob,Longsen,,,,,,,,,,,,,,,,,,,,,,,269862C030129C1173727CC10B1935ED,P,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,'
596
+ }
597
+
598
+ def successful_create_customer_profile_transaction_response(transaction_type)
599
+ <<-XML
600
+ <?xml version="1.0" encoding="utf-8" ?>
601
+ <createCustomerProfileTransactionResponse
602
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
603
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
604
+ xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
605
+ <refId>refid1</refId>
606
+ <messages>
607
+ <resultCode>Ok</resultCode>
608
+ <message>
609
+ <code>I00001</code>
610
+ <text>Successful.</text>
611
+ </message>
612
+ </messages>
613
+ <directResponse>#{SUCCESSFUL_DIRECT_RESPONSE[transaction_type]}</directResponse>
614
+ </createCustomerProfileTransactionResponse>
615
+ XML
616
+ end
617
+
618
+ def successful_validate_customer_payment_profile_response
619
+ <<-XML
620
+ <?xml version="1.0" encoding="utf-8" ?>
621
+ <validateCustomerPaymentProfileResponse
622
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
623
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
624
+ xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
625
+ <refId>refid1</refId>
626
+ <messages>
627
+ <resultCode>Ok</resultCode>
628
+ <message>
629
+ <code>I00001</code>
630
+ <text>Successful.</text>
631
+ </message>
632
+ </messages>
633
+ <directResponse>1,1,1,This transaction has been approved.,DEsVh8,Y,508276300,none,Test transaction for ValidateCustomerPaymentProfile.,0.01,CC,auth_only,Up to 20 chars,,,,,,,,,,,Up to 255 Characters,John,Doe,Widgets, Inc,1234 Fake Street,Anytown,MD,12345,USA,0.0000,0.0000,0.0000,TRUE,none,7EB3A44624C0C10FAAE47E276B48BF17,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,</directResponse>
634
+ </validateCustomerPaymentProfileResponse>
635
+ XML
636
+ end
637
+
638
+ end