johnideal-activemerchant 1.4.4

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 (300) hide show
  1. data/.gitignore +2 -0
  2. data/CHANGELOG +448 -0
  3. data/CONTRIBUTERS +106 -0
  4. data/MIT-LICENSE +20 -0
  5. data/README +134 -0
  6. data/Rakefile +167 -0
  7. data/VERSION +1 -0
  8. data/activemerchant.gemspec +484 -0
  9. data/gem-public_cert.pem +20 -0
  10. data/generators/gateway/USAGE +5 -0
  11. data/generators/gateway/gateway_generator.rb +61 -0
  12. data/generators/gateway/templates/gateway.rb +77 -0
  13. data/generators/gateway/templates/gateway_test.rb +49 -0
  14. data/generators/gateway/templates/remote_gateway_test.rb +57 -0
  15. data/generators/integration/USAGE +5 -0
  16. data/generators/integration/integration_generator.rb +68 -0
  17. data/generators/integration/templates/helper.rb +34 -0
  18. data/generators/integration/templates/helper_test.rb +54 -0
  19. data/generators/integration/templates/integration.rb +18 -0
  20. data/generators/integration/templates/module_test.rb +9 -0
  21. data/generators/integration/templates/notification.rb +100 -0
  22. data/generators/integration/templates/notification_test.rb +41 -0
  23. data/init.rb +3 -0
  24. data/lib/active_merchant/billing/avs_result.rb +98 -0
  25. data/lib/active_merchant/billing/base.rb +57 -0
  26. data/lib/active_merchant/billing/check.rb +68 -0
  27. data/lib/active_merchant/billing/credit_card.rb +159 -0
  28. data/lib/active_merchant/billing/credit_card_formatting.rb +21 -0
  29. data/lib/active_merchant/billing/credit_card_methods.rb +125 -0
  30. data/lib/active_merchant/billing/cvv_result.rb +38 -0
  31. data/lib/active_merchant/billing/expiry_date.rb +34 -0
  32. data/lib/active_merchant/billing/gateway.rb +158 -0
  33. data/lib/active_merchant/billing/gateways/authorize_net.rb +657 -0
  34. data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +703 -0
  35. data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +233 -0
  36. data/lib/active_merchant/billing/gateways/beanstream.rb +102 -0
  37. data/lib/active_merchant/billing/gateways/beanstream_interac.rb +54 -0
  38. data/lib/active_merchant/billing/gateways/bogus.rb +98 -0
  39. data/lib/active_merchant/billing/gateways/braintree.rb +17 -0
  40. data/lib/active_merchant/billing/gateways/card_stream.rb +230 -0
  41. data/lib/active_merchant/billing/gateways/cyber_source.rb +406 -0
  42. data/lib/active_merchant/billing/gateways/data_cash.rb +595 -0
  43. data/lib/active_merchant/billing/gateways/efsnet.rb +229 -0
  44. data/lib/active_merchant/billing/gateways/eway.rb +277 -0
  45. data/lib/active_merchant/billing/gateways/exact.rb +222 -0
  46. data/lib/active_merchant/billing/gateways/instapay.rb +164 -0
  47. data/lib/active_merchant/billing/gateways/linkpoint.rb +396 -0
  48. data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +154 -0
  49. data/lib/active_merchant/billing/gateways/merchant_ware.rb +283 -0
  50. data/lib/active_merchant/billing/gateways/modern_payments.rb +36 -0
  51. data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +214 -0
  52. data/lib/active_merchant/billing/gateways/moneris.rb +205 -0
  53. data/lib/active_merchant/billing/gateways/net_registry.rb +189 -0
  54. data/lib/active_merchant/billing/gateways/netbilling.rb +168 -0
  55. data/lib/active_merchant/billing/gateways/pay_junction.rb +392 -0
  56. data/lib/active_merchant/billing/gateways/pay_secure.rb +120 -0
  57. data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +207 -0
  58. data/lib/active_merchant/billing/gateways/payflow/payflow_express_response.rb +39 -0
  59. data/lib/active_merchant/billing/gateways/payflow/payflow_response.rb +13 -0
  60. data/lib/active_merchant/billing/gateways/payflow.rb +236 -0
  61. data/lib/active_merchant/billing/gateways/payflow_express.rb +138 -0
  62. data/lib/active_merchant/billing/gateways/payflow_express_uk.rb +15 -0
  63. data/lib/active_merchant/billing/gateways/payflow_uk.rb +21 -0
  64. data/lib/active_merchant/billing/gateways/payment_express.rb +230 -0
  65. data/lib/active_merchant/billing/gateways/paymentech_orbital/paymentech_orbital_response.rb +72 -0
  66. data/lib/active_merchant/billing/gateways/paymentech_orbital.rb +170 -0
  67. data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +325 -0
  68. data/lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb +38 -0
  69. data/lib/active_merchant/billing/gateways/paypal.rb +108 -0
  70. data/lib/active_merchant/billing/gateways/paypal_ca.rb +13 -0
  71. data/lib/active_merchant/billing/gateways/paypal_express.rb +130 -0
  72. data/lib/active_merchant/billing/gateways/paypal_express_common.rb +20 -0
  73. data/lib/active_merchant/billing/gateways/plugnpay.rb +292 -0
  74. data/lib/active_merchant/billing/gateways/protx.rb +307 -0
  75. data/lib/active_merchant/billing/gateways/psigate.rb +214 -0
  76. data/lib/active_merchant/billing/gateways/psl_card.rb +306 -0
  77. data/lib/active_merchant/billing/gateways/quickpay.rb +213 -0
  78. data/lib/active_merchant/billing/gateways/realex.rb +200 -0
  79. data/lib/active_merchant/billing/gateways/sage/sage_bankcard.rb +88 -0
  80. data/lib/active_merchant/billing/gateways/sage/sage_core.rb +110 -0
  81. data/lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb +97 -0
  82. data/lib/active_merchant/billing/gateways/sage.rb +146 -0
  83. data/lib/active_merchant/billing/gateways/secure_pay.rb +31 -0
  84. data/lib/active_merchant/billing/gateways/secure_pay_au.rb +157 -0
  85. data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +113 -0
  86. data/lib/active_merchant/billing/gateways/skip_jack.rb +442 -0
  87. data/lib/active_merchant/billing/gateways/smart_ps.rb +254 -0
  88. data/lib/active_merchant/billing/gateways/trans_first.rb +127 -0
  89. data/lib/active_merchant/billing/gateways/transax.rb +26 -0
  90. data/lib/active_merchant/billing/gateways/trust_commerce.rb +418 -0
  91. data/lib/active_merchant/billing/gateways/usa_epay.rb +194 -0
  92. data/lib/active_merchant/billing/gateways/verifi.rb +228 -0
  93. data/lib/active_merchant/billing/gateways/viaklix.rb +165 -0
  94. data/lib/active_merchant/billing/gateways/wirecard.rb +318 -0
  95. data/lib/active_merchant/billing/gateways.rb +3 -0
  96. data/lib/active_merchant/billing/integrations/action_view_helper.rb +79 -0
  97. data/lib/active_merchant/billing/integrations/bogus/helper.rb +17 -0
  98. data/lib/active_merchant/billing/integrations/bogus/notification.rb +11 -0
  99. data/lib/active_merchant/billing/integrations/bogus/return.rb +10 -0
  100. data/lib/active_merchant/billing/integrations/bogus.rb +22 -0
  101. data/lib/active_merchant/billing/integrations/chronopay/helper.rb +81 -0
  102. data/lib/active_merchant/billing/integrations/chronopay/notification.rb +156 -0
  103. data/lib/active_merchant/billing/integrations/chronopay/return.rb +10 -0
  104. data/lib/active_merchant/billing/integrations/chronopay.rb +22 -0
  105. data/lib/active_merchant/billing/integrations/gestpay/common.rb +42 -0
  106. data/lib/active_merchant/billing/integrations/gestpay/helper.rb +70 -0
  107. data/lib/active_merchant/billing/integrations/gestpay/notification.rb +83 -0
  108. data/lib/active_merchant/billing/integrations/gestpay/return.rb +10 -0
  109. data/lib/active_merchant/billing/integrations/gestpay.rb +26 -0
  110. data/lib/active_merchant/billing/integrations/helper.rb +93 -0
  111. data/lib/active_merchant/billing/integrations/hi_trust/helper.rb +58 -0
  112. data/lib/active_merchant/billing/integrations/hi_trust/notification.rb +59 -0
  113. data/lib/active_merchant/billing/integrations/hi_trust/return.rb +67 -0
  114. data/lib/active_merchant/billing/integrations/hi_trust.rb +26 -0
  115. data/lib/active_merchant/billing/integrations/nochex/helper.rb +68 -0
  116. data/lib/active_merchant/billing/integrations/nochex/notification.rb +94 -0
  117. data/lib/active_merchant/billing/integrations/nochex/return.rb +10 -0
  118. data/lib/active_merchant/billing/integrations/nochex.rb +87 -0
  119. data/lib/active_merchant/billing/integrations/notification.rb +62 -0
  120. data/lib/active_merchant/billing/integrations/paypal/helper.rb +118 -0
  121. data/lib/active_merchant/billing/integrations/paypal/notification.rb +154 -0
  122. data/lib/active_merchant/billing/integrations/paypal/return.rb +10 -0
  123. data/lib/active_merchant/billing/integrations/paypal.rb +40 -0
  124. data/lib/active_merchant/billing/integrations/quickpay/helper.rb +72 -0
  125. data/lib/active_merchant/billing/integrations/quickpay/notification.rb +74 -0
  126. data/lib/active_merchant/billing/integrations/quickpay.rb +18 -0
  127. data/lib/active_merchant/billing/integrations/return.rb +35 -0
  128. data/lib/active_merchant/billing/integrations/two_checkout/helper.rb +59 -0
  129. data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +114 -0
  130. data/lib/active_merchant/billing/integrations/two_checkout/return.rb +17 -0
  131. data/lib/active_merchant/billing/integrations/two_checkout.rb +23 -0
  132. data/lib/active_merchant/billing/integrations.rb +22 -0
  133. data/lib/active_merchant/billing/response.rb +32 -0
  134. data/lib/active_merchant/lib/connection.rb +171 -0
  135. data/lib/active_merchant/lib/country.rb +319 -0
  136. data/lib/active_merchant/lib/error.rb +4 -0
  137. data/lib/active_merchant/lib/post_data.rb +22 -0
  138. data/lib/active_merchant/lib/posts_data.rb +47 -0
  139. data/lib/active_merchant/lib/requires_parameters.rb +16 -0
  140. data/lib/active_merchant/lib/utils.rb +18 -0
  141. data/lib/active_merchant/lib/validateable.rb +76 -0
  142. data/lib/active_merchant.rb +60 -0
  143. data/lib/certs/cacert.pem +7815 -0
  144. data/lib/support/gateway_support.rb +58 -0
  145. data/script/destroy +14 -0
  146. data/script/generate +14 -0
  147. data/test/fixtures.yml +335 -0
  148. data/test/remote/gateways/remote_authorize_net_cim_test.rb +459 -0
  149. data/test/remote/gateways/remote_authorize_net_test.rb +145 -0
  150. data/test/remote/gateways/remote_beanstream_interac_test.rb +53 -0
  151. data/test/remote/gateways/remote_beanstream_test.rb +150 -0
  152. data/test/remote/gateways/remote_braintree_test.rb +154 -0
  153. data/test/remote/gateways/remote_card_stream_test.rb +148 -0
  154. data/test/remote/gateways/remote_cyber_source_test.rb +144 -0
  155. data/test/remote/gateways/remote_data_cash_test.rb +357 -0
  156. data/test/remote/gateways/remote_efsnet_test.rb +81 -0
  157. data/test/remote/gateways/remote_eway_test.rb +74 -0
  158. data/test/remote/gateways/remote_exact_test.rb +60 -0
  159. data/test/remote/gateways/remote_instapay_test.rb +61 -0
  160. data/test/remote/gateways/remote_linkpoint_test.rb +112 -0
  161. data/test/remote/gateways/remote_merchant_e_solutions_test.rb +173 -0
  162. data/test/remote/gateways/remote_merchant_ware_test.rb +113 -0
  163. data/test/remote/gateways/remote_modern_payments_cim_test.rb +58 -0
  164. data/test/remote/gateways/remote_modern_payments_test.rb +43 -0
  165. data/test/remote/gateways/remote_moneris_test.rb +82 -0
  166. data/test/remote/gateways/remote_net_registry_test.rb +85 -0
  167. data/test/remote/gateways/remote_netbilling_test.rb +70 -0
  168. data/test/remote/gateways/remote_pay_junction_test.rb +143 -0
  169. data/test/remote/gateways/remote_pay_secure_test.rb +39 -0
  170. data/test/remote/gateways/remote_payflow_express_test.rb +50 -0
  171. data/test/remote/gateways/remote_payflow_test.rb +237 -0
  172. data/test/remote/gateways/remote_payflow_uk_test.rb +173 -0
  173. data/test/remote/gateways/remote_payment_express_test.rb +136 -0
  174. data/test/remote/gateways/remote_paymentech_orbital_test.rb +57 -0
  175. data/test/remote/gateways/remote_paypal_express_test.rb +49 -0
  176. data/test/remote/gateways/remote_paypal_test.rb +167 -0
  177. data/test/remote/gateways/remote_plugnpay_test.rb +72 -0
  178. data/test/remote/gateways/remote_protx_test.rb +219 -0
  179. data/test/remote/gateways/remote_psigate_test.rb +50 -0
  180. data/test/remote/gateways/remote_psl_card_test.rb +125 -0
  181. data/test/remote/gateways/remote_quickpay_test.rb +190 -0
  182. data/test/remote/gateways/remote_realex_test.rb +224 -0
  183. data/test/remote/gateways/remote_sage_bankcard_test.rb +109 -0
  184. data/test/remote/gateways/remote_sage_test.rb +87 -0
  185. data/test/remote/gateways/remote_sage_virtual_check_test.rb +62 -0
  186. data/test/remote/gateways/remote_secure_pay_au_test.rb +40 -0
  187. data/test/remote/gateways/remote_secure_pay_tech_test.rb +37 -0
  188. data/test/remote/gateways/remote_secure_pay_test.rb +28 -0
  189. data/test/remote/gateways/remote_skipjack_test.rb +105 -0
  190. data/test/remote/gateways/remote_trans_first_test.rb +34 -0
  191. data/test/remote/gateways/remote_transax_test.rb +112 -0
  192. data/test/remote/gateways/remote_trust_commerce_test.rb +152 -0
  193. data/test/remote/gateways/remote_usa_epay_test.rb +46 -0
  194. data/test/remote/gateways/remote_verifi_test.rb +107 -0
  195. data/test/remote/gateways/remote_viaklix_test.rb +43 -0
  196. data/test/remote/gateways/remote_wirecard_test.rb +111 -0
  197. data/test/remote/integrations/remote_gestpay_integration_test.rb +37 -0
  198. data/test/remote/integrations/remote_paypal_integration_test.rb +26 -0
  199. data/test/test_helper.rb +182 -0
  200. data/test/unit/avs_result_test.rb +59 -0
  201. data/test/unit/base_test.rb +55 -0
  202. data/test/unit/check_test.rb +88 -0
  203. data/test/unit/connection_test.rb +129 -0
  204. data/test/unit/country_code_test.rb +33 -0
  205. data/test/unit/country_test.rb +64 -0
  206. data/test/unit/credit_card_formatting_test.rb +19 -0
  207. data/test/unit/credit_card_methods_test.rb +170 -0
  208. data/test/unit/credit_card_test.rb +318 -0
  209. data/test/unit/cvv_result_test.rb +33 -0
  210. data/test/unit/expiry_date_test.rb +32 -0
  211. data/test/unit/gateways/authorize_net_cim_test.rb +638 -0
  212. data/test/unit/gateways/authorize_net_test.rb +290 -0
  213. data/test/unit/gateways/beanstream_interac_test.rb +51 -0
  214. data/test/unit/gateways/beanstream_test.rb +108 -0
  215. data/test/unit/gateways/bogus_test.rb +46 -0
  216. data/test/unit/gateways/braintree_test.rb +126 -0
  217. data/test/unit/gateways/card_stream_test.rb +90 -0
  218. data/test/unit/gateways/cyber_source_test.rb +188 -0
  219. data/test/unit/gateways/data_cash_test.rb +133 -0
  220. data/test/unit/gateways/efsnet_test.rb +123 -0
  221. data/test/unit/gateways/eway_test.rb +118 -0
  222. data/test/unit/gateways/exact_test.rb +156 -0
  223. data/test/unit/gateways/gateway_test.rb +48 -0
  224. data/test/unit/gateways/instapay_test.rb +102 -0
  225. data/test/unit/gateways/linkpoint_test.rb +167 -0
  226. data/test/unit/gateways/merchant_e_solutions_test.rb +169 -0
  227. data/test/unit/gateways/merchant_ware_test.rb +188 -0
  228. data/test/unit/gateways/modern_payments_cim_test.rb +171 -0
  229. data/test/unit/gateways/moneris_test.rb +158 -0
  230. data/test/unit/gateways/net_registry_test.rb +416 -0
  231. data/test/unit/gateways/netbilling_test.rb +54 -0
  232. data/test/unit/gateways/pay_junction_test.rb +123 -0
  233. data/test/unit/gateways/pay_secure_test.rb +71 -0
  234. data/test/unit/gateways/payflow_express_test.rb +173 -0
  235. data/test/unit/gateways/payflow_express_uk_test.rb +86 -0
  236. data/test/unit/gateways/payflow_test.rb +305 -0
  237. data/test/unit/gateways/payflow_uk_test.rb +30 -0
  238. data/test/unit/gateways/payment_express_test.rb +195 -0
  239. data/test/unit/gateways/paymentech_orbital_test.rb +117 -0
  240. data/test/unit/gateways/paypal_express_test.rb +382 -0
  241. data/test/unit/gateways/paypal_test.rb +520 -0
  242. data/test/unit/gateways/plugnpay_test.rb +86 -0
  243. data/test/unit/gateways/protx_test.rb +139 -0
  244. data/test/unit/gateways/psigate_test.rb +169 -0
  245. data/test/unit/gateways/psl_card_test.rb +64 -0
  246. data/test/unit/gateways/quickpay_test.rb +112 -0
  247. data/test/unit/gateways/realex_test.rb +151 -0
  248. data/test/unit/gateways/sage_bankcard_test.rb +162 -0
  249. data/test/unit/gateways/sage_virtual_check_test.rb +71 -0
  250. data/test/unit/gateways/secure_pay_au_test.rb +207 -0
  251. data/test/unit/gateways/secure_pay_tech_test.rb +44 -0
  252. data/test/unit/gateways/secure_pay_test.rb +87 -0
  253. data/test/unit/gateways/skip_jack_test.rb +133 -0
  254. data/test/unit/gateways/trans_first_test.rb +112 -0
  255. data/test/unit/gateways/trust_commerce_test.rb +90 -0
  256. data/test/unit/gateways/usa_epay_test.rb +128 -0
  257. data/test/unit/gateways/verifi_test.rb +96 -0
  258. data/test/unit/gateways/viaklix_test.rb +78 -0
  259. data/test/unit/gateways/wirecard_test.rb +250 -0
  260. data/test/unit/generators/test_gateway_generator.rb +46 -0
  261. data/test/unit/generators/test_generator_helper.rb +20 -0
  262. data/test/unit/generators/test_integration_generator.rb +53 -0
  263. data/test/unit/integrations/action_view_helper_test.rb +50 -0
  264. data/test/unit/integrations/bogus_module_test.rb +20 -0
  265. data/test/unit/integrations/chronopay_module_test.rb +13 -0
  266. data/test/unit/integrations/gestpay_module_test.rb +14 -0
  267. data/test/unit/integrations/helpers/bogus_helper_test.rb +28 -0
  268. data/test/unit/integrations/helpers/chronopay_helper_test.rb +67 -0
  269. data/test/unit/integrations/helpers/gestpay_helper_test.rb +100 -0
  270. data/test/unit/integrations/helpers/hi_trust_helper_test.rb +16 -0
  271. data/test/unit/integrations/helpers/nochex_helper_test.rb +53 -0
  272. data/test/unit/integrations/helpers/paypal_helper_test.rb +162 -0
  273. data/test/unit/integrations/helpers/quickpay_helper_test.rb +40 -0
  274. data/test/unit/integrations/helpers/two_checkout_helper_test.rb +92 -0
  275. data/test/unit/integrations/hi_trust_module_test.rb +13 -0
  276. data/test/unit/integrations/nochex_module_test.rb +13 -0
  277. data/test/unit/integrations/notifications/chronopay_notification_test.rb +66 -0
  278. data/test/unit/integrations/notifications/gestpay_notification_test.rb +60 -0
  279. data/test/unit/integrations/notifications/hi_trust_notification_test.rb +59 -0
  280. data/test/unit/integrations/notifications/nochex_notification_test.rb +51 -0
  281. data/test/unit/integrations/notifications/notification_test.rb +54 -0
  282. data/test/unit/integrations/notifications/paypal_notification_test.rb +85 -0
  283. data/test/unit/integrations/notifications/quickpay_notification_test.rb +69 -0
  284. data/test/unit/integrations/notifications/two_checkout_notification_test.rb +55 -0
  285. data/test/unit/integrations/paypal_module_test.rb +28 -0
  286. data/test/unit/integrations/quickpay_module_test.rb +9 -0
  287. data/test/unit/integrations/returns/chronopay_return_test.rb +11 -0
  288. data/test/unit/integrations/returns/gestpay_return_test.rb +10 -0
  289. data/test/unit/integrations/returns/hi_trust_return_test.rb +24 -0
  290. data/test/unit/integrations/returns/nochex_return_test.rb +10 -0
  291. data/test/unit/integrations/returns/paypal_return_test.rb +10 -0
  292. data/test/unit/integrations/returns/return_test.rb +11 -0
  293. data/test/unit/integrations/returns/two_checkout_return_test.rb +24 -0
  294. data/test/unit/integrations/two_checkout_module_test.rb +13 -0
  295. data/test/unit/post_data_test.rb +55 -0
  296. data/test/unit/posts_data_test.rb +48 -0
  297. data/test/unit/response_test.rb +28 -0
  298. data/test/unit/utils_test.rb +7 -0
  299. data/test/unit/validateable_test.rb +60 -0
  300. metadata +503 -0
@@ -0,0 +1,224 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteRealexTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @gateway = RealexGateway.new(fixtures(:realex))
7
+
8
+ @gateway_with_account = RealexGateway.new(fixtures(:realex_with_account))
9
+
10
+ # Replace the card numbers with the test account numbers from Realex
11
+ @visa = fixtures(:realex_visa)
12
+ @visa_declined = fixtures(:realex_visa_declined)
13
+ @visa_referral_b = fixtures(:realex_visa_referral_b)
14
+ @visa_referral_a = fixtures(:realex_visa_referral_a)
15
+ @visa_coms_error = fixtures(:realex_visa_coms_error)
16
+
17
+ @mastercard = fixtures(:realex_mastercard)
18
+ @mastercard_declined = fixtures(:realex_mastercard_declined)
19
+ @mastercard_referral_b = fixtures(:realex_mastercard_referral_b)
20
+ @mastercard_referral_a = fixtures(:realex_mastercard_referral_a)
21
+ @mastercard_coms_error = fixtures(:realex_mastercard_coms_error)
22
+
23
+ @amount = 10000
24
+ end
25
+
26
+ def test_realex_purchase
27
+ [ @visa, @mastercard ].each do |card|
28
+
29
+ response = @gateway.purchase(@amount, card,
30
+ :order_id => generate_unique_id,
31
+ :description => 'Test Realex Purchase',
32
+ :billing_address => {
33
+ :zip => '90210',
34
+ :country => 'US'
35
+ }
36
+ )
37
+ assert_not_nil response
38
+ assert_success response
39
+ assert response.test?
40
+ assert response.authorization.length > 0
41
+ assert_equal 'Successful', response.message
42
+ end
43
+ end
44
+
45
+ def test_realex_purchase_with_invalid_login
46
+ gateway = RealexGateway.new(
47
+ :login => 'invalid',
48
+ :password => 'invalid'
49
+ )
50
+ response = gateway.purchase(@amount, @visa,
51
+ :order_id => generate_unique_id,
52
+ :description => 'Invalid login test'
53
+ )
54
+
55
+ assert_not_nil response
56
+ assert_failure response
57
+
58
+ assert_equal '504', response.params['result']
59
+ assert_equal "There is no such merchant id. Please contact realex payments if you continue to experience this problem.", response.params['message']
60
+ assert_equal RealexGateway::ERROR, response.message
61
+ end
62
+
63
+ def test_realex_purchase_with_invalid_account
64
+
65
+ response = @gateway_with_account.purchase(@amount, @visa,
66
+ :order_id => generate_unique_id,
67
+ :description => 'Test Realex purchase with invalid acocunt'
68
+ )
69
+
70
+ assert_not_nil response
71
+ assert_failure response
72
+
73
+ assert_equal '506', response.params['result']
74
+ assert_equal "There is no such merchant account. Please contact realex payments if you continue to experience this problem.", response.params['message']
75
+ assert_equal RealexGateway::ERROR, response.message
76
+ end
77
+
78
+ def test_realex_purchase_declined
79
+
80
+ [ @visa_declined, @mastercard_declined ].each do |card|
81
+
82
+ response = @gateway.purchase(@amount, card,
83
+ :order_id => generate_unique_id,
84
+ :description => 'Test Realex purchase declined'
85
+ )
86
+ assert_not_nil response
87
+ assert_failure response
88
+
89
+ assert_equal '101', response.params['result']
90
+ assert_equal response.params['message'], response.message
91
+ end
92
+
93
+ end
94
+
95
+ def test_realex_purchase_referral_b
96
+ [ @visa_referral_b, @mastercard_referral_b ].each do |card|
97
+
98
+ response = @gateway.purchase(@amount, card,
99
+ :order_id => generate_unique_id,
100
+ :description => 'Test Realex Referral B'
101
+ )
102
+ assert_not_nil response
103
+ assert_failure response
104
+ assert response.test?
105
+ assert_equal '102', response.params['result']
106
+ assert_equal RealexGateway::DECLINED, response.message
107
+ end
108
+ end
109
+
110
+ def test_realex_purchase_referral_a
111
+ [ @visa_referral_a, @mastercard_referral_a ].each do |card|
112
+
113
+ response = @gateway.purchase(@amount, card,
114
+ :order_id => generate_unique_id,
115
+ :description => 'Test Realex Rqeferral A'
116
+ )
117
+ assert_not_nil response
118
+ assert_failure response
119
+ assert_equal '103', response.params['result']
120
+ assert_equal RealexGateway::DECLINED, response.message
121
+ end
122
+
123
+ end
124
+
125
+ def test_realex_purchase_coms_error
126
+
127
+ [ @visa_coms_error, @mastercard_coms_error ].each do |card|
128
+
129
+ response = @gateway.purchase(@amount, card,
130
+ :order_id => generate_unique_id,
131
+ :description => 'Test Realex coms error'
132
+ )
133
+
134
+ assert_not_nil response
135
+ assert_failure response
136
+
137
+ assert_equal '205', response.params['result']
138
+ assert_equal RealexGateway::BANK_ERROR, response.message
139
+ end
140
+
141
+ end
142
+
143
+ def test_realex_ccn_error
144
+ @visa.number = 5
145
+
146
+ response = @gateway.purchase(@amount, @visa,
147
+ :order_id => generate_unique_id,
148
+ :description => 'Test Realex ccn error'
149
+ )
150
+ assert_not_nil response
151
+ assert_failure response
152
+
153
+ assert_equal '509', response.params['result']
154
+ assert_equal "Invalid credit card length", response.params['message']
155
+ assert_equal RealexGateway::ERROR, response.message
156
+ end
157
+
158
+ def test_realex_expiry_month_error
159
+ @visa.month = 13
160
+
161
+ response = @gateway.purchase(@amount, @visa,
162
+ :order_id => generate_unique_id,
163
+ :description => 'Test Realex expiry month error'
164
+ )
165
+ assert_not_nil response
166
+ assert_failure response
167
+
168
+ assert_equal '509', response.params['result']
169
+ assert_equal RealexGateway::ERROR, response.message
170
+ end
171
+
172
+
173
+ def test_realex_expiry_year_error
174
+ @visa.year = 2005
175
+
176
+ response = @gateway.purchase(@amount, @visa,
177
+ :order_id => generate_unique_id,
178
+ :description => 'Test Realex expiry year error'
179
+ )
180
+ assert_not_nil response
181
+ assert_failure response
182
+
183
+ assert_equal '509', response.params['result']
184
+ assert_equal RealexGateway::ERROR, response.message
185
+ end
186
+
187
+ def test_invalid_credit_card_name
188
+ @visa.first_name = ""
189
+ @visa.last_name = ""
190
+
191
+ response = @gateway.purchase(@amount, @visa,
192
+ :order_id => generate_unique_id,
193
+ :description => 'test_chname_error'
194
+ )
195
+ assert_not_nil response
196
+ assert_failure response
197
+
198
+ assert_equal '502', response.params['result']
199
+ assert_equal RealexGateway::ERROR, response.message
200
+ end
201
+
202
+ def test_cvn
203
+ @visa_cvn = @visa.clone
204
+ @visa_cvn.verification_value = "111"
205
+ response = @gateway.purchase(@amount, @visa_cvn,
206
+ :order_id => generate_unique_id,
207
+ :description => 'test_cvn'
208
+ )
209
+ assert_not_nil response
210
+ assert_success response
211
+ assert response.authorization.length > 0
212
+ end
213
+
214
+ def test_customer_number
215
+ response = @gateway.purchase(@amount, @visa,
216
+ :order_id => generate_unique_id,
217
+ :description => 'test_cust_num',
218
+ :customer => 'my customer id'
219
+ )
220
+ assert_not_nil response
221
+ assert_success response
222
+ assert response.authorization.length > 0
223
+ end
224
+ end
@@ -0,0 +1,109 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteSageBankcardTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @gateway = SageBankcardGateway.new(fixtures(:sage))
7
+
8
+ @amount = 100
9
+
10
+ @visa = credit_card("4111111111111111")
11
+ @mastercard = credit_card("5499740000000057")
12
+ @discover = credit_card("6011000993026909")
13
+ @amex = credit_card("371449635392376")
14
+
15
+ @options = {
16
+ :order_id => generate_unique_id,
17
+ :billing_address => address,
18
+ :shipping_address => address,
19
+ :email => 'longbob@example.com'
20
+ }
21
+ end
22
+
23
+ def test_successful_visa_purchase
24
+ assert response = @gateway.purchase(@amount, @visa, @options)
25
+ assert_success response
26
+ assert response.test?
27
+ assert_false response.authorization.blank?
28
+ end
29
+
30
+ def test_successful_visa_authorization
31
+ assert response = @gateway.authorize(@amount, @visa, @options)
32
+ assert_success response
33
+ assert response.test?
34
+ assert_false response.authorization.blank?
35
+ end
36
+
37
+ def test_declined_visa_purchase
38
+ @amount = 200
39
+
40
+ assert response = @gateway.purchase(@amount, @visa, @options)
41
+ assert_failure response
42
+ assert response.test?
43
+ end
44
+
45
+ def test_successful_mastercard_purchase
46
+ assert response = @gateway.purchase(@amount, @mastercard, @options)
47
+ assert_success response
48
+ assert response.test?
49
+ assert_false response.authorization.blank?
50
+ end
51
+
52
+ def test_successful_discover_purchase
53
+ assert response = @gateway.purchase(@amount, @discover, @options)
54
+ assert_success response
55
+ assert response.test?
56
+ assert_false response.authorization.blank?
57
+ end
58
+
59
+ def test_successful_amex_purchase
60
+ assert response = @gateway.purchase(@amount, @amex, @options)
61
+ assert_success response
62
+ assert response.test?
63
+ assert_false response.authorization.blank?
64
+ end
65
+
66
+ def test_authorization_and_capture
67
+ assert auth = @gateway.authorize(@amount, @visa, @options)
68
+ assert_success auth
69
+
70
+ assert capture = @gateway.capture(@amount, auth.authorization)
71
+ assert_success capture
72
+ end
73
+
74
+ def test_failed_capture
75
+ assert response = @gateway.capture(@amount, '')
76
+ assert_failure response
77
+ assert_equal 'INVALID T_REFERENCE', response.message
78
+ end
79
+
80
+ def test_authorization_and_void
81
+ assert auth = @gateway.authorize(@amount, @visa, @options)
82
+ assert_success auth
83
+
84
+ assert void = @gateway.void(auth.authorization)
85
+ assert_success void
86
+ end
87
+
88
+ def test_failed_void
89
+ assert response = @gateway.void('')
90
+ assert_failure response
91
+ assert_equal 'INVALID T_REFERENCE', response.message
92
+ end
93
+
94
+ def test_successful_credit
95
+ assert response = @gateway.credit(@amount, @visa, @options)
96
+ assert_success response
97
+ assert response.test?
98
+ end
99
+
100
+ def test_invalid_login
101
+ gateway = SageBankcardGateway.new(
102
+ :login => '',
103
+ :password => ''
104
+ )
105
+ assert response = gateway.purchase(@amount, @visa, @options)
106
+ assert_failure response
107
+ assert_equal 'SECURITY VIOLATION', response.message
108
+ end
109
+ end
@@ -0,0 +1,87 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteSageTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @gateway = SageGateway.new(fixtures(:sage))
7
+
8
+ @amount = 100
9
+
10
+ @visa = credit_card("4111111111111111")
11
+ @check = check
12
+
13
+ @options = {
14
+ :order_id => generate_unique_id,
15
+ :billing_address => address,
16
+ :shipping_address => address,
17
+ :email => 'longbob@example.com'
18
+ }
19
+ end
20
+
21
+ def test_successful_visa_purchase
22
+ assert response = @gateway.purchase(@amount, @visa, @options)
23
+ assert_success response
24
+ assert response.test?
25
+ assert_false response.authorization.blank?
26
+ end
27
+
28
+ def test_successful_check_purchase
29
+ assert response = @gateway.purchase(@amount, @check, @options)
30
+ assert_success response
31
+ assert response.test?
32
+ assert_false response.authorization.blank?
33
+ end
34
+
35
+ def test_successful_visa_authorization
36
+ assert response = @gateway.authorize(@amount, @visa, @options)
37
+ assert_success response
38
+ assert response.test?
39
+ assert_false response.authorization.blank?
40
+ end
41
+
42
+ def test_authorization_and_capture
43
+ assert auth = @gateway.authorize(@amount, @visa, @options)
44
+ assert_success auth
45
+
46
+ assert capture = @gateway.capture(@amount, auth.authorization)
47
+ assert_success capture
48
+ end
49
+
50
+ def test_visa_authorization_and_void
51
+ assert auth = @gateway.authorize(@amount, @visa, @options)
52
+ assert_success auth
53
+
54
+ assert void = @gateway.void(auth.authorization)
55
+ assert_success void
56
+ end
57
+
58
+ def test_check_purchase_and_void
59
+ assert purchase = @gateway.purchase(@amount, @check, @options)
60
+ assert_success purchase
61
+
62
+ assert void = @gateway.void(purchase.authorization)
63
+ assert_success void
64
+ end
65
+
66
+ def test_visa_credit
67
+ assert response = @gateway.credit(@amount, @visa, @options)
68
+ assert_success response
69
+ assert response.test?
70
+ end
71
+
72
+ def test_check_credit
73
+ assert response = @gateway.credit(@amount, @check, @options)
74
+ assert_success response
75
+ assert response.test?
76
+ end
77
+
78
+ def test_invalid_login
79
+ gateway = SageGateway.new(
80
+ :login => '',
81
+ :password => ''
82
+ )
83
+ assert response = gateway.purchase(@amount, @visa, @options)
84
+ assert_failure response
85
+ assert_equal 'SECURITY VIOLATION', response.message
86
+ end
87
+ end
@@ -0,0 +1,62 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteSageCheckTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @gateway = SageVirtualCheckGateway.new(fixtures(:sage))
7
+
8
+ @amount = 100
9
+ @check = check
10
+
11
+ @options = {
12
+ :order_id => generate_unique_id,
13
+ :billing_address => address,
14
+ :shipping_address => address,
15
+ :email => 'longbob@example.com',
16
+ :drivers_license_state => 'CA',
17
+ :drivers_license_number => '12345689',
18
+ :date_of_birth => Date.new(1978, 8, 11),
19
+ :ssn => '078051120'
20
+ }
21
+ end
22
+
23
+ def test_successful_check_purchase
24
+ assert response = @gateway.purchase(@amount, @check, @options)
25
+ assert_success response
26
+ assert response.test?
27
+ assert_false response.authorization.blank?
28
+ end
29
+
30
+ def test_failed_check_purchase
31
+ @check.routing_number = ""
32
+
33
+ assert response = @gateway.purchase(@amount, @check, @options)
34
+ assert_failure response
35
+ assert response.test?
36
+ assert_false response.authorization.blank?
37
+ end
38
+
39
+ def test_purchase_and_void
40
+ assert purchase = @gateway.purchase(@amount, @check, @options)
41
+ assert_success purchase
42
+
43
+ assert void = @gateway.void(purchase.authorization)
44
+ assert_success void
45
+ end
46
+
47
+ def test_credit
48
+ assert response = @gateway.credit(@amount, @check, @options)
49
+ assert_success response
50
+ assert response.test?
51
+ end
52
+
53
+ def test_invalid_login
54
+ gateway = SageVirtualCheckGateway.new(
55
+ :login => '',
56
+ :password => ''
57
+ )
58
+ assert response = gateway.purchase(@amount, @check, @options)
59
+ assert_failure response
60
+ assert_equal 'SECURITY VIOLATION', response.message
61
+ end
62
+ end
@@ -0,0 +1,40 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteSecurePayAuTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @gateway = SecurePayAuGateway.new(fixtures(:secure_pay_au))
7
+
8
+ @amount = 100
9
+ @credit_card = credit_card('4444333322221111')
10
+
11
+ @options = {
12
+ :order_id => '1',
13
+ :billing_address => address,
14
+ :description => 'Store Purchase'
15
+ }
16
+ end
17
+
18
+ def test_successful_purchase
19
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
20
+ assert_success response
21
+ assert_equal 'Approved', response.message
22
+ end
23
+
24
+ def test_unsuccessful_purchase
25
+ @credit_card.year = '2005'
26
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
27
+ assert_failure response
28
+ assert_equal 'CARD EXPIRED', response.message
29
+ end
30
+
31
+ def test_invalid_login
32
+ gateway = SecurePayAuGateway.new(
33
+ :login => '',
34
+ :password => ''
35
+ )
36
+ assert response = gateway.purchase(@amount, @credit_card, @options)
37
+ assert_failure response
38
+ assert_equal "Invalid merchant ID", response.message
39
+ end
40
+ end
@@ -0,0 +1,37 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteSecurePayTechTest < Test::Unit::TestCase
4
+ $verbose = true
5
+
6
+ def setup
7
+ @gateway = SecurePayTechGateway.new(fixtures(:secure_pay_tech))
8
+
9
+ @accepted_amount = 10000
10
+ @declined_amount = 10075
11
+
12
+ @credit_card = credit_card('4987654321098769', :month => '5', :year => '2013')
13
+ @options = { :billing_address => address }
14
+ end
15
+
16
+ def test_successful_purchase
17
+ assert response = @gateway.purchase(@accepted_amount, @credit_card, @options)
18
+ assert_equal 'Transaction OK', response.message
19
+ assert_success response
20
+ end
21
+
22
+ def test_unsuccessful_purchase
23
+ assert response = @gateway.purchase(@declined_amount, @credit_card, @options)
24
+ assert_equal 'Card declined', response.message
25
+ assert_failure response
26
+ end
27
+
28
+ def test_invalid_login
29
+ gateway = SecurePayTechGateway.new(
30
+ :login => 'foo',
31
+ :password => 'bar'
32
+ )
33
+ assert response = gateway.purchase(@accepted_amount, @credit_card, @options)
34
+ assert_equal 'Bad or malformed request', response.message
35
+ assert_failure response
36
+ end
37
+ end
@@ -0,0 +1,28 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteSecurePayTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @gateway = SecurePayGateway.new(fixtures(:secure_pay))
7
+
8
+ @credit_card = credit_card('4111111111111111',
9
+ :month => '7',
10
+ :year => '2007'
11
+ )
12
+
13
+ @options = { :order_id => generate_unique_id,
14
+ :description => 'Store purchase',
15
+ :billing_address => address
16
+ }
17
+
18
+ @amount = 100
19
+ end
20
+
21
+ def test_successful_purchase
22
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
23
+ assert response.success?
24
+ assert response.test?
25
+ assert_equal 'This transaction has been approved', response.message
26
+ assert response.authorization
27
+ end
28
+ end
@@ -0,0 +1,105 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteSkipJackTest < Test::Unit::TestCase
4
+ def setup
5
+ Base.mode = :test
6
+
7
+ @gateway = SkipJackGateway.new(fixtures(:skip_jack))
8
+
9
+ @credit_card = credit_card('4445999922225',
10
+ :verification_value => '999'
11
+ )
12
+
13
+ @amount = 100
14
+
15
+ @options = {
16
+ :order_id => generate_unique_id,
17
+ :email => 'email@foo.com',
18
+ :billing_address => address
19
+ }
20
+ end
21
+
22
+ def test_successful_authorization
23
+ authorization = @gateway.authorize(@amount, @credit_card, @options)
24
+ assert_success authorization
25
+ assert_false authorization.authorization.blank?
26
+ end
27
+
28
+ def test_unsuccessful_authorization
29
+ @credit_card.number = '1234'
30
+ authorization = @gateway.authorize(@amount, @credit_card, @options)
31
+ assert_failure authorization
32
+ end
33
+
34
+ def test_authorization_fails_without_phone_number
35
+ @options[:billing_address][:phone] = nil
36
+ authorization = @gateway.authorize(@amount, @credit_card, @options)
37
+ assert_failure authorization
38
+ end
39
+
40
+ def test_successful_purchase
41
+ assert_success @gateway.purchase(@amount, @credit_card, @options)
42
+ end
43
+
44
+ def test_successful_authorization_and_capture
45
+ authorization = @gateway.authorize(@amount, @credit_card, @options)
46
+
47
+ assert_success authorization
48
+ assert_false authorization.authorization.blank?
49
+
50
+ capture = @gateway.capture(@amount, authorization.authorization)
51
+ assert_success capture
52
+ end
53
+
54
+ def test_authorization_and_void
55
+ authorization = @gateway.authorize(101, @credit_card, @options)
56
+ assert_success authorization
57
+ void = @gateway.void(authorization.authorization)
58
+ assert_success void
59
+ end
60
+
61
+ def test_successful_authorization_and_credit
62
+ authorization = @gateway.authorize(@amount, @credit_card, @options)
63
+ assert_success authorization
64
+
65
+ capture = @gateway.capture(@amount, authorization.authorization, :force_settlement => true)
66
+ assert_success capture
67
+
68
+ # developer login won't change transaction immediately to settled, so status will have to mismatch
69
+ credit = @gateway.credit(@amount, authorization.authorization)
70
+ assert_success credit
71
+ end
72
+
73
+ def test_authorization_with_invalid_verification_value
74
+ @credit_card.verification_value = '123'
75
+
76
+ response = @gateway.authorize(@amount, @credit_card, @options)
77
+ assert_failure response
78
+ assert_equal "Card verification number didn't match", response.message
79
+ end
80
+
81
+ def test_authorization_and_status
82
+ authorization = @gateway.authorize(101, @credit_card, @options)
83
+ assert_success authorization
84
+
85
+ status = @gateway.status(@options[:order_id])
86
+ assert_success status
87
+ end
88
+
89
+ def test_status_unkown_order
90
+ status = @gateway.status(generate_unique_id)
91
+ assert_failure status
92
+ assert_match /No Records Found/, status.message
93
+ end
94
+
95
+ def test_invalid_login
96
+ gateway = SkipJackGateway.new(
97
+ :login => '555555555555',
98
+ :password => '999999999999'
99
+ )
100
+
101
+ response = gateway.authorize(@amount, @credit_card, @options)
102
+ assert_failure response
103
+ assert_match /Invalid serial number/, response.message
104
+ end
105
+ end