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,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
@@ -0,0 +1,34 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteTransFirstTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @gateway = TransFirstGateway.new(fixtures(:trans_first))
7
+
8
+ @credit_card = credit_card('4111111111111111')
9
+ @amount = 100
10
+ @options = {
11
+ :order_id => generate_unique_id,
12
+ :invoice => 'ActiveMerchant Sale',
13
+ :billing_address => address
14
+ }
15
+ end
16
+
17
+ def test_successful_purchase
18
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
19
+ assert_equal 'test transaction', response.message
20
+ assert response.test?
21
+ assert_success response
22
+ assert !response.authorization.blank?
23
+ end
24
+
25
+ def test_invalid_login
26
+ gateway = TransFirstGateway.new(
27
+ :login => '',
28
+ :password => ''
29
+ )
30
+ assert response = gateway.purchase(@amount, @credit_card, @options)
31
+ assert_equal 'invalid account', response.message
32
+ assert_failure response
33
+ end
34
+ end
@@ -0,0 +1,112 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteTransaxTest < Test::Unit::TestCase
4
+ def setup
5
+ @gateway = TransaxGateway.new(fixtures(:transax))
6
+
7
+ @amount = 100
8
+ @credit_card = credit_card('4111111111111111', :year => 10, :month => 10)
9
+ @declined_card = credit_card(0xDEADBEEF_0000.to_s)
10
+
11
+ @check = check()
12
+
13
+ @options = {
14
+ :order_id => '1',
15
+ :billing_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 "This transaction has been approved", response.message
24
+ end
25
+
26
+ def test_unsuccessful_purchase
27
+ assert response = @gateway.purchase(@amount, @declined_card, @options)
28
+ assert_failure response
29
+ assert_match /Invalid card number/, response.message
30
+ end
31
+
32
+ def test_authorize_and_capture
33
+ assert auth = @gateway.authorize(@amount, @credit_card, @options)
34
+ assert_success auth
35
+ assert_equal "This transaction has been approved", auth.message
36
+ assert auth.authorization
37
+ assert capture = @gateway.capture(@amount, auth.authorization)
38
+ assert_success capture
39
+ end
40
+
41
+ def test_authorize_and_void
42
+ assert auth = @gateway.authorize(@amount, @credit_card, @options)
43
+ assert_success auth
44
+ assert_equal "This transaction has been approved", auth.message
45
+ assert auth.authorization
46
+ assert void = @gateway.void(auth.authorization)
47
+ assert_equal "Transaction Void Successful", void.message
48
+ assert_success void
49
+ end
50
+
51
+ def test_purchase_and_refund
52
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
53
+ assert_success response
54
+ assert_equal "This transaction has been approved", response.message
55
+ assert response.authorization
56
+ assert refund = @gateway.refund(response.authorization)
57
+ assert_equal "This transaction has been approved", refund.message
58
+ assert_success refund
59
+ end
60
+
61
+ def test_failed_capture
62
+ assert response = @gateway.capture(@amount, '')
63
+ assert_failure response
64
+ assert_match /Invalid Transaction ID/, response.message
65
+ end
66
+
67
+ def test_credit
68
+ assert response = @gateway.credit(@amount, @credit_card, @options)
69
+ assert_success response
70
+ assert response.authorization
71
+ assert_equal "This transaction has been approved", response.message
72
+ end
73
+
74
+ def test_purchase_and_update
75
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
76
+ assert_success response
77
+ assert_equal "This transaction has been approved", response.message
78
+ assert response.authorization
79
+ assert update = @gateway.amend(response.authorization, :shipping_carrier => 'usps')
80
+ assert_equal "This transaction has been approved", update.message
81
+ assert_success update
82
+ end
83
+
84
+ def test_successful_purchase_with_sku
85
+ @options['product_sku_#']='123456'
86
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
87
+ assert_success response
88
+ assert_equal "This transaction has been approved", response.message
89
+ end
90
+
91
+ def test_store_credit_card
92
+ assert response = @gateway.store(@credit_card)
93
+ assert_success response
94
+ assert !response.params['customer_vault_id'].blank?
95
+ end
96
+
97
+ def test_store_check
98
+ assert response = @gateway.store(@check)
99
+ assert_success response
100
+ assert !response.params['customer_vault_id'].blank?
101
+ end
102
+
103
+ def test_invalid_login
104
+ gateway = TransaxGateway.new(
105
+ :login => '',
106
+ :password => ''
107
+ )
108
+ assert response = gateway.purchase(@amount, @credit_card, @options)
109
+ assert_failure response
110
+ assert_equal "Invalid Username", response.message
111
+ end
112
+ end
@@ -0,0 +1,152 @@
1
+ require 'test_helper'
2
+
3
+ class TrustCommerceTest < Test::Unit::TestCase
4
+ def setup
5
+ @gateway = TrustCommerceGateway.new(fixtures(:trust_commerce))
6
+
7
+ @credit_card = credit_card('4111111111111111')
8
+
9
+ @amount = 100
10
+
11
+ @valid_verification_value = '123'
12
+ @invalid_verification_value = '1234'
13
+
14
+ @valid_address = {
15
+ :address1 => '123 Test St.',
16
+ :address2 => nil,
17
+ :city => 'Somewhere',
18
+ :state => 'CA',
19
+ :zip => '90001'
20
+ }
21
+
22
+ @invalid_address = {
23
+ :address1 => '187 Apple Tree Lane.',
24
+ :address2 => nil,
25
+ :city => 'Woodside',
26
+ :state => 'CA',
27
+ :zip => '94062'
28
+ }
29
+
30
+ @options = {
31
+ :ip => '10.10.10.10',
32
+ :order_id => '#1000.1',
33
+ :email => 'cody@example.com',
34
+ :billing_address => @valid_address,
35
+ :shipping_address => @valid_address
36
+ }
37
+ end
38
+
39
+ def test_bad_login
40
+ @gateway.options[:login] = 'X'
41
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
42
+
43
+ assert_equal Response, response.class
44
+ assert_equal ["error",
45
+ "offenders",
46
+ "status"], response.params.keys.sort
47
+
48
+ assert_match /A field was improperly formatted, such as non-digit characters in a number field/, response.message
49
+
50
+ assert_failure response
51
+ end
52
+
53
+ def test_successful_purchase_with_avs
54
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
55
+ assert_equal 'Y', response.avs_result['code']
56
+ assert_match /The transaction was successful/, response.message
57
+
58
+ assert_success response
59
+ assert !response.authorization.blank?
60
+ end
61
+
62
+ def test_unsuccessful_purchase_with_invalid_cvv
63
+ @credit_card.verification_value = @invalid_verification_value
64
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
65
+
66
+ assert_equal Response, response.class
67
+ assert_match /CVV failed; the number provided is not the correct verification number for the card/, response.message
68
+ assert_failure response
69
+ end
70
+
71
+ def test_purchase_with_avs_for_invalid_address
72
+ assert response = @gateway.purchase(@amount, @credit_card, @options.update(:billing_address => @invalid_address))
73
+ assert_equal "N", response.params["avs"]
74
+ assert_match /The transaction was successful/, response.message
75
+ assert_success response
76
+ end
77
+
78
+ def test_successful_authorize_with_avs
79
+ assert response = @gateway.authorize(@amount, @credit_card, :billing_address => @valid_address)
80
+
81
+ assert_equal "Y", response.avs_result["code"]
82
+ assert_match /The transaction was successful/, response.message
83
+
84
+ assert_success response
85
+ assert !response.authorization.blank?
86
+ end
87
+
88
+ def test_unsuccessful_authorize_with_invalid_cvv
89
+ @credit_card.verification_value = @invalid_verification_value
90
+ assert response = @gateway.authorize(@amount, @credit_card, @options)
91
+ assert_match /CVV failed; the number provided is not the correct verification number for the card/, response.message
92
+ assert_failure response
93
+ end
94
+
95
+ def test_authorization_with_avs_for_invalid_address
96
+ assert response = @gateway.authorize(@amount, @credit_card, @options.update(:billing_address => @invalid_address))
97
+ assert_equal "N", response.params["avs"]
98
+ assert_match /The transaction was successful/, response.message
99
+ assert_success response
100
+ end
101
+
102
+ def test_successful_capture
103
+ auth = @gateway.authorize(300, @credit_card)
104
+ assert_success auth
105
+ response = @gateway.capture(300, auth.authorization)
106
+
107
+ assert_success response
108
+ assert_equal 'The transaction was successful', response.message
109
+ assert_equal 'accepted', response.params['status']
110
+ assert response.params['transid']
111
+ end
112
+
113
+ def test_authorization_and_void
114
+ auth = @gateway.authorize(300, @credit_card, @options)
115
+ assert_success auth
116
+
117
+ void = @gateway.void(auth.authorization)
118
+ assert_success void
119
+ assert_equal 'The transaction was successful', void.message
120
+ assert_equal 'accepted', void.params['status']
121
+ assert void.params['transid']
122
+ end
123
+
124
+ def test_successful_credit
125
+ assert response = @gateway.credit(@amount, '011-0022698151')
126
+
127
+ assert_match /The transaction was successful/, response.message
128
+ assert_success response
129
+ end
130
+
131
+ def test_store_failure
132
+ assert response = @gateway.store(@credit_card)
133
+
134
+ assert_equal Response, response.class
135
+ assert_match %r{The merchant can't accept data passed in this field}, response.message
136
+ assert_failure response
137
+ end
138
+
139
+ def test_unstore_failure
140
+ assert response = @gateway.unstore('testme')
141
+
142
+ assert_match %r{The merchant can't accept data passed in this field}, response.message
143
+ assert_failure response
144
+ end
145
+
146
+ def test_recurring_failure
147
+ assert response = @gateway.recurring(@amount, @credit_card, :periodicity => :weekly)
148
+
149
+ assert_match %r{The merchant can't accept data passed in this field}, response.message
150
+ assert_failure response
151
+ end
152
+ end