ghazel-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 (296) hide show
  1. data/CHANGELOG +473 -0
  2. data/CONTRIBUTORS +126 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README +135 -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 +736 -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/jetpay.rb +270 -0
  36. data/lib/active_merchant/billing/gateways/linkpoint.rb +449 -0
  37. data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +154 -0
  38. data/lib/active_merchant/billing/gateways/merchant_ware.rb +283 -0
  39. data/lib/active_merchant/billing/gateways/modern_payments.rb +36 -0
  40. data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +214 -0
  41. data/lib/active_merchant/billing/gateways/moneris.rb +205 -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 +279 -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 +326 -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/paypal_express_recurring.rb +310 -0
  62. data/lib/active_merchant/billing/gateways/plugnpay.rb +292 -0
  63. data/lib/active_merchant/billing/gateways/psigate.rb +214 -0
  64. data/lib/active_merchant/billing/gateways/psl_card.rb +306 -0
  65. data/lib/active_merchant/billing/gateways/quickpay.rb +213 -0
  66. data/lib/active_merchant/billing/gateways/realex.rb +200 -0
  67. data/lib/active_merchant/billing/gateways/sage.rb +146 -0
  68. data/lib/active_merchant/billing/gateways/sage/sage_bankcard.rb +88 -0
  69. data/lib/active_merchant/billing/gateways/sage/sage_core.rb +116 -0
  70. data/lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb +97 -0
  71. data/lib/active_merchant/billing/gateways/sage_pay.rb +308 -0
  72. data/lib/active_merchant/billing/gateways/sallie_mae.rb +144 -0
  73. data/lib/active_merchant/billing/gateways/secure_pay.rb +31 -0
  74. data/lib/active_merchant/billing/gateways/secure_pay_au.rb +157 -0
  75. data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +113 -0
  76. data/lib/active_merchant/billing/gateways/skip_jack.rb +452 -0
  77. data/lib/active_merchant/billing/gateways/smart_ps.rb +254 -0
  78. data/lib/active_merchant/billing/gateways/trans_first.rb +127 -0
  79. data/lib/active_merchant/billing/gateways/transax.rb +26 -0
  80. data/lib/active_merchant/billing/gateways/trust_commerce.rb +418 -0
  81. data/lib/active_merchant/billing/gateways/usa_epay.rb +194 -0
  82. data/lib/active_merchant/billing/gateways/verifi.rb +228 -0
  83. data/lib/active_merchant/billing/gateways/viaklix.rb +189 -0
  84. data/lib/active_merchant/billing/gateways/wirecard.rb +318 -0
  85. data/lib/active_merchant/billing/integrations.rb +22 -0
  86. data/lib/active_merchant/billing/integrations/action_view_helper.rb +79 -0
  87. data/lib/active_merchant/billing/integrations/bogus.rb +22 -0
  88. data/lib/active_merchant/billing/integrations/bogus/helper.rb +17 -0
  89. data/lib/active_merchant/billing/integrations/bogus/notification.rb +11 -0
  90. data/lib/active_merchant/billing/integrations/bogus/return.rb +10 -0
  91. data/lib/active_merchant/billing/integrations/chronopay.rb +22 -0
  92. data/lib/active_merchant/billing/integrations/chronopay/helper.rb +81 -0
  93. data/lib/active_merchant/billing/integrations/chronopay/notification.rb +156 -0
  94. data/lib/active_merchant/billing/integrations/chronopay/return.rb +10 -0
  95. data/lib/active_merchant/billing/integrations/gestpay.rb +26 -0
  96. data/lib/active_merchant/billing/integrations/gestpay/common.rb +42 -0
  97. data/lib/active_merchant/billing/integrations/gestpay/helper.rb +70 -0
  98. data/lib/active_merchant/billing/integrations/gestpay/notification.rb +83 -0
  99. data/lib/active_merchant/billing/integrations/gestpay/return.rb +10 -0
  100. data/lib/active_merchant/billing/integrations/helper.rb +93 -0
  101. data/lib/active_merchant/billing/integrations/hi_trust.rb +26 -0
  102. data/lib/active_merchant/billing/integrations/hi_trust/helper.rb +58 -0
  103. data/lib/active_merchant/billing/integrations/hi_trust/notification.rb +59 -0
  104. data/lib/active_merchant/billing/integrations/hi_trust/return.rb +67 -0
  105. data/lib/active_merchant/billing/integrations/nochex.rb +87 -0
  106. data/lib/active_merchant/billing/integrations/nochex/helper.rb +68 -0
  107. data/lib/active_merchant/billing/integrations/nochex/notification.rb +94 -0
  108. data/lib/active_merchant/billing/integrations/nochex/return.rb +10 -0
  109. data/lib/active_merchant/billing/integrations/notification.rb +62 -0
  110. data/lib/active_merchant/billing/integrations/paypal.rb +40 -0
  111. data/lib/active_merchant/billing/integrations/paypal/helper.rb +119 -0
  112. data/lib/active_merchant/billing/integrations/paypal/notification.rb +154 -0
  113. data/lib/active_merchant/billing/integrations/paypal/return.rb +10 -0
  114. data/lib/active_merchant/billing/integrations/quickpay.rb +18 -0
  115. data/lib/active_merchant/billing/integrations/quickpay/helper.rb +72 -0
  116. data/lib/active_merchant/billing/integrations/quickpay/notification.rb +74 -0
  117. data/lib/active_merchant/billing/integrations/return.rb +35 -0
  118. data/lib/active_merchant/billing/integrations/two_checkout.rb +23 -0
  119. data/lib/active_merchant/billing/integrations/two_checkout/helper.rb +59 -0
  120. data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +114 -0
  121. data/lib/active_merchant/billing/integrations/two_checkout/return.rb +17 -0
  122. data/lib/active_merchant/billing/response.rb +32 -0
  123. data/lib/active_merchant/lib/connection.rb +170 -0
  124. data/lib/active_merchant/lib/country.rb +319 -0
  125. data/lib/active_merchant/lib/error.rb +4 -0
  126. data/lib/active_merchant/lib/post_data.rb +22 -0
  127. data/lib/active_merchant/lib/posts_data.rb +47 -0
  128. data/lib/active_merchant/lib/requires_parameters.rb +16 -0
  129. data/lib/active_merchant/lib/utils.rb +18 -0
  130. data/lib/active_merchant/lib/validateable.rb +76 -0
  131. data/lib/certs/cacert.pem +7815 -0
  132. data/lib/support/gateway_support.rb +58 -0
  133. data/script/destroy +14 -0
  134. data/script/generate +14 -0
  135. data/test/fixtures.yml +355 -0
  136. data/test/remote/gateways/remote_authorize_net_cim_test.rb +460 -0
  137. data/test/remote/gateways/remote_authorize_net_test.rb +145 -0
  138. data/test/remote/gateways/remote_beanstream_interac_test.rb +53 -0
  139. data/test/remote/gateways/remote_beanstream_test.rb +150 -0
  140. data/test/remote/gateways/remote_braintree_test.rb +154 -0
  141. data/test/remote/gateways/remote_card_stream_test.rb +148 -0
  142. data/test/remote/gateways/remote_cyber_source_test.rb +144 -0
  143. data/test/remote/gateways/remote_data_cash_test.rb +357 -0
  144. data/test/remote/gateways/remote_efsnet_test.rb +81 -0
  145. data/test/remote/gateways/remote_elavon_test.rb +66 -0
  146. data/test/remote/gateways/remote_eway_test.rb +74 -0
  147. data/test/remote/gateways/remote_exact_test.rb +60 -0
  148. data/test/remote/gateways/remote_first_pay_test.rb +87 -0
  149. data/test/remote/gateways/remote_instapay_test.rb +61 -0
  150. data/test/remote/gateways/remote_jetpay_test.rb +103 -0
  151. data/test/remote/gateways/remote_linkpoint_test.rb +121 -0
  152. data/test/remote/gateways/remote_merchant_e_solutions_test.rb +173 -0
  153. data/test/remote/gateways/remote_merchant_ware_test.rb +113 -0
  154. data/test/remote/gateways/remote_modern_payments_cim_test.rb +58 -0
  155. data/test/remote/gateways/remote_modern_payments_test.rb +43 -0
  156. data/test/remote/gateways/remote_moneris_test.rb +82 -0
  157. data/test/remote/gateways/remote_net_registry_test.rb +85 -0
  158. data/test/remote/gateways/remote_netbilling_test.rb +70 -0
  159. data/test/remote/gateways/remote_ogone_test.rb +115 -0
  160. data/test/remote/gateways/remote_pay_junction_test.rb +143 -0
  161. data/test/remote/gateways/remote_pay_secure_test.rb +39 -0
  162. data/test/remote/gateways/remote_payflow_express_test.rb +50 -0
  163. data/test/remote/gateways/remote_payflow_test.rb +237 -0
  164. data/test/remote/gateways/remote_payflow_uk_test.rb +173 -0
  165. data/test/remote/gateways/remote_payment_express_test.rb +136 -0
  166. data/test/remote/gateways/remote_paypal_express_test.rb +49 -0
  167. data/test/remote/gateways/remote_paypal_test.rb +191 -0
  168. data/test/remote/gateways/remote_plugnpay_test.rb +72 -0
  169. data/test/remote/gateways/remote_psigate_test.rb +50 -0
  170. data/test/remote/gateways/remote_psl_card_test.rb +125 -0
  171. data/test/remote/gateways/remote_quickpay_test.rb +190 -0
  172. data/test/remote/gateways/remote_realex_test.rb +224 -0
  173. data/test/remote/gateways/remote_sage_bankcard_test.rb +109 -0
  174. data/test/remote/gateways/remote_sage_pay_test.rb +219 -0
  175. data/test/remote/gateways/remote_sage_test.rb +87 -0
  176. data/test/remote/gateways/remote_sage_virtual_check_test.rb +62 -0
  177. data/test/remote/gateways/remote_sallie_mae_test.rb +51 -0
  178. data/test/remote/gateways/remote_secure_pay_au_test.rb +40 -0
  179. data/test/remote/gateways/remote_secure_pay_tech_test.rb +37 -0
  180. data/test/remote/gateways/remote_secure_pay_test.rb +28 -0
  181. data/test/remote/gateways/remote_skipjack_test.rb +105 -0
  182. data/test/remote/gateways/remote_trans_first_test.rb +34 -0
  183. data/test/remote/gateways/remote_transax_test.rb +112 -0
  184. data/test/remote/gateways/remote_trust_commerce_test.rb +152 -0
  185. data/test/remote/gateways/remote_usa_epay_test.rb +46 -0
  186. data/test/remote/gateways/remote_verifi_test.rb +107 -0
  187. data/test/remote/gateways/remote_viaklix_test.rb +43 -0
  188. data/test/remote/gateways/remote_wirecard_test.rb +111 -0
  189. data/test/remote/integrations/remote_gestpay_integration_test.rb +37 -0
  190. data/test/remote/integrations/remote_paypal_integration_test.rb +26 -0
  191. data/test/test_helper.rb +182 -0
  192. data/test/unit/avs_result_test.rb +59 -0
  193. data/test/unit/base_test.rb +55 -0
  194. data/test/unit/check_test.rb +88 -0
  195. data/test/unit/connection_test.rb +129 -0
  196. data/test/unit/country_code_test.rb +33 -0
  197. data/test/unit/country_test.rb +64 -0
  198. data/test/unit/credit_card_formatting_test.rb +19 -0
  199. data/test/unit/credit_card_methods_test.rb +179 -0
  200. data/test/unit/credit_card_test.rb +318 -0
  201. data/test/unit/cvv_result_test.rb +33 -0
  202. data/test/unit/expiry_date_test.rb +32 -0
  203. data/test/unit/gateways/authorize_net_cim_test.rb +676 -0
  204. data/test/unit/gateways/authorize_net_test.rb +290 -0
  205. data/test/unit/gateways/beanstream_interac_test.rb +51 -0
  206. data/test/unit/gateways/beanstream_test.rb +108 -0
  207. data/test/unit/gateways/bogus_test.rb +46 -0
  208. data/test/unit/gateways/braintree_test.rb +126 -0
  209. data/test/unit/gateways/card_stream_test.rb +90 -0
  210. data/test/unit/gateways/cyber_source_test.rb +188 -0
  211. data/test/unit/gateways/data_cash_test.rb +133 -0
  212. data/test/unit/gateways/efsnet_test.rb +123 -0
  213. data/test/unit/gateways/elavon_test.rb +139 -0
  214. data/test/unit/gateways/eway_test.rb +118 -0
  215. data/test/unit/gateways/exact_test.rb +156 -0
  216. data/test/unit/gateways/first_pay_test.rb +125 -0
  217. data/test/unit/gateways/gateway_test.rb +48 -0
  218. data/test/unit/gateways/instapay_test.rb +102 -0
  219. data/test/unit/gateways/jetpay_test.rb +185 -0
  220. data/test/unit/gateways/linkpoint_test.rb +184 -0
  221. data/test/unit/gateways/merchant_e_solutions_test.rb +169 -0
  222. data/test/unit/gateways/merchant_ware_test.rb +188 -0
  223. data/test/unit/gateways/modern_payments_cim_test.rb +171 -0
  224. data/test/unit/gateways/moneris_test.rb +158 -0
  225. data/test/unit/gateways/net_registry_test.rb +416 -0
  226. data/test/unit/gateways/netbilling_test.rb +54 -0
  227. data/test/unit/gateways/ogone_test.rb +319 -0
  228. data/test/unit/gateways/pay_junction_test.rb +123 -0
  229. data/test/unit/gateways/pay_secure_test.rb +71 -0
  230. data/test/unit/gateways/payflow_express_test.rb +173 -0
  231. data/test/unit/gateways/payflow_express_uk_test.rb +86 -0
  232. data/test/unit/gateways/payflow_test.rb +305 -0
  233. data/test/unit/gateways/payflow_uk_test.rb +30 -0
  234. data/test/unit/gateways/payment_express_test.rb +195 -0
  235. data/test/unit/gateways/paypal_express_test.rb +382 -0
  236. data/test/unit/gateways/paypal_test.rb +569 -0
  237. data/test/unit/gateways/plugnpay_test.rb +86 -0
  238. data/test/unit/gateways/psigate_test.rb +169 -0
  239. data/test/unit/gateways/psl_card_test.rb +64 -0
  240. data/test/unit/gateways/quickpay_test.rb +112 -0
  241. data/test/unit/gateways/realex_test.rb +151 -0
  242. data/test/unit/gateways/sage_bankcard_test.rb +196 -0
  243. data/test/unit/gateways/sage_pay_test.rb +139 -0
  244. data/test/unit/gateways/sage_virtual_check_test.rb +71 -0
  245. data/test/unit/gateways/sallie_mae_test.rb +53 -0
  246. data/test/unit/gateways/secure_pay_au_test.rb +207 -0
  247. data/test/unit/gateways/secure_pay_tech_test.rb +44 -0
  248. data/test/unit/gateways/secure_pay_test.rb +87 -0
  249. data/test/unit/gateways/skip_jack_test.rb +213 -0
  250. data/test/unit/gateways/trans_first_test.rb +112 -0
  251. data/test/unit/gateways/trust_commerce_test.rb +90 -0
  252. data/test/unit/gateways/usa_epay_test.rb +128 -0
  253. data/test/unit/gateways/verifi_test.rb +96 -0
  254. data/test/unit/gateways/viaklix_test.rb +78 -0
  255. data/test/unit/gateways/wirecard_test.rb +250 -0
  256. data/test/unit/generators/test_gateway_generator.rb +46 -0
  257. data/test/unit/generators/test_generator_helper.rb +20 -0
  258. data/test/unit/generators/test_integration_generator.rb +53 -0
  259. data/test/unit/integrations/action_view_helper_test.rb +50 -0
  260. data/test/unit/integrations/bogus_module_test.rb +20 -0
  261. data/test/unit/integrations/chronopay_module_test.rb +13 -0
  262. data/test/unit/integrations/gestpay_module_test.rb +14 -0
  263. data/test/unit/integrations/helpers/bogus_helper_test.rb +28 -0
  264. data/test/unit/integrations/helpers/chronopay_helper_test.rb +67 -0
  265. data/test/unit/integrations/helpers/gestpay_helper_test.rb +100 -0
  266. data/test/unit/integrations/helpers/hi_trust_helper_test.rb +16 -0
  267. data/test/unit/integrations/helpers/nochex_helper_test.rb +53 -0
  268. data/test/unit/integrations/helpers/paypal_helper_test.rb +171 -0
  269. data/test/unit/integrations/helpers/quickpay_helper_test.rb +40 -0
  270. data/test/unit/integrations/helpers/two_checkout_helper_test.rb +92 -0
  271. data/test/unit/integrations/hi_trust_module_test.rb +13 -0
  272. data/test/unit/integrations/nochex_module_test.rb +13 -0
  273. data/test/unit/integrations/notifications/chronopay_notification_test.rb +66 -0
  274. data/test/unit/integrations/notifications/gestpay_notification_test.rb +60 -0
  275. data/test/unit/integrations/notifications/hi_trust_notification_test.rb +59 -0
  276. data/test/unit/integrations/notifications/nochex_notification_test.rb +51 -0
  277. data/test/unit/integrations/notifications/notification_test.rb +54 -0
  278. data/test/unit/integrations/notifications/paypal_notification_test.rb +85 -0
  279. data/test/unit/integrations/notifications/quickpay_notification_test.rb +69 -0
  280. data/test/unit/integrations/notifications/two_checkout_notification_test.rb +55 -0
  281. data/test/unit/integrations/paypal_module_test.rb +28 -0
  282. data/test/unit/integrations/quickpay_module_test.rb +9 -0
  283. data/test/unit/integrations/returns/chronopay_return_test.rb +11 -0
  284. data/test/unit/integrations/returns/gestpay_return_test.rb +10 -0
  285. data/test/unit/integrations/returns/hi_trust_return_test.rb +24 -0
  286. data/test/unit/integrations/returns/nochex_return_test.rb +10 -0
  287. data/test/unit/integrations/returns/paypal_return_test.rb +10 -0
  288. data/test/unit/integrations/returns/return_test.rb +11 -0
  289. data/test/unit/integrations/returns/two_checkout_return_test.rb +24 -0
  290. data/test/unit/integrations/two_checkout_module_test.rb +13 -0
  291. data/test/unit/post_data_test.rb +55 -0
  292. data/test/unit/posts_data_test.rb +48 -0
  293. data/test/unit/response_test.rb +28 -0
  294. data/test/unit/utils_test.rb +7 -0
  295. data/test/unit/validateable_test.rb +60 -0
  296. metadata +368 -0
@@ -0,0 +1,121 @@
1
+ #
2
+ # In order for this test to pass, a valid store number and PEM file
3
+ # are required. Unfortunately, with LinkPoint YOU CAN'T JUST USE ANY
4
+ # OLD STORE NUMBER. Also, you can't just generate your own PEM file.
5
+ # You'll need to use a special PEM file provided by LinkPoint.
6
+ #
7
+ # Go to http://www.linkpoint.com/support/sup_teststore.asp to set up
8
+ # a test account. Once you receive your test account you can get your
9
+ # pem file by clicking the Support link on the navigation menu and then
10
+ # clicking the Download Center link.
11
+ #
12
+ # You will also want to change your test account's fraud settings
13
+ # while running these tests. Click the admin link at the top of
14
+ # LinkPoint Central. Then click "set lockout times" under Fraud Settings
15
+ # You will want to set Duplicate lockout time to 0 so that you can run
16
+ # the tests more than once without triggering this fraud detection.
17
+ #
18
+ # The LinkPoint staging server will also return different responses based
19
+ # on the cent amount of the purhcase. Complete details can be found at
20
+ require 'test_helper'
21
+
22
+ # http://sgserror.com/staging.php
23
+ class LinkpointTest < Test::Unit::TestCase
24
+ def setup
25
+ Base.mode = :test
26
+
27
+ @gateway = LinkpointGateway.new(fixtures(:linkpoint))
28
+
29
+ # Test credit card numbers
30
+ # American Express: 371111111111111
31
+ # Discover: 6011-1111-1111-1111
32
+ # JCB: 311111111111111
33
+ # MasterCard: 5111-1111-1111-1111
34
+ # MasterCard: 5419-8400-0000-0003
35
+ # Visa: 4111-1111-1111-1111
36
+
37
+ @amount = 100
38
+ @credit_card = credit_card('4111111111111111')
39
+ @options = { :order_id => generate_unique_id, :billing_address => address }
40
+ end
41
+
42
+ def test_successful_authorization
43
+ assert response = @gateway.authorize(1000, @credit_card, @options)
44
+
45
+ assert_instance_of Response, response
46
+ assert_success response
47
+ assert_equal "APPROVED", response.params["approved"]
48
+ end
49
+
50
+ def test_successful_authorization_and_capture
51
+ assert authorization = @gateway.authorize(@amount, @credit_card, @options)
52
+ assert_success authorization
53
+ assert authorization.test?
54
+
55
+ assert capture = @gateway.capture(@amount, authorization.authorization)
56
+ assert_success capture
57
+ assert_equal 'ACCEPTED', capture.message
58
+ end
59
+
60
+ def test_successful_purchase_without_cvv2_code
61
+ @credit_card.verification_value = nil
62
+
63
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
64
+ assert_success response
65
+ assert_equal "APPROVED", response.params["approved"]
66
+ assert_equal 'NNN', response.params["avs"]
67
+ end
68
+
69
+ def test_successful_purchase_with_cvv2_code
70
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
71
+ assert_success response
72
+ assert_equal "APPROVED", response.params["approved"]
73
+ assert_equal 'NNNM', response.params["avs"]
74
+ end
75
+
76
+ def test_successful_purchase_and_void
77
+ purchase = @gateway.purchase(@amount, @credit_card, @options)
78
+ assert_success purchase
79
+
80
+ assert void = @gateway.void(purchase.authorization)
81
+ assert_success void
82
+ end
83
+
84
+ def test_successfull_purchase_and_credit
85
+ assert purchase = @gateway.purchase(2400, @credit_card, @options)
86
+ assert_success purchase
87
+
88
+ assert credit = @gateway.credit(2400, purchase.authorization)
89
+ assert_success credit
90
+ end
91
+
92
+ def test_successfull_purchase_with_item_entity
93
+ @options.merge!({:line_items => [
94
+ {:id => '123456', :description => "Logo T-Shirt", :price => "12.00", :quantity => '1', :options =>
95
+ [{:name => "Color", :value => "Red"}, {:name => "Size", :value => "XL"}]},
96
+ {:id => '111', :description => "keychain", :price => "3.00", :quantity => '1'}]})
97
+ assert purchase = @gateway.purchase(1500, @credit_card, @options)
98
+ assert_success purchase
99
+
100
+ end
101
+
102
+ def test_successful_recurring_payment
103
+ assert response = @gateway.recurring(2400, @credit_card,
104
+ :order_id => generate_unique_id,
105
+ :installments => 12,
106
+ :startdate => "immediate",
107
+ :periodicity => :monthly,
108
+ :billing_address => address
109
+ )
110
+
111
+ assert_success response
112
+ assert_equal "APPROVED", response.params["approved"]
113
+ end
114
+
115
+ def test_declined_purchase_with_invalid_credit_card
116
+ @credit_card.number = '1111111111111111'
117
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
118
+ assert_failure response
119
+ assert_equal "DECLINED", response.params["approved"]
120
+ end
121
+ end
@@ -0,0 +1,173 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteMerchantESolutionTest < Test::Unit::TestCase
4
+
5
+
6
+ def setup
7
+ Base.gateway_mode = :test
8
+
9
+ @gateway = MerchantESolutionsGateway.new(fixtures(:merchant_esolutions))
10
+
11
+ @amount = 100
12
+ @credit_card = credit_card('4111111111111111')
13
+ @declined_card = credit_card('4111111111111112')
14
+
15
+ @options = {
16
+ :billing_address => {
17
+ :name => 'John Doe',
18
+ :address1 => '123 State Street',
19
+ :address2 => 'Apartment 1',
20
+ :city => 'Nowhere',
21
+ :state => 'MT',
22
+ :country => 'US',
23
+ :zip => '55555',
24
+ :phone => '555-555-5555'
25
+ }
26
+ }
27
+ end
28
+
29
+ def test_successful_purchase
30
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
31
+ assert_success response
32
+ assert_equal 'This transaction has been approved', response.message
33
+ end
34
+
35
+ def test_unsuccessful_purchase
36
+ assert response = @gateway.purchase(@amount, @declined_card, @options)
37
+ assert_failure response
38
+ assert_equal 'Card No. Error', response.message
39
+ end
40
+
41
+ def test_authorize_and_capture
42
+ amount = @amount
43
+ assert auth = @gateway.authorize(amount, @credit_card, @options)
44
+ assert_success auth
45
+ assert_equal 'This transaction has been approved', auth.message
46
+ assert auth.authorization
47
+ sleep 15 # I have found that it is best to wait a few seconds to capture an authorized transaction
48
+ assert capture = @gateway.capture(amount, auth.authorization)
49
+ assert_success capture
50
+ assert_equal 'This transaction has been approved', capture.message
51
+ end
52
+
53
+ def test_failed_capture
54
+ assert response = @gateway.capture(@amount, '')
55
+ assert_failure response
56
+ assert_equal 'Invalid Transaction ID', response.message
57
+ end
58
+
59
+ def test_store_purchase_unstore
60
+ assert store = @gateway.store(@credit_card)
61
+ assert_success store
62
+ assert_equal 'This transaction has been approved', store.message
63
+ assert purchase = @gateway.purchase(@amount, store.authorization, @options)
64
+ assert_success purchase
65
+ assert_equal 'This transaction has been approved', purchase.message
66
+ assert unstore = @gateway.unstore(store.authorization)
67
+ assert_success unstore
68
+ assert_equal 'This transaction has been approved', unstore.message
69
+ assert purchase_after_unstore = @gateway.purchase(@amount, store.authorization, @options)
70
+ assert_failure purchase_after_unstore
71
+ assert_equal 'Invalid Card ID', purchase_after_unstore.message
72
+ end
73
+
74
+ def test_authorize_and_void
75
+ assert auth = @gateway.authorize(@amount, @credit_card, @options)
76
+ assert_success auth
77
+ assert_equal 'This transaction has been approved', auth.message
78
+ assert auth.authorization
79
+ assert void = @gateway.void(auth.authorization)
80
+ assert_success void
81
+ assert_equal 'This transaction has been approved', void.message
82
+ end
83
+
84
+ def test_unsuccessful_unstore
85
+ assert unstore = @gateway.unstore('')
86
+ assert_failure unstore
87
+ assert_equal 'Invalid Card ID', unstore.message
88
+ end
89
+
90
+ def test_unsuccessful_void
91
+ assert void = @gateway.void('')
92
+ assert_failure void
93
+ assert_equal 'Invalid Transaction ID', void.message
94
+ end
95
+
96
+ def test_successful_avs_check
97
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
98
+ assert_equal 'Y', response.avs_result['code']
99
+ assert_equal 'Street address and 5-digit postal code match.', response.avs_result['message']
100
+ assert_equal 'Y', response.avs_result['street_match']
101
+ assert_equal 'Y', response.avs_result['postal_match']
102
+ end
103
+
104
+ def test_unsuccessful_avs_check_with_bad_street_address
105
+ options = {
106
+ :billing_address => {
107
+ :name => 'John Doe',
108
+ :address1 => '124 State Street',
109
+ :address2 => 'Apartment 1',
110
+ :city => 'Nowhere',
111
+ :state => 'MT',
112
+ :country => 'US',
113
+ :zip => '55555',
114
+ :phone => '555-555-5555'
115
+ }
116
+ }
117
+ assert response = @gateway.purchase(@amount, @credit_card, options)
118
+ assert_equal 'Z', response.avs_result['code']
119
+ assert_equal 'Street address does not match, but 5-digit postal code matches.', response.avs_result['message']
120
+ assert_equal 'N', response.avs_result['street_match']
121
+ assert_equal 'Y', response.avs_result['postal_match']
122
+ end
123
+
124
+ def test_unsuccessful_avs_check_with_bad_zip
125
+ options = {
126
+ :billing_address => {
127
+ :name => 'John Doe',
128
+ :address1 => '123 State Street',
129
+ :address2 => 'Apartment 1',
130
+ :city => 'Nowhere',
131
+ :state => 'MT',
132
+ :country => 'US',
133
+ :zip => '55554',
134
+ :phone => '555-555-5555'
135
+ }
136
+ }
137
+ assert response = @gateway.purchase(@amount, @credit_card, options)
138
+ assert_equal 'A', response.avs_result['code']
139
+ assert_equal 'Street address matches, but 5-digit and 9-digit postal code do not match.', response.avs_result['message']
140
+ assert_equal 'Y', response.avs_result['street_match']
141
+ assert_equal 'N', response.avs_result['postal_match']
142
+ end
143
+
144
+ def test_successful_cvv_check
145
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
146
+ assert_equal 'M', response.cvv_result['code']
147
+ assert_equal 'Match', response.cvv_result['message']
148
+ end
149
+
150
+ def test_unsuccessful_cvv_check
151
+ credit_card = ActiveMerchant::Billing::CreditCard.new({
152
+ :first_name => 'John',
153
+ :last_name => 'Doe',
154
+ :number => '4111111111111111',
155
+ :month => '11',
156
+ :year => (Time.now.year + 1).to_s,
157
+ :verification_value => '555'
158
+ })
159
+ assert response = @gateway.purchase(@amount, credit_card, @options)
160
+ assert_equal 'N', response.cvv_result['code']
161
+ assert_equal 'No Match', response.cvv_result['message']
162
+ end
163
+
164
+ def test_invalid_login
165
+ gateway = MerchantESolutionsGateway.new(
166
+ :login => '',
167
+ :password => ''
168
+ )
169
+ assert response = gateway.purchase(@amount, @credit_card, @options)
170
+ assert_failure response
171
+ assert_equal 'Invalid ID or Key', response.message
172
+ end
173
+ end
@@ -0,0 +1,113 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteMerchantWareTest < Test::Unit::TestCase
4
+ def setup
5
+ @gateway = MerchantWareGateway.new(fixtures(:merchant_ware))
6
+
7
+ @amount = rand(100) + 100
8
+
9
+ @credit_card = credit_card('5105105105105100')
10
+
11
+ @options = {
12
+ :order_id => generate_unique_id,
13
+ :billing_address => address
14
+ }
15
+ end
16
+
17
+ def test_successful_authorization
18
+ assert response = @gateway.authorize(@amount, @credit_card, @options)
19
+ assert_success response
20
+ assert_equal 'APPROVED', response.message
21
+ end
22
+
23
+ def test_unsuccessful_authorization
24
+ @credit_card.number = "1234567890123"
25
+ assert response = @gateway.authorize(@amount, @credit_card, @options)
26
+ assert_failure response
27
+ end
28
+
29
+ def test_successful_purchase
30
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
31
+ assert_success response
32
+ assert_equal 'APPROVED', response.message
33
+ end
34
+
35
+ def test_unsuccessful_purchase
36
+ @credit_card.number = "1234567890123"
37
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
38
+ assert_failure response
39
+ end
40
+
41
+ def test_authorize_and_capture
42
+ assert auth = @gateway.authorize(@amount, @credit_card, @options)
43
+ assert_success auth
44
+
45
+ assert auth.authorization
46
+ assert capture = @gateway.capture(@amount, auth.authorization, @options)
47
+ assert_success capture
48
+ end
49
+
50
+ def test_authorize_and_credit
51
+ assert auth = @gateway.authorize(@amount, @credit_card, @options)
52
+ assert_success auth
53
+ assert auth.authorization
54
+
55
+ assert credit = @gateway.credit(@amount, @credit_card, @options)
56
+ assert_success credit
57
+ assert_not_nil credit.authorization
58
+ end
59
+
60
+ def test_purchase_and_credit
61
+ assert purchase = @gateway.purchase(@amount, @credit_card, @options)
62
+ assert_success purchase
63
+ assert purchase.authorization
64
+
65
+ assert credit = @gateway.credit(@amount, @credit_card, @options)
66
+ assert_success credit
67
+ assert_not_nil credit.authorization
68
+ end
69
+
70
+ def test_purchase_and_reference_credit
71
+ assert auth = @gateway.purchase(@amount, @credit_card, @options)
72
+ assert_success auth
73
+ assert auth.authorization
74
+
75
+ assert credit = @gateway.credit(@amount, auth.authorization, @options)
76
+ assert_success credit
77
+ assert_not_nil credit.authorization
78
+ end
79
+
80
+ def test_purchase_and_void
81
+ assert purchase = @gateway.purchase(@amount, @credit_card, @options)
82
+ assert_success purchase
83
+
84
+ assert void = @gateway.void(purchase.authorization)
85
+ assert_success void
86
+ end
87
+
88
+ # seems as though only purchases can be voided
89
+ def test_authorization_and_failed_void
90
+ assert authorization = @gateway.authorize(@amount, @credit_card, @options)
91
+ assert_success authorization
92
+
93
+ assert void = @gateway.void(authorization.authorization)
94
+ assert_failure void
95
+ end
96
+
97
+ def test_failed_capture
98
+ assert response = @gateway.capture(@amount, '', @options)
99
+ assert_failure response
100
+ assert_equal 'Server was unable to process request. ---> strReferenceCode should be at least 1 to at most 100 characters in size. Parameter name: strReferenceCode', response.message
101
+ end
102
+
103
+ def test_invalid_login
104
+ gateway = MerchantWareGateway.new(
105
+ :login => '',
106
+ :password => '',
107
+ :name => ''
108
+ )
109
+ assert response = gateway.purchase(@amount, @credit_card, @options)
110
+ assert_failure response
111
+ assert_equal 'Server was unable to process request. ---> Invalid Credentials.', response.message
112
+ end
113
+ end
@@ -0,0 +1,58 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteModernPaymentsCimTest < Test::Unit::TestCase
4
+
5
+
6
+ def setup
7
+ @gateway = ModernPaymentsCimGateway.new(fixtures(:modern_payments))
8
+
9
+ @amount = 100
10
+ @credit_card = credit_card('4111111111111111')
11
+ @declined_card = credit_card('4000000000000000')
12
+
13
+ @options = {
14
+ :billing_address => address,
15
+ :customer => 'JIMSMITH2000'
16
+ }
17
+ end
18
+
19
+ def test_successful_create_customer
20
+ response = @gateway.create_customer(@options)
21
+ assert_success response
22
+ assert !response.params["create_customer_result"].blank?
23
+ end
24
+
25
+ def test_successful_modify_customer_credit_card
26
+ customer = @gateway.create_customer(@options)
27
+ assert_success customer
28
+
29
+ customer_id = customer.params["create_customer_result"]
30
+
31
+ credit_card = @gateway.modify_customer_credit_card(customer_id, @credit_card)
32
+ assert_success credit_card
33
+ assert !credit_card.params["modify_customer_credit_card_result"].blank?
34
+ end
35
+
36
+ def test_succsessful_authorize_credit_card_payment
37
+ customer = @gateway.create_customer(@options)
38
+ assert_success customer
39
+
40
+ customer_id = customer.params["create_customer_result"]
41
+
42
+ credit_card = @gateway.modify_customer_credit_card(customer_id, @credit_card)
43
+ assert_success credit_card
44
+
45
+ payment = @gateway.authorize_credit_card_payment(customer_id, @amount)
46
+ assert_success payment
47
+ end
48
+
49
+ def test_invalid_login
50
+ gateway = ModernPaymentsCimGateway.new(
51
+ :login => '',
52
+ :password => ''
53
+ )
54
+ assert response = gateway.create_customer(@options)
55
+ assert_failure response
56
+ assert_equal ModernPaymentsCimGateway::ERROR_MESSAGE, response.message
57
+ end
58
+ end