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,81 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteEfsnetTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ Base.gateway_mode = :test
7
+
8
+ @gateway = EfsnetGateway.new(fixtures(:efsnet))
9
+
10
+ @credit_card = credit_card('4000100011112224')
11
+
12
+ @amount = 100
13
+ @declined_amount = 156
14
+
15
+ @options = { :order_id => generate_unique_id,
16
+ :billing_address => address
17
+ }
18
+ end
19
+
20
+ def test_successful_purchase
21
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
22
+ assert_success response
23
+ assert_equal 'Approved', response.message
24
+ assert response.test?
25
+ end
26
+
27
+ def test_successful_force
28
+ assert response = @gateway.force(@amount, '123456', @credit_card, @options)
29
+ assert_success response
30
+ assert_equal 'Approved', response.message
31
+ end
32
+
33
+ def test_successful_voice_authorize
34
+ assert response = @gateway.voice_authorize(@amount, '123456', @credit_card, @options)
35
+ assert_success response
36
+ assert_equal 'Accepted', response.message
37
+ end
38
+
39
+ def test_unsuccessful_purchase
40
+ assert response = @gateway.purchase(@declined_amount, @credit_card, @options)
41
+ assert_failure response
42
+ assert_equal 'Declined', response.message
43
+ end
44
+
45
+ def test_authorize_and_capture
46
+ amount = @amount
47
+ assert auth = @gateway.authorize(amount, @credit_card, @options)
48
+ assert_success auth
49
+ assert_equal 'Approved', auth.message
50
+ assert auth.authorization
51
+
52
+ assert capture = @gateway.capture(amount, auth.authorization, @options)
53
+ assert_success capture
54
+ end
55
+
56
+ def test_purchase_and_void
57
+ amount = @amount
58
+ assert purchase = @gateway.purchase(amount, @credit_card, @options)
59
+ assert_success purchase
60
+ assert_equal 'Approved', purchase.message
61
+ assert purchase.authorization
62
+ assert void = @gateway.void(purchase.authorization, @options)
63
+ assert_success void
64
+ end
65
+
66
+ def test_failed_capture
67
+ assert response = @gateway.capture(@amount, '1;1', @options)
68
+ assert_failure response
69
+ assert_equal 'Bad original transaction', response.message
70
+ end
71
+
72
+ def test_invalid_login
73
+ gateway = EfsnetGateway.new(
74
+ :login => '',
75
+ :password => ''
76
+ )
77
+ assert response = gateway.purchase(@amount, @credit_card, @options)
78
+ assert_equal 'Invalid credentials', response.message
79
+ assert_failure response
80
+ end
81
+ end
@@ -0,0 +1,66 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteElavonTest < Test::Unit::TestCase
4
+ def setup
5
+ @gateway = ElavonGateway.new(fixtures(:elavon))
6
+
7
+ @credit_card = credit_card
8
+ @bad_credit_card = credit_card('invalid')
9
+
10
+ @options = {
11
+ :email => "paul@domain.com",
12
+ :description => 'Test Transaction',
13
+ :billing_address => address
14
+ }
15
+ @amount = 100
16
+ end
17
+
18
+ def test_successful_purchase
19
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
20
+
21
+ assert_success response
22
+ assert response.test?
23
+ assert_equal 'APPROVED', response.message
24
+ assert response.authorization
25
+ end
26
+
27
+ def test_unsuccessful_purchase
28
+ assert response = @gateway.purchase(@amount, @bad_credit_card, @options)
29
+
30
+ assert_failure response
31
+ assert response.test?
32
+ assert_equal 'The Credit Card Number supplied in the authorization request appears to be invalid.', response.message
33
+ end
34
+
35
+ def test_authorize_and_capture
36
+ assert auth = @gateway.authorize(@amount, @credit_card, @options)
37
+ assert_success auth
38
+ assert_equal 'APPROVED', auth.message
39
+ assert auth.authorization
40
+ assert capture = @gateway.capture(@amount, auth.authorization, :credit_card => @credit_card)
41
+ assert_success capture
42
+ end
43
+
44
+ def test_unsuccessful_capture
45
+ assert response = @gateway.capture(@amount, '', :credit_card => @credit_card)
46
+ assert_failure response
47
+ assert_equal 'The FORCE Approval Code supplied in the authorization request appears to be invalid or blank. The FORCE Approval Code must be 6 or less alphanumeric characters.', response.message
48
+ end
49
+
50
+ def test_unsuccessful_authorization
51
+ @credit_card.number = "1234567890123"
52
+ assert response = @gateway.authorize(@amount, @credit_card, @options)
53
+ assert_failure response
54
+ assert_equal 'The Credit Card Number supplied in the authorization request appears to be invalid.', response.message
55
+ end
56
+
57
+ def test_purchase_and_credit
58
+ assert purchase = @gateway.purchase(@amount, @credit_card, @options)
59
+ assert_success purchase
60
+ assert purchase.authorization
61
+
62
+ assert credit = @gateway.credit(@amount, @credit_card, @options)
63
+ assert_success credit
64
+ assert credit.authorization
65
+ end
66
+ end
@@ -0,0 +1,74 @@
1
+ require 'test_helper'
2
+
3
+ class EwayTest < Test::Unit::TestCase
4
+ def setup
5
+ Base.gateway_mode = :test
6
+ @gateway = EwayGateway.new(fixtures(:eway))
7
+
8
+ @credit_card_success = credit_card('4444333322221111')
9
+
10
+ @credit_card_fail = credit_card('1234567812345678',
11
+ :month => Time.now.month,
12
+ :year => Time.now.year
13
+ )
14
+
15
+ @params = {
16
+ :order_id => '1230123',
17
+ :email => 'bob@testbob.com',
18
+ :billing_address => { :address1 => '47 Bobway',
19
+ :city => 'Bobville',
20
+ :state => 'WA',
21
+ :country => 'AU',
22
+ :zip => '2000'
23
+ } ,
24
+ :description => 'purchased items'
25
+ }
26
+ end
27
+
28
+ def test_invalid_amount
29
+ assert response = @gateway.purchase(101, @credit_card_success, @params)
30
+ assert_failure response
31
+ assert response.test?
32
+ assert_equal EwayGateway::MESSAGES["01"], response.message
33
+ end
34
+
35
+ def test_purchase_success_with_verification_value
36
+ assert response = @gateway.purchase(100, @credit_card_success, @params)
37
+ assert_equal '123456', response.authorization
38
+ assert_success response
39
+ assert response.test?
40
+ assert_equal EwayGateway::MESSAGES["00"], response.message
41
+ end
42
+
43
+ def test_invalid_expiration_date
44
+ @credit_card_success.year = 2005
45
+ assert response = @gateway.purchase(100, @credit_card_success, @params)
46
+ assert_failure response
47
+ assert response.test?
48
+ end
49
+
50
+ def test_purchase_with_invalid_verification_value
51
+ @credit_card_success.verification_value = 'AAA'
52
+ assert response = @gateway.purchase(100, @credit_card_success, @params)
53
+ assert_nil response.authorization
54
+ assert_failure response
55
+ assert response.test?
56
+ end
57
+
58
+ def test_purchase_success_without_verification_value
59
+ @credit_card_success.verification_value = nil
60
+
61
+ assert response = @gateway.purchase(100, @credit_card_success, @params)
62
+ assert_equal '123456', response.authorization
63
+ assert_success response
64
+ assert response.test?
65
+ assert_equal EwayGateway::MESSAGES["00"], response.message
66
+ end
67
+
68
+ def test_purchase_error
69
+ assert response = @gateway.purchase(100, @credit_card_fail, @params)
70
+ assert_nil response.authorization
71
+ assert_equal false, response.success?
72
+ assert response.test?
73
+ end
74
+ end
@@ -0,0 +1,60 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteExactTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+
7
+ @gateway = ExactGateway.new(fixtures(:exact))
8
+ @credit_card = credit_card
9
+ @amount = 100
10
+ @options = {
11
+ :order_id => '1',
12
+ :billing_address => address,
13
+ :description => 'Store Purchase'
14
+ }
15
+ end
16
+
17
+ def test_successful_purchase
18
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
19
+ assert_match /Transaction Normal/, response.message
20
+ assert_success response
21
+ end
22
+
23
+ def test_unsuccessful_purchase
24
+ # ask for error 13 response (Amount Error) via dollar amount 5,000 + error
25
+ @amount = 501300
26
+ assert response = @gateway.purchase(@amount, @credit_card, @options )
27
+ assert_match /Transaction Normal/, response.message
28
+ assert_failure response
29
+ end
30
+
31
+ def test_purchase_and_credit
32
+ assert purchase = @gateway.purchase(@amount, @credit_card, @options)
33
+ assert_success purchase
34
+ assert purchase.authorization
35
+ assert credit = @gateway.credit(@amount, purchase.authorization)
36
+ assert_success credit
37
+ end
38
+
39
+ def test_authorize_and_capture
40
+ assert auth = @gateway.authorize(@amount, @credit_card, @options)
41
+ assert_success auth
42
+ assert auth.authorization
43
+ assert capture = @gateway.capture(@amount, auth.authorization)
44
+ assert_success capture
45
+ end
46
+
47
+ def test_failed_capture
48
+ assert response = @gateway.capture(@amount, '')
49
+ assert_failure response
50
+ assert_match /Precondition Failed/i, response.message
51
+ end
52
+
53
+ def test_invalid_login
54
+ gateway = ExactGateway.new( :login => "NotARealUser",
55
+ :password => "NotARealPassword" )
56
+ assert response = gateway.purchase(@amount, @credit_card, @options)
57
+ assert_equal "Invalid Logon", response.message
58
+ assert_failure response
59
+ end
60
+ end
@@ -0,0 +1,87 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteFirstPayTest < Test::Unit::TestCase
4
+ def setup
5
+ @gateway = FirstPayGateway.new(fixtures(:first_pay))
6
+
7
+ @amount = 100
8
+ @credit_card = credit_card('4111111111111111', {:first_name => 'Test', :last_name => 'Person'})
9
+ @declined_card = credit_card('4111111111111111')
10
+
11
+ @options = {
12
+ :order_id => '1',
13
+ :billing_address => address({:name => 'Test Person', :city => 'New York', :state => 'NY', :zip => '10002', :country => 'US'}),
14
+ :description => 'Test 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('CAPTURED', response.message)
22
+ end
23
+
24
+ def test_unsuccessful_purchase
25
+ # > $500 results in decline
26
+ @amount = 51000
27
+ assert response = @gateway.purchase(@amount, @declined_card, @options)
28
+ assert_failure response
29
+ assert_equal("51-INSUFFICIENT FUNDS", response.message)
30
+ end
31
+
32
+ def test_invalid_login
33
+ gateway = FirstPayGateway.new(:login => '', :password => '')
34
+ assert response = gateway.purchase(@amount, @credit_card, @options)
35
+ assert_failure response
36
+ assert_equal '703-INVALID VENDOR ID AND PASS CODE', response.message
37
+ end
38
+
39
+ def test_successful_credit
40
+ # purchase first
41
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
42
+ assert_success response
43
+ assert_equal('CAPTURED', response.message)
44
+ assert_not_nil(response.params["auth"])
45
+ assert_not_nil(response.authorization)
46
+
47
+ @options[:credit_card] = @credit_card
48
+
49
+ assert response = @gateway.credit(@amount, response.authorization, @options)
50
+ assert_success response
51
+ assert_not_nil(response.authorization)
52
+ end
53
+
54
+ def test_failed_credit
55
+ @options[:credit_card] = @credit_card
56
+
57
+ assert response = @gateway.credit(@amount, '000000', @options)
58
+ assert_failure response
59
+ assert_nil(response.authorization)
60
+ assert_equal('PARENT TRANSACTION NOT FOUND', response.message)
61
+ end
62
+
63
+ def test_failed_unlinked_credit
64
+ assert_raise ArgumentError do
65
+ @gateway.credit(@amount, @credit_card)
66
+ end
67
+ end
68
+
69
+ def test_successful_void
70
+ # purchase first
71
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
72
+ assert_success response
73
+ assert_equal('CAPTURED', response.message)
74
+ assert_not_nil(response.params["auth"])
75
+ assert_not_nil(response.authorization)
76
+
77
+ assert_success response
78
+ assert_not_nil(response.authorization)
79
+ end
80
+
81
+ def test_failed_void
82
+ assert response = @gateway.void(@amount, @credit_card, @options)
83
+ assert_failure response
84
+ assert_equal('PARENT TRANSACTION NOT FOUND', response.message)
85
+ end
86
+
87
+ end
@@ -0,0 +1,61 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteInstapayTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @gateway = InstapayGateway.new(fixtures(:instapay))
7
+
8
+ @amount = 100
9
+ @credit_card = credit_card('5454545454545454')
10
+ @declined_card = credit_card('4000300011112220')
11
+
12
+ @options = {
13
+ :order_id => generate_unique_id,
14
+ :billing_address => address,
15
+ :shipping_address => address,
16
+ :description => 'Store Purchase'
17
+ }
18
+ end
19
+
20
+ def test_successful_purchase
21
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
22
+ assert_success response
23
+ assert_equal InstapayGateway::SUCCESS_MESSAGE, response.message
24
+ end
25
+
26
+ def test_failed_purchase
27
+ assert response = @gateway.purchase(@amount, @declined_card, @options)
28
+ assert_failure response
29
+ end
30
+
31
+ def test_succesful_authorization
32
+ assert response = @gateway.authorize(@amount, @credit_card, @options)
33
+ assert_success response
34
+ assert_equal InstapayGateway::SUCCESS_MESSAGE, response.message
35
+ end
36
+
37
+ def test_failed_authorization
38
+ assert response = @gateway.authorize(@amount, @declined_card, @options)
39
+ assert_failure response
40
+ end
41
+
42
+ def test_authorization_and_capture
43
+ assert authorization = @gateway.authorize(@amount, @credit_card, @options)
44
+ assert_success authorization
45
+
46
+ assert capture = @gateway.capture(@amount, authorization.authorization)
47
+ assert_success capture
48
+ assert_equal InstapayGateway::SUCCESS_MESSAGE, capture.message
49
+ end
50
+
51
+ def test_invalid_login
52
+ gateway = InstapayGateway.new(
53
+ :login => 'X',
54
+ :password => 'Y'
55
+ )
56
+
57
+ assert response = gateway.purchase(@amount, @credit_card)
58
+ assert_failure response
59
+ assert_equal "Invalid merchant", response.message
60
+ end
61
+ end
@@ -0,0 +1,103 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteJetpayTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @gateway = JetpayGateway.new(fixtures(:jetpay))
7
+
8
+ @credit_card = credit_card('4000300020001000')
9
+ @declined_card = credit_card('4000300020001000')
10
+
11
+ @options = {
12
+ :order_id => '1',
13
+ :billing_address => address(:country => 'US', :zip => '75008'),
14
+ :shipping_address => address(:country => 'US'),
15
+ :email => 'test@test.com',
16
+ :ip => '127.0.0.1',
17
+ :order_id => '12345',
18
+ :tax => 7
19
+ }
20
+ end
21
+
22
+ def test_successful_purchase
23
+ assert response = @gateway.purchase(9900, @credit_card, @options)
24
+ assert_success response
25
+ assert_equal "APPROVED", response.message
26
+ assert_not_nil response.authorization
27
+ assert_not_nil response.params["approval"]
28
+ end
29
+
30
+ def test_unsuccessful_purchase
31
+ assert response = @gateway.purchase(5205, @declined_card, @options)
32
+ assert_failure response
33
+ assert_equal "Do not honor.", response.message
34
+ end
35
+
36
+ def test_authorize_and_capture
37
+ assert auth = @gateway.authorize(9900, @credit_card, @options)
38
+ assert_success auth
39
+ assert_equal 'APPROVED', auth.message
40
+ assert_not_nil auth.authorization
41
+ assert_not_nil auth.params["approval"]
42
+
43
+ assert capture = @gateway.capture(9900, auth.authorization)
44
+ assert_success capture
45
+ end
46
+
47
+ def test_void
48
+ # must void a valid auth
49
+ assert auth = @gateway.authorize(9900, @credit_card, @options)
50
+ assert_success auth
51
+ assert_equal 'APPROVED', auth.message
52
+ assert_not_nil auth.authorization
53
+ assert_not_nil auth.params["approval"]
54
+
55
+ assert void = @gateway.void(auth.authorization)
56
+ assert_success void
57
+ end
58
+
59
+ def test_linked_credit
60
+ # no need for csv
61
+ card = credit_card('4242424242424242', :verification_value => nil)
62
+
63
+ assert response = @gateway.purchase(9900, card, @options)
64
+ assert_success response
65
+ assert_equal "APPROVED", response.message
66
+ assert_not_nil response.authorization
67
+ assert_not_nil response.params["approval"]
68
+
69
+ # linked to a specific transaction_id
70
+ assert credit = @gateway.credit(9900, response.authorization, :credit_card => card)
71
+ assert_success credit
72
+ assert_not_nil(credit.authorization)
73
+ assert_not_nil(response.params["approval"])
74
+ assert_equal [response.params['transaction_id'], response.params["approval"], 9900].join(";"), response.authorization
75
+ end
76
+
77
+ def test_unlinked_credit
78
+ # no need for csv
79
+ card = credit_card('4242424242424242', :verification_value => nil)
80
+
81
+ # no link to a specific transaction_id
82
+ assert credit = @gateway.credit(9900, card)
83
+ assert_success credit
84
+ assert_not_nil(credit.authorization)
85
+ assert_not_nil(credit.params["approval"])
86
+ end
87
+
88
+ def test_failed_capture
89
+ assert response = @gateway.capture(9900, '7605f7c5d6e8f74deb')
90
+ assert_failure response
91
+ assert_equal 'Transaction Not Found.', response.message
92
+ end
93
+
94
+ def test_invalid_login
95
+ gateway = JetpayGateway.new(:login => '')
96
+ assert response = gateway.purchase(9900, @credit_card, @options)
97
+ assert_failure response
98
+
99
+ assert_equal 'Terminal ID Not Found.', response.message
100
+ end
101
+
102
+
103
+ end