mattbauer-activemerchant 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. data/CHANGELOG +459 -0
  2. data/CONTRIBUTERS +118 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README +134 -0
  5. data/Rakefile +153 -0
  6. data/gem-public_cert.pem +20 -0
  7. data/init.rb +3 -0
  8. data/lib/active_merchant.rb +60 -0
  9. data/lib/active_merchant/billing/avs_result.rb +98 -0
  10. data/lib/active_merchant/billing/base.rb +57 -0
  11. data/lib/active_merchant/billing/check.rb +68 -0
  12. data/lib/active_merchant/billing/credit_card.rb +159 -0
  13. data/lib/active_merchant/billing/credit_card_formatting.rb +21 -0
  14. data/lib/active_merchant/billing/credit_card_methods.rb +125 -0
  15. data/lib/active_merchant/billing/cvv_result.rb +38 -0
  16. data/lib/active_merchant/billing/expiry_date.rb +34 -0
  17. data/lib/active_merchant/billing/gateway.rb +158 -0
  18. data/lib/active_merchant/billing/gateways.rb +3 -0
  19. data/lib/active_merchant/billing/gateways/authorize_net.rb +657 -0
  20. data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +703 -0
  21. data/lib/active_merchant/billing/gateways/beanstream.rb +102 -0
  22. data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +233 -0
  23. data/lib/active_merchant/billing/gateways/beanstream_interac.rb +54 -0
  24. data/lib/active_merchant/billing/gateways/bogus.rb +98 -0
  25. data/lib/active_merchant/billing/gateways/braintree.rb +17 -0
  26. data/lib/active_merchant/billing/gateways/card_stream.rb +230 -0
  27. data/lib/active_merchant/billing/gateways/cyber_source.rb +406 -0
  28. data/lib/active_merchant/billing/gateways/data_cash.rb +595 -0
  29. data/lib/active_merchant/billing/gateways/efsnet.rb +229 -0
  30. data/lib/active_merchant/billing/gateways/elavon.rb +106 -0
  31. data/lib/active_merchant/billing/gateways/eway.rb +277 -0
  32. data/lib/active_merchant/billing/gateways/exact.rb +222 -0
  33. data/lib/active_merchant/billing/gateways/first_pay.rb +172 -0
  34. data/lib/active_merchant/billing/gateways/instapay.rb +164 -0
  35. data/lib/active_merchant/billing/gateways/linkpoint.rb +396 -0
  36. data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +154 -0
  37. data/lib/active_merchant/billing/gateways/merchant_ware.rb +283 -0
  38. data/lib/active_merchant/billing/gateways/modern_payments.rb +36 -0
  39. data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +214 -0
  40. data/lib/active_merchant/billing/gateways/moneris.rb +295 -0
  41. data/lib/active_merchant/billing/gateways/moneris_usa.rb +258 -0
  42. data/lib/active_merchant/billing/gateways/net_registry.rb +189 -0
  43. data/lib/active_merchant/billing/gateways/netbilling.rb +168 -0
  44. data/lib/active_merchant/billing/gateways/ogone.rb +259 -0
  45. data/lib/active_merchant/billing/gateways/pay_junction.rb +392 -0
  46. data/lib/active_merchant/billing/gateways/pay_secure.rb +120 -0
  47. data/lib/active_merchant/billing/gateways/payflow.rb +236 -0
  48. data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +207 -0
  49. data/lib/active_merchant/billing/gateways/payflow/payflow_express_response.rb +39 -0
  50. data/lib/active_merchant/billing/gateways/payflow/payflow_response.rb +13 -0
  51. data/lib/active_merchant/billing/gateways/payflow_express.rb +138 -0
  52. data/lib/active_merchant/billing/gateways/payflow_express_uk.rb +15 -0
  53. data/lib/active_merchant/billing/gateways/payflow_uk.rb +21 -0
  54. data/lib/active_merchant/billing/gateways/payment_express.rb +230 -0
  55. data/lib/active_merchant/billing/gateways/paypal.rb +121 -0
  56. data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +325 -0
  57. data/lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb +38 -0
  58. data/lib/active_merchant/billing/gateways/paypal_ca.rb +13 -0
  59. data/lib/active_merchant/billing/gateways/paypal_express.rb +130 -0
  60. data/lib/active_merchant/billing/gateways/paypal_express_common.rb +20 -0
  61. data/lib/active_merchant/billing/gateways/plugnpay.rb +292 -0
  62. data/lib/active_merchant/billing/gateways/psigate.rb +214 -0
  63. data/lib/active_merchant/billing/gateways/psl_card.rb +306 -0
  64. data/lib/active_merchant/billing/gateways/quickpay.rb +213 -0
  65. data/lib/active_merchant/billing/gateways/realex.rb +200 -0
  66. data/lib/active_merchant/billing/gateways/sage.rb +146 -0
  67. data/lib/active_merchant/billing/gateways/sage/sage_bankcard.rb +88 -0
  68. data/lib/active_merchant/billing/gateways/sage/sage_core.rb +110 -0
  69. data/lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb +97 -0
  70. data/lib/active_merchant/billing/gateways/sage_pay.rb +308 -0
  71. data/lib/active_merchant/billing/gateways/secure_pay.rb +31 -0
  72. data/lib/active_merchant/billing/gateways/secure_pay_au.rb +157 -0
  73. data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +113 -0
  74. data/lib/active_merchant/billing/gateways/skip_jack.rb +442 -0
  75. data/lib/active_merchant/billing/gateways/smart_ps.rb +254 -0
  76. data/lib/active_merchant/billing/gateways/trans_first.rb +127 -0
  77. data/lib/active_merchant/billing/gateways/transax.rb +26 -0
  78. data/lib/active_merchant/billing/gateways/trust_commerce.rb +418 -0
  79. data/lib/active_merchant/billing/gateways/usa_epay.rb +194 -0
  80. data/lib/active_merchant/billing/gateways/verifi.rb +228 -0
  81. data/lib/active_merchant/billing/gateways/viaklix.rb +189 -0
  82. data/lib/active_merchant/billing/gateways/wirecard.rb +318 -0
  83. data/lib/active_merchant/billing/integrations.rb +22 -0
  84. data/lib/active_merchant/billing/integrations/action_view_helper.rb +79 -0
  85. data/lib/active_merchant/billing/integrations/bogus.rb +22 -0
  86. data/lib/active_merchant/billing/integrations/bogus/helper.rb +17 -0
  87. data/lib/active_merchant/billing/integrations/bogus/notification.rb +11 -0
  88. data/lib/active_merchant/billing/integrations/bogus/return.rb +10 -0
  89. data/lib/active_merchant/billing/integrations/chronopay.rb +22 -0
  90. data/lib/active_merchant/billing/integrations/chronopay/helper.rb +81 -0
  91. data/lib/active_merchant/billing/integrations/chronopay/notification.rb +156 -0
  92. data/lib/active_merchant/billing/integrations/chronopay/return.rb +10 -0
  93. data/lib/active_merchant/billing/integrations/gestpay.rb +26 -0
  94. data/lib/active_merchant/billing/integrations/gestpay/common.rb +42 -0
  95. data/lib/active_merchant/billing/integrations/gestpay/helper.rb +70 -0
  96. data/lib/active_merchant/billing/integrations/gestpay/notification.rb +83 -0
  97. data/lib/active_merchant/billing/integrations/gestpay/return.rb +10 -0
  98. data/lib/active_merchant/billing/integrations/helper.rb +93 -0
  99. data/lib/active_merchant/billing/integrations/hi_trust.rb +26 -0
  100. data/lib/active_merchant/billing/integrations/hi_trust/helper.rb +58 -0
  101. data/lib/active_merchant/billing/integrations/hi_trust/notification.rb +59 -0
  102. data/lib/active_merchant/billing/integrations/hi_trust/return.rb +67 -0
  103. data/lib/active_merchant/billing/integrations/nochex.rb +87 -0
  104. data/lib/active_merchant/billing/integrations/nochex/helper.rb +68 -0
  105. data/lib/active_merchant/billing/integrations/nochex/notification.rb +94 -0
  106. data/lib/active_merchant/billing/integrations/nochex/return.rb +10 -0
  107. data/lib/active_merchant/billing/integrations/notification.rb +62 -0
  108. data/lib/active_merchant/billing/integrations/paypal.rb +40 -0
  109. data/lib/active_merchant/billing/integrations/paypal/helper.rb +119 -0
  110. data/lib/active_merchant/billing/integrations/paypal/notification.rb +154 -0
  111. data/lib/active_merchant/billing/integrations/paypal/return.rb +10 -0
  112. data/lib/active_merchant/billing/integrations/quickpay.rb +18 -0
  113. data/lib/active_merchant/billing/integrations/quickpay/helper.rb +72 -0
  114. data/lib/active_merchant/billing/integrations/quickpay/notification.rb +74 -0
  115. data/lib/active_merchant/billing/integrations/return.rb +35 -0
  116. data/lib/active_merchant/billing/integrations/two_checkout.rb +23 -0
  117. data/lib/active_merchant/billing/integrations/two_checkout/helper.rb +59 -0
  118. data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +114 -0
  119. data/lib/active_merchant/billing/integrations/two_checkout/return.rb +17 -0
  120. data/lib/active_merchant/billing/response.rb +32 -0
  121. data/lib/active_merchant/lib/connection.rb +170 -0
  122. data/lib/active_merchant/lib/country.rb +319 -0
  123. data/lib/active_merchant/lib/error.rb +4 -0
  124. data/lib/active_merchant/lib/post_data.rb +22 -0
  125. data/lib/active_merchant/lib/posts_data.rb +47 -0
  126. data/lib/active_merchant/lib/requires_parameters.rb +16 -0
  127. data/lib/active_merchant/lib/utils.rb +18 -0
  128. data/lib/active_merchant/lib/validateable.rb +76 -0
  129. data/lib/certs/cacert.pem +7815 -0
  130. data/lib/support/gateway_support.rb +58 -0
  131. data/script/destroy +14 -0
  132. data/script/generate +14 -0
  133. data/test/fixtures.yml +353 -0
  134. data/test/remote/gateways/remote_authorize_net_cim_test.rb +459 -0
  135. data/test/remote/gateways/remote_authorize_net_test.rb +145 -0
  136. data/test/remote/gateways/remote_beanstream_interac_test.rb +53 -0
  137. data/test/remote/gateways/remote_beanstream_test.rb +150 -0
  138. data/test/remote/gateways/remote_braintree_test.rb +154 -0
  139. data/test/remote/gateways/remote_card_stream_test.rb +148 -0
  140. data/test/remote/gateways/remote_cyber_source_test.rb +144 -0
  141. data/test/remote/gateways/remote_data_cash_test.rb +357 -0
  142. data/test/remote/gateways/remote_efsnet_test.rb +81 -0
  143. data/test/remote/gateways/remote_elavon_test.rb +66 -0
  144. data/test/remote/gateways/remote_eway_test.rb +74 -0
  145. data/test/remote/gateways/remote_exact_test.rb +60 -0
  146. data/test/remote/gateways/remote_first_pay_test.rb +87 -0
  147. data/test/remote/gateways/remote_instapay_test.rb +61 -0
  148. data/test/remote/gateways/remote_linkpoint_test.rb +112 -0
  149. data/test/remote/gateways/remote_merchant_e_solutions_test.rb +173 -0
  150. data/test/remote/gateways/remote_merchant_ware_test.rb +113 -0
  151. data/test/remote/gateways/remote_modern_payments_cim_test.rb +58 -0
  152. data/test/remote/gateways/remote_modern_payments_test.rb +43 -0
  153. data/test/remote/gateways/remote_moneris_test.rb +118 -0
  154. data/test/remote/gateways/remote_moneris_usa_test.rb +115 -0
  155. data/test/remote/gateways/remote_net_registry_test.rb +85 -0
  156. data/test/remote/gateways/remote_netbilling_test.rb +70 -0
  157. data/test/remote/gateways/remote_ogone_test.rb +108 -0
  158. data/test/remote/gateways/remote_pay_junction_test.rb +143 -0
  159. data/test/remote/gateways/remote_pay_secure_test.rb +39 -0
  160. data/test/remote/gateways/remote_payflow_express_test.rb +50 -0
  161. data/test/remote/gateways/remote_payflow_test.rb +237 -0
  162. data/test/remote/gateways/remote_payflow_uk_test.rb +173 -0
  163. data/test/remote/gateways/remote_payment_express_test.rb +136 -0
  164. data/test/remote/gateways/remote_paypal_express_test.rb +49 -0
  165. data/test/remote/gateways/remote_paypal_test.rb +178 -0
  166. data/test/remote/gateways/remote_plugnpay_test.rb +72 -0
  167. data/test/remote/gateways/remote_psigate_test.rb +50 -0
  168. data/test/remote/gateways/remote_psl_card_test.rb +125 -0
  169. data/test/remote/gateways/remote_quickpay_test.rb +190 -0
  170. data/test/remote/gateways/remote_realex_test.rb +224 -0
  171. data/test/remote/gateways/remote_sage_bankcard_test.rb +109 -0
  172. data/test/remote/gateways/remote_sage_pay_test.rb +219 -0
  173. data/test/remote/gateways/remote_sage_test.rb +87 -0
  174. data/test/remote/gateways/remote_sage_virtual_check_test.rb +62 -0
  175. data/test/remote/gateways/remote_secure_pay_au_test.rb +40 -0
  176. data/test/remote/gateways/remote_secure_pay_tech_test.rb +37 -0
  177. data/test/remote/gateways/remote_secure_pay_test.rb +28 -0
  178. data/test/remote/gateways/remote_skipjack_test.rb +105 -0
  179. data/test/remote/gateways/remote_trans_first_test.rb +34 -0
  180. data/test/remote/gateways/remote_transax_test.rb +112 -0
  181. data/test/remote/gateways/remote_trust_commerce_test.rb +152 -0
  182. data/test/remote/gateways/remote_usa_epay_test.rb +46 -0
  183. data/test/remote/gateways/remote_verifi_test.rb +107 -0
  184. data/test/remote/gateways/remote_viaklix_test.rb +43 -0
  185. data/test/remote/gateways/remote_wirecard_test.rb +111 -0
  186. data/test/remote/integrations/remote_gestpay_integration_test.rb +37 -0
  187. data/test/remote/integrations/remote_paypal_integration_test.rb +26 -0
  188. data/test/test_helper.rb +182 -0
  189. data/test/unit/avs_result_test.rb +59 -0
  190. data/test/unit/base_test.rb +55 -0
  191. data/test/unit/check_test.rb +88 -0
  192. data/test/unit/connection_test.rb +129 -0
  193. data/test/unit/country_code_test.rb +33 -0
  194. data/test/unit/country_test.rb +64 -0
  195. data/test/unit/credit_card_formatting_test.rb +19 -0
  196. data/test/unit/credit_card_methods_test.rb +179 -0
  197. data/test/unit/credit_card_test.rb +318 -0
  198. data/test/unit/cvv_result_test.rb +33 -0
  199. data/test/unit/expiry_date_test.rb +32 -0
  200. data/test/unit/gateways/authorize_net_cim_test.rb +638 -0
  201. data/test/unit/gateways/authorize_net_test.rb +290 -0
  202. data/test/unit/gateways/beanstream_interac_test.rb +51 -0
  203. data/test/unit/gateways/beanstream_test.rb +108 -0
  204. data/test/unit/gateways/bogus_test.rb +46 -0
  205. data/test/unit/gateways/braintree_test.rb +126 -0
  206. data/test/unit/gateways/card_stream_test.rb +90 -0
  207. data/test/unit/gateways/cyber_source_test.rb +188 -0
  208. data/test/unit/gateways/data_cash_test.rb +133 -0
  209. data/test/unit/gateways/efsnet_test.rb +123 -0
  210. data/test/unit/gateways/elavon_test.rb +139 -0
  211. data/test/unit/gateways/eway_test.rb +118 -0
  212. data/test/unit/gateways/exact_test.rb +156 -0
  213. data/test/unit/gateways/first_pay_test.rb +125 -0
  214. data/test/unit/gateways/gateway_test.rb +48 -0
  215. data/test/unit/gateways/instapay_test.rb +102 -0
  216. data/test/unit/gateways/linkpoint_test.rb +167 -0
  217. data/test/unit/gateways/merchant_e_solutions_test.rb +169 -0
  218. data/test/unit/gateways/merchant_ware_test.rb +188 -0
  219. data/test/unit/gateways/modern_payments_cim_test.rb +171 -0
  220. data/test/unit/gateways/moneris_test.rb +185 -0
  221. data/test/unit/gateways/moneris_usa_test.rb +183 -0
  222. data/test/unit/gateways/net_registry_test.rb +416 -0
  223. data/test/unit/gateways/netbilling_test.rb +54 -0
  224. data/test/unit/gateways/ogone_test.rb +256 -0
  225. data/test/unit/gateways/pay_junction_test.rb +123 -0
  226. data/test/unit/gateways/pay_secure_test.rb +71 -0
  227. data/test/unit/gateways/payflow_express_test.rb +173 -0
  228. data/test/unit/gateways/payflow_express_uk_test.rb +86 -0
  229. data/test/unit/gateways/payflow_test.rb +305 -0
  230. data/test/unit/gateways/payflow_uk_test.rb +30 -0
  231. data/test/unit/gateways/payment_express_test.rb +195 -0
  232. data/test/unit/gateways/paypal_express_test.rb +382 -0
  233. data/test/unit/gateways/paypal_test.rb +569 -0
  234. data/test/unit/gateways/plugnpay_test.rb +86 -0
  235. data/test/unit/gateways/psigate_test.rb +169 -0
  236. data/test/unit/gateways/psl_card_test.rb +64 -0
  237. data/test/unit/gateways/quickpay_test.rb +112 -0
  238. data/test/unit/gateways/realex_test.rb +151 -0
  239. data/test/unit/gateways/sage_bankcard_test.rb +162 -0
  240. data/test/unit/gateways/sage_pay_test.rb +139 -0
  241. data/test/unit/gateways/sage_virtual_check_test.rb +71 -0
  242. data/test/unit/gateways/secure_pay_au_test.rb +207 -0
  243. data/test/unit/gateways/secure_pay_tech_test.rb +44 -0
  244. data/test/unit/gateways/secure_pay_test.rb +87 -0
  245. data/test/unit/gateways/skip_jack_test.rb +133 -0
  246. data/test/unit/gateways/trans_first_test.rb +112 -0
  247. data/test/unit/gateways/trust_commerce_test.rb +90 -0
  248. data/test/unit/gateways/usa_epay_test.rb +128 -0
  249. data/test/unit/gateways/verifi_test.rb +96 -0
  250. data/test/unit/gateways/viaklix_test.rb +78 -0
  251. data/test/unit/gateways/wirecard_test.rb +250 -0
  252. data/test/unit/generators/test_gateway_generator.rb +46 -0
  253. data/test/unit/generators/test_generator_helper.rb +20 -0
  254. data/test/unit/generators/test_integration_generator.rb +53 -0
  255. data/test/unit/integrations/action_view_helper_test.rb +50 -0
  256. data/test/unit/integrations/bogus_module_test.rb +20 -0
  257. data/test/unit/integrations/chronopay_module_test.rb +13 -0
  258. data/test/unit/integrations/gestpay_module_test.rb +14 -0
  259. data/test/unit/integrations/helpers/bogus_helper_test.rb +28 -0
  260. data/test/unit/integrations/helpers/chronopay_helper_test.rb +67 -0
  261. data/test/unit/integrations/helpers/gestpay_helper_test.rb +100 -0
  262. data/test/unit/integrations/helpers/hi_trust_helper_test.rb +16 -0
  263. data/test/unit/integrations/helpers/nochex_helper_test.rb +53 -0
  264. data/test/unit/integrations/helpers/paypal_helper_test.rb +171 -0
  265. data/test/unit/integrations/helpers/quickpay_helper_test.rb +40 -0
  266. data/test/unit/integrations/helpers/two_checkout_helper_test.rb +92 -0
  267. data/test/unit/integrations/hi_trust_module_test.rb +13 -0
  268. data/test/unit/integrations/nochex_module_test.rb +13 -0
  269. data/test/unit/integrations/notifications/chronopay_notification_test.rb +66 -0
  270. data/test/unit/integrations/notifications/gestpay_notification_test.rb +60 -0
  271. data/test/unit/integrations/notifications/hi_trust_notification_test.rb +59 -0
  272. data/test/unit/integrations/notifications/nochex_notification_test.rb +51 -0
  273. data/test/unit/integrations/notifications/notification_test.rb +54 -0
  274. data/test/unit/integrations/notifications/paypal_notification_test.rb +85 -0
  275. data/test/unit/integrations/notifications/quickpay_notification_test.rb +69 -0
  276. data/test/unit/integrations/notifications/two_checkout_notification_test.rb +55 -0
  277. data/test/unit/integrations/paypal_module_test.rb +28 -0
  278. data/test/unit/integrations/quickpay_module_test.rb +9 -0
  279. data/test/unit/integrations/returns/chronopay_return_test.rb +11 -0
  280. data/test/unit/integrations/returns/gestpay_return_test.rb +10 -0
  281. data/test/unit/integrations/returns/hi_trust_return_test.rb +24 -0
  282. data/test/unit/integrations/returns/nochex_return_test.rb +10 -0
  283. data/test/unit/integrations/returns/paypal_return_test.rb +10 -0
  284. data/test/unit/integrations/returns/return_test.rb +11 -0
  285. data/test/unit/integrations/returns/two_checkout_return_test.rb +24 -0
  286. data/test/unit/integrations/two_checkout_module_test.rb +13 -0
  287. data/test/unit/post_data_test.rb +55 -0
  288. data/test/unit/posts_data_test.rb +48 -0
  289. data/test/unit/response_test.rb +28 -0
  290. data/test/unit/utils_test.rb +7 -0
  291. data/test/unit/validateable_test.rb +60 -0
  292. metadata +396 -0
@@ -0,0 +1,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,112 @@
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
+
93
+ def test_successful_recurring_payment
94
+ assert response = @gateway.recurring(2400, @credit_card,
95
+ :order_id => generate_unique_id,
96
+ :installments => 12,
97
+ :startdate => "immediate",
98
+ :periodicity => :monthly,
99
+ :billing_address => address
100
+ )
101
+
102
+ assert_success response
103
+ assert_equal "APPROVED", response.params["approved"]
104
+ end
105
+
106
+ def test_declined_purchase_with_invalid_credit_card
107
+ @credit_card.number = '1111111111111111'
108
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
109
+ assert_failure response
110
+ assert_equal "DECLINED", response.params["approved"]
111
+ end
112
+ end