johnideal-activemerchant 1.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. data/.gitignore +2 -0
  2. data/CHANGELOG +448 -0
  3. data/CONTRIBUTERS +106 -0
  4. data/MIT-LICENSE +20 -0
  5. data/README +134 -0
  6. data/Rakefile +167 -0
  7. data/VERSION +1 -0
  8. data/activemerchant.gemspec +484 -0
  9. data/gem-public_cert.pem +20 -0
  10. data/generators/gateway/USAGE +5 -0
  11. data/generators/gateway/gateway_generator.rb +61 -0
  12. data/generators/gateway/templates/gateway.rb +77 -0
  13. data/generators/gateway/templates/gateway_test.rb +49 -0
  14. data/generators/gateway/templates/remote_gateway_test.rb +57 -0
  15. data/generators/integration/USAGE +5 -0
  16. data/generators/integration/integration_generator.rb +68 -0
  17. data/generators/integration/templates/helper.rb +34 -0
  18. data/generators/integration/templates/helper_test.rb +54 -0
  19. data/generators/integration/templates/integration.rb +18 -0
  20. data/generators/integration/templates/module_test.rb +9 -0
  21. data/generators/integration/templates/notification.rb +100 -0
  22. data/generators/integration/templates/notification_test.rb +41 -0
  23. data/init.rb +3 -0
  24. data/lib/active_merchant/billing/avs_result.rb +98 -0
  25. data/lib/active_merchant/billing/base.rb +57 -0
  26. data/lib/active_merchant/billing/check.rb +68 -0
  27. data/lib/active_merchant/billing/credit_card.rb +159 -0
  28. data/lib/active_merchant/billing/credit_card_formatting.rb +21 -0
  29. data/lib/active_merchant/billing/credit_card_methods.rb +125 -0
  30. data/lib/active_merchant/billing/cvv_result.rb +38 -0
  31. data/lib/active_merchant/billing/expiry_date.rb +34 -0
  32. data/lib/active_merchant/billing/gateway.rb +158 -0
  33. data/lib/active_merchant/billing/gateways/authorize_net.rb +657 -0
  34. data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +703 -0
  35. data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +233 -0
  36. data/lib/active_merchant/billing/gateways/beanstream.rb +102 -0
  37. data/lib/active_merchant/billing/gateways/beanstream_interac.rb +54 -0
  38. data/lib/active_merchant/billing/gateways/bogus.rb +98 -0
  39. data/lib/active_merchant/billing/gateways/braintree.rb +17 -0
  40. data/lib/active_merchant/billing/gateways/card_stream.rb +230 -0
  41. data/lib/active_merchant/billing/gateways/cyber_source.rb +406 -0
  42. data/lib/active_merchant/billing/gateways/data_cash.rb +595 -0
  43. data/lib/active_merchant/billing/gateways/efsnet.rb +229 -0
  44. data/lib/active_merchant/billing/gateways/eway.rb +277 -0
  45. data/lib/active_merchant/billing/gateways/exact.rb +222 -0
  46. data/lib/active_merchant/billing/gateways/instapay.rb +164 -0
  47. data/lib/active_merchant/billing/gateways/linkpoint.rb +396 -0
  48. data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +154 -0
  49. data/lib/active_merchant/billing/gateways/merchant_ware.rb +283 -0
  50. data/lib/active_merchant/billing/gateways/modern_payments.rb +36 -0
  51. data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +214 -0
  52. data/lib/active_merchant/billing/gateways/moneris.rb +205 -0
  53. data/lib/active_merchant/billing/gateways/net_registry.rb +189 -0
  54. data/lib/active_merchant/billing/gateways/netbilling.rb +168 -0
  55. data/lib/active_merchant/billing/gateways/pay_junction.rb +392 -0
  56. data/lib/active_merchant/billing/gateways/pay_secure.rb +120 -0
  57. data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +207 -0
  58. data/lib/active_merchant/billing/gateways/payflow/payflow_express_response.rb +39 -0
  59. data/lib/active_merchant/billing/gateways/payflow/payflow_response.rb +13 -0
  60. data/lib/active_merchant/billing/gateways/payflow.rb +236 -0
  61. data/lib/active_merchant/billing/gateways/payflow_express.rb +138 -0
  62. data/lib/active_merchant/billing/gateways/payflow_express_uk.rb +15 -0
  63. data/lib/active_merchant/billing/gateways/payflow_uk.rb +21 -0
  64. data/lib/active_merchant/billing/gateways/payment_express.rb +230 -0
  65. data/lib/active_merchant/billing/gateways/paymentech_orbital/paymentech_orbital_response.rb +72 -0
  66. data/lib/active_merchant/billing/gateways/paymentech_orbital.rb +170 -0
  67. data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +325 -0
  68. data/lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb +38 -0
  69. data/lib/active_merchant/billing/gateways/paypal.rb +108 -0
  70. data/lib/active_merchant/billing/gateways/paypal_ca.rb +13 -0
  71. data/lib/active_merchant/billing/gateways/paypal_express.rb +130 -0
  72. data/lib/active_merchant/billing/gateways/paypal_express_common.rb +20 -0
  73. data/lib/active_merchant/billing/gateways/plugnpay.rb +292 -0
  74. data/lib/active_merchant/billing/gateways/protx.rb +307 -0
  75. data/lib/active_merchant/billing/gateways/psigate.rb +214 -0
  76. data/lib/active_merchant/billing/gateways/psl_card.rb +306 -0
  77. data/lib/active_merchant/billing/gateways/quickpay.rb +213 -0
  78. data/lib/active_merchant/billing/gateways/realex.rb +200 -0
  79. data/lib/active_merchant/billing/gateways/sage/sage_bankcard.rb +88 -0
  80. data/lib/active_merchant/billing/gateways/sage/sage_core.rb +110 -0
  81. data/lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb +97 -0
  82. data/lib/active_merchant/billing/gateways/sage.rb +146 -0
  83. data/lib/active_merchant/billing/gateways/secure_pay.rb +31 -0
  84. data/lib/active_merchant/billing/gateways/secure_pay_au.rb +157 -0
  85. data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +113 -0
  86. data/lib/active_merchant/billing/gateways/skip_jack.rb +442 -0
  87. data/lib/active_merchant/billing/gateways/smart_ps.rb +254 -0
  88. data/lib/active_merchant/billing/gateways/trans_first.rb +127 -0
  89. data/lib/active_merchant/billing/gateways/transax.rb +26 -0
  90. data/lib/active_merchant/billing/gateways/trust_commerce.rb +418 -0
  91. data/lib/active_merchant/billing/gateways/usa_epay.rb +194 -0
  92. data/lib/active_merchant/billing/gateways/verifi.rb +228 -0
  93. data/lib/active_merchant/billing/gateways/viaklix.rb +165 -0
  94. data/lib/active_merchant/billing/gateways/wirecard.rb +318 -0
  95. data/lib/active_merchant/billing/gateways.rb +3 -0
  96. data/lib/active_merchant/billing/integrations/action_view_helper.rb +79 -0
  97. data/lib/active_merchant/billing/integrations/bogus/helper.rb +17 -0
  98. data/lib/active_merchant/billing/integrations/bogus/notification.rb +11 -0
  99. data/lib/active_merchant/billing/integrations/bogus/return.rb +10 -0
  100. data/lib/active_merchant/billing/integrations/bogus.rb +22 -0
  101. data/lib/active_merchant/billing/integrations/chronopay/helper.rb +81 -0
  102. data/lib/active_merchant/billing/integrations/chronopay/notification.rb +156 -0
  103. data/lib/active_merchant/billing/integrations/chronopay/return.rb +10 -0
  104. data/lib/active_merchant/billing/integrations/chronopay.rb +22 -0
  105. data/lib/active_merchant/billing/integrations/gestpay/common.rb +42 -0
  106. data/lib/active_merchant/billing/integrations/gestpay/helper.rb +70 -0
  107. data/lib/active_merchant/billing/integrations/gestpay/notification.rb +83 -0
  108. data/lib/active_merchant/billing/integrations/gestpay/return.rb +10 -0
  109. data/lib/active_merchant/billing/integrations/gestpay.rb +26 -0
  110. data/lib/active_merchant/billing/integrations/helper.rb +93 -0
  111. data/lib/active_merchant/billing/integrations/hi_trust/helper.rb +58 -0
  112. data/lib/active_merchant/billing/integrations/hi_trust/notification.rb +59 -0
  113. data/lib/active_merchant/billing/integrations/hi_trust/return.rb +67 -0
  114. data/lib/active_merchant/billing/integrations/hi_trust.rb +26 -0
  115. data/lib/active_merchant/billing/integrations/nochex/helper.rb +68 -0
  116. data/lib/active_merchant/billing/integrations/nochex/notification.rb +94 -0
  117. data/lib/active_merchant/billing/integrations/nochex/return.rb +10 -0
  118. data/lib/active_merchant/billing/integrations/nochex.rb +87 -0
  119. data/lib/active_merchant/billing/integrations/notification.rb +62 -0
  120. data/lib/active_merchant/billing/integrations/paypal/helper.rb +118 -0
  121. data/lib/active_merchant/billing/integrations/paypal/notification.rb +154 -0
  122. data/lib/active_merchant/billing/integrations/paypal/return.rb +10 -0
  123. data/lib/active_merchant/billing/integrations/paypal.rb +40 -0
  124. data/lib/active_merchant/billing/integrations/quickpay/helper.rb +72 -0
  125. data/lib/active_merchant/billing/integrations/quickpay/notification.rb +74 -0
  126. data/lib/active_merchant/billing/integrations/quickpay.rb +18 -0
  127. data/lib/active_merchant/billing/integrations/return.rb +35 -0
  128. data/lib/active_merchant/billing/integrations/two_checkout/helper.rb +59 -0
  129. data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +114 -0
  130. data/lib/active_merchant/billing/integrations/two_checkout/return.rb +17 -0
  131. data/lib/active_merchant/billing/integrations/two_checkout.rb +23 -0
  132. data/lib/active_merchant/billing/integrations.rb +22 -0
  133. data/lib/active_merchant/billing/response.rb +32 -0
  134. data/lib/active_merchant/lib/connection.rb +171 -0
  135. data/lib/active_merchant/lib/country.rb +319 -0
  136. data/lib/active_merchant/lib/error.rb +4 -0
  137. data/lib/active_merchant/lib/post_data.rb +22 -0
  138. data/lib/active_merchant/lib/posts_data.rb +47 -0
  139. data/lib/active_merchant/lib/requires_parameters.rb +16 -0
  140. data/lib/active_merchant/lib/utils.rb +18 -0
  141. data/lib/active_merchant/lib/validateable.rb +76 -0
  142. data/lib/active_merchant.rb +60 -0
  143. data/lib/certs/cacert.pem +7815 -0
  144. data/lib/support/gateway_support.rb +58 -0
  145. data/script/destroy +14 -0
  146. data/script/generate +14 -0
  147. data/test/fixtures.yml +335 -0
  148. data/test/remote/gateways/remote_authorize_net_cim_test.rb +459 -0
  149. data/test/remote/gateways/remote_authorize_net_test.rb +145 -0
  150. data/test/remote/gateways/remote_beanstream_interac_test.rb +53 -0
  151. data/test/remote/gateways/remote_beanstream_test.rb +150 -0
  152. data/test/remote/gateways/remote_braintree_test.rb +154 -0
  153. data/test/remote/gateways/remote_card_stream_test.rb +148 -0
  154. data/test/remote/gateways/remote_cyber_source_test.rb +144 -0
  155. data/test/remote/gateways/remote_data_cash_test.rb +357 -0
  156. data/test/remote/gateways/remote_efsnet_test.rb +81 -0
  157. data/test/remote/gateways/remote_eway_test.rb +74 -0
  158. data/test/remote/gateways/remote_exact_test.rb +60 -0
  159. data/test/remote/gateways/remote_instapay_test.rb +61 -0
  160. data/test/remote/gateways/remote_linkpoint_test.rb +112 -0
  161. data/test/remote/gateways/remote_merchant_e_solutions_test.rb +173 -0
  162. data/test/remote/gateways/remote_merchant_ware_test.rb +113 -0
  163. data/test/remote/gateways/remote_modern_payments_cim_test.rb +58 -0
  164. data/test/remote/gateways/remote_modern_payments_test.rb +43 -0
  165. data/test/remote/gateways/remote_moneris_test.rb +82 -0
  166. data/test/remote/gateways/remote_net_registry_test.rb +85 -0
  167. data/test/remote/gateways/remote_netbilling_test.rb +70 -0
  168. data/test/remote/gateways/remote_pay_junction_test.rb +143 -0
  169. data/test/remote/gateways/remote_pay_secure_test.rb +39 -0
  170. data/test/remote/gateways/remote_payflow_express_test.rb +50 -0
  171. data/test/remote/gateways/remote_payflow_test.rb +237 -0
  172. data/test/remote/gateways/remote_payflow_uk_test.rb +173 -0
  173. data/test/remote/gateways/remote_payment_express_test.rb +136 -0
  174. data/test/remote/gateways/remote_paymentech_orbital_test.rb +57 -0
  175. data/test/remote/gateways/remote_paypal_express_test.rb +49 -0
  176. data/test/remote/gateways/remote_paypal_test.rb +167 -0
  177. data/test/remote/gateways/remote_plugnpay_test.rb +72 -0
  178. data/test/remote/gateways/remote_protx_test.rb +219 -0
  179. data/test/remote/gateways/remote_psigate_test.rb +50 -0
  180. data/test/remote/gateways/remote_psl_card_test.rb +125 -0
  181. data/test/remote/gateways/remote_quickpay_test.rb +190 -0
  182. data/test/remote/gateways/remote_realex_test.rb +224 -0
  183. data/test/remote/gateways/remote_sage_bankcard_test.rb +109 -0
  184. data/test/remote/gateways/remote_sage_test.rb +87 -0
  185. data/test/remote/gateways/remote_sage_virtual_check_test.rb +62 -0
  186. data/test/remote/gateways/remote_secure_pay_au_test.rb +40 -0
  187. data/test/remote/gateways/remote_secure_pay_tech_test.rb +37 -0
  188. data/test/remote/gateways/remote_secure_pay_test.rb +28 -0
  189. data/test/remote/gateways/remote_skipjack_test.rb +105 -0
  190. data/test/remote/gateways/remote_trans_first_test.rb +34 -0
  191. data/test/remote/gateways/remote_transax_test.rb +112 -0
  192. data/test/remote/gateways/remote_trust_commerce_test.rb +152 -0
  193. data/test/remote/gateways/remote_usa_epay_test.rb +46 -0
  194. data/test/remote/gateways/remote_verifi_test.rb +107 -0
  195. data/test/remote/gateways/remote_viaklix_test.rb +43 -0
  196. data/test/remote/gateways/remote_wirecard_test.rb +111 -0
  197. data/test/remote/integrations/remote_gestpay_integration_test.rb +37 -0
  198. data/test/remote/integrations/remote_paypal_integration_test.rb +26 -0
  199. data/test/test_helper.rb +182 -0
  200. data/test/unit/avs_result_test.rb +59 -0
  201. data/test/unit/base_test.rb +55 -0
  202. data/test/unit/check_test.rb +88 -0
  203. data/test/unit/connection_test.rb +129 -0
  204. data/test/unit/country_code_test.rb +33 -0
  205. data/test/unit/country_test.rb +64 -0
  206. data/test/unit/credit_card_formatting_test.rb +19 -0
  207. data/test/unit/credit_card_methods_test.rb +170 -0
  208. data/test/unit/credit_card_test.rb +318 -0
  209. data/test/unit/cvv_result_test.rb +33 -0
  210. data/test/unit/expiry_date_test.rb +32 -0
  211. data/test/unit/gateways/authorize_net_cim_test.rb +638 -0
  212. data/test/unit/gateways/authorize_net_test.rb +290 -0
  213. data/test/unit/gateways/beanstream_interac_test.rb +51 -0
  214. data/test/unit/gateways/beanstream_test.rb +108 -0
  215. data/test/unit/gateways/bogus_test.rb +46 -0
  216. data/test/unit/gateways/braintree_test.rb +126 -0
  217. data/test/unit/gateways/card_stream_test.rb +90 -0
  218. data/test/unit/gateways/cyber_source_test.rb +188 -0
  219. data/test/unit/gateways/data_cash_test.rb +133 -0
  220. data/test/unit/gateways/efsnet_test.rb +123 -0
  221. data/test/unit/gateways/eway_test.rb +118 -0
  222. data/test/unit/gateways/exact_test.rb +156 -0
  223. data/test/unit/gateways/gateway_test.rb +48 -0
  224. data/test/unit/gateways/instapay_test.rb +102 -0
  225. data/test/unit/gateways/linkpoint_test.rb +167 -0
  226. data/test/unit/gateways/merchant_e_solutions_test.rb +169 -0
  227. data/test/unit/gateways/merchant_ware_test.rb +188 -0
  228. data/test/unit/gateways/modern_payments_cim_test.rb +171 -0
  229. data/test/unit/gateways/moneris_test.rb +158 -0
  230. data/test/unit/gateways/net_registry_test.rb +416 -0
  231. data/test/unit/gateways/netbilling_test.rb +54 -0
  232. data/test/unit/gateways/pay_junction_test.rb +123 -0
  233. data/test/unit/gateways/pay_secure_test.rb +71 -0
  234. data/test/unit/gateways/payflow_express_test.rb +173 -0
  235. data/test/unit/gateways/payflow_express_uk_test.rb +86 -0
  236. data/test/unit/gateways/payflow_test.rb +305 -0
  237. data/test/unit/gateways/payflow_uk_test.rb +30 -0
  238. data/test/unit/gateways/payment_express_test.rb +195 -0
  239. data/test/unit/gateways/paymentech_orbital_test.rb +117 -0
  240. data/test/unit/gateways/paypal_express_test.rb +382 -0
  241. data/test/unit/gateways/paypal_test.rb +520 -0
  242. data/test/unit/gateways/plugnpay_test.rb +86 -0
  243. data/test/unit/gateways/protx_test.rb +139 -0
  244. data/test/unit/gateways/psigate_test.rb +169 -0
  245. data/test/unit/gateways/psl_card_test.rb +64 -0
  246. data/test/unit/gateways/quickpay_test.rb +112 -0
  247. data/test/unit/gateways/realex_test.rb +151 -0
  248. data/test/unit/gateways/sage_bankcard_test.rb +162 -0
  249. data/test/unit/gateways/sage_virtual_check_test.rb +71 -0
  250. data/test/unit/gateways/secure_pay_au_test.rb +207 -0
  251. data/test/unit/gateways/secure_pay_tech_test.rb +44 -0
  252. data/test/unit/gateways/secure_pay_test.rb +87 -0
  253. data/test/unit/gateways/skip_jack_test.rb +133 -0
  254. data/test/unit/gateways/trans_first_test.rb +112 -0
  255. data/test/unit/gateways/trust_commerce_test.rb +90 -0
  256. data/test/unit/gateways/usa_epay_test.rb +128 -0
  257. data/test/unit/gateways/verifi_test.rb +96 -0
  258. data/test/unit/gateways/viaklix_test.rb +78 -0
  259. data/test/unit/gateways/wirecard_test.rb +250 -0
  260. data/test/unit/generators/test_gateway_generator.rb +46 -0
  261. data/test/unit/generators/test_generator_helper.rb +20 -0
  262. data/test/unit/generators/test_integration_generator.rb +53 -0
  263. data/test/unit/integrations/action_view_helper_test.rb +50 -0
  264. data/test/unit/integrations/bogus_module_test.rb +20 -0
  265. data/test/unit/integrations/chronopay_module_test.rb +13 -0
  266. data/test/unit/integrations/gestpay_module_test.rb +14 -0
  267. data/test/unit/integrations/helpers/bogus_helper_test.rb +28 -0
  268. data/test/unit/integrations/helpers/chronopay_helper_test.rb +67 -0
  269. data/test/unit/integrations/helpers/gestpay_helper_test.rb +100 -0
  270. data/test/unit/integrations/helpers/hi_trust_helper_test.rb +16 -0
  271. data/test/unit/integrations/helpers/nochex_helper_test.rb +53 -0
  272. data/test/unit/integrations/helpers/paypal_helper_test.rb +162 -0
  273. data/test/unit/integrations/helpers/quickpay_helper_test.rb +40 -0
  274. data/test/unit/integrations/helpers/two_checkout_helper_test.rb +92 -0
  275. data/test/unit/integrations/hi_trust_module_test.rb +13 -0
  276. data/test/unit/integrations/nochex_module_test.rb +13 -0
  277. data/test/unit/integrations/notifications/chronopay_notification_test.rb +66 -0
  278. data/test/unit/integrations/notifications/gestpay_notification_test.rb +60 -0
  279. data/test/unit/integrations/notifications/hi_trust_notification_test.rb +59 -0
  280. data/test/unit/integrations/notifications/nochex_notification_test.rb +51 -0
  281. data/test/unit/integrations/notifications/notification_test.rb +54 -0
  282. data/test/unit/integrations/notifications/paypal_notification_test.rb +85 -0
  283. data/test/unit/integrations/notifications/quickpay_notification_test.rb +69 -0
  284. data/test/unit/integrations/notifications/two_checkout_notification_test.rb +55 -0
  285. data/test/unit/integrations/paypal_module_test.rb +28 -0
  286. data/test/unit/integrations/quickpay_module_test.rb +9 -0
  287. data/test/unit/integrations/returns/chronopay_return_test.rb +11 -0
  288. data/test/unit/integrations/returns/gestpay_return_test.rb +10 -0
  289. data/test/unit/integrations/returns/hi_trust_return_test.rb +24 -0
  290. data/test/unit/integrations/returns/nochex_return_test.rb +10 -0
  291. data/test/unit/integrations/returns/paypal_return_test.rb +10 -0
  292. data/test/unit/integrations/returns/return_test.rb +11 -0
  293. data/test/unit/integrations/returns/two_checkout_return_test.rb +24 -0
  294. data/test/unit/integrations/two_checkout_module_test.rb +13 -0
  295. data/test/unit/post_data_test.rb +55 -0
  296. data/test/unit/posts_data_test.rb +48 -0
  297. data/test/unit/response_test.rb +28 -0
  298. data/test/unit/utils_test.rb +7 -0
  299. data/test/unit/validateable_test.rb +60 -0
  300. metadata +503 -0
@@ -0,0 +1,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
@@ -0,0 +1,46 @@
1
+ require 'test_helper'
2
+
3
+ class RemoveUsaEpayTest < Test::Unit::TestCase
4
+ def setup
5
+ Base.gateway_mode = :test
6
+ @gateway = UsaEpayGateway.new(fixtures(:usa_epay))
7
+ @creditcard = credit_card('4000100011112224')
8
+ @declined_card = credit_card('4000300011112220')
9
+ @options = { :billing_address => address }
10
+ @amount = 100
11
+ end
12
+
13
+ def test_successful_purchase
14
+ assert response = @gateway.purchase(@amount, @creditcard, @options)
15
+ assert_equal 'Success', response.message
16
+ assert_success response
17
+ end
18
+
19
+ def test_unsuccessful_purchase
20
+ assert response = @gateway.purchase(@amount, @declined_card, @options)
21
+ assert_equal 'Card Declined', response.message
22
+ assert_failure response
23
+ end
24
+
25
+ def test_authorize_and_capture
26
+ assert auth = @gateway.authorize(@amount, @creditcard, @options)
27
+ assert_success auth
28
+ assert_equal 'Success', auth.message
29
+ assert auth.authorization
30
+ assert capture = @gateway.capture(@amount, auth.authorization)
31
+ assert_success capture
32
+ end
33
+
34
+ def test_failed_capture
35
+ assert response = @gateway.capture(@amount, '')
36
+ assert_failure response
37
+ assert_equal 'Unable to find original transaciton.', response.message
38
+ end
39
+
40
+ def test_invalid_key
41
+ gateway = UsaEpayGateway.new(:login => '')
42
+ assert response = gateway.purchase(@amount, @creditcard, @options)
43
+ assert_equal 'Specified source key not found.', response.message
44
+ assert_failure response
45
+ end
46
+ end
@@ -0,0 +1,107 @@
1
+ require 'test_helper'
2
+
3
+ class VerifiTest < Test::Unit::TestCase
4
+ include ActiveMerchant::Billing
5
+
6
+ def setup
7
+ @gateway = VerifiGateway.new(fixtures(:verify))
8
+
9
+ @credit_card = credit_card('4111111111111111')
10
+
11
+ # Replace with your login and password for the Verifi test environment
12
+ @options = {
13
+ :order_id => '37',
14
+ :email => "test@example.com",
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_success response
24
+ assert_equal 'Transaction was Approved', response.message
25
+ assert !response.authorization.blank?
26
+ end
27
+
28
+ def test_unsuccessful_purchase
29
+ @credit_card.number = 'invalid'
30
+
31
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
32
+ assert_failure response
33
+ assert_equal 'Transaction was Rejected by Gateway', response.message
34
+ end
35
+
36
+ # FOR SOME REASON Verify DOESN'T MIND EXPIRED CARDS
37
+ # I talked to support and they said that they are loose on expiration dates being expired.
38
+ def test_expired_credit_card
39
+ @credit_card.year = (Time.now.year - 3)
40
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
41
+ assert_success response
42
+ assert_equal 'Transaction was Approved', response.message
43
+ end
44
+
45
+ def test_successful_authorization
46
+ assert response = @gateway.authorize(@amount, @credit_card, @options)
47
+ assert_success response
48
+ assert_equal 'Transaction was Approved', response.message
49
+ assert response.authorization
50
+ end
51
+
52
+ def test_authorization_and_capture
53
+ assert authorization = @gateway.authorize(@amount, @credit_card, @options)
54
+ assert_success authorization
55
+ assert authorization
56
+ assert capture = @gateway.capture(@amount, authorization.authorization, @options)
57
+ assert_success capture
58
+ assert_equal 'Transaction was Approved', capture.message
59
+ end
60
+
61
+ def test_authorization_and_void
62
+ assert authorization = @gateway.authorize(@amount, @credit_card, @options)
63
+ assert_success authorization
64
+ assert authorization
65
+ assert void = @gateway.void(authorization.authorization, @options)
66
+ assert_success void
67
+ assert_equal 'Transaction was Approved', void.message
68
+ end
69
+
70
+ # Credits are not enabled on test accounts, so this should always fail
71
+ def test_credit
72
+ assert response = @gateway.credit(@amount, @credit_card, @options)
73
+ assert_match /Credits are not enabled/, response.params['responsetext']
74
+ assert_failure response
75
+ end
76
+
77
+ def test_authorization_and_void
78
+ assert authorization = @gateway.authorize(@amount, @credit_card, @options)
79
+ assert_success authorization
80
+ assert void = @gateway.void(authorization.authorization, @options)
81
+ assert_success void
82
+ assert_equal 'Transaction was Approved', void.message
83
+ assert_match /Transaction Void Successful/, void.params['responsetext']
84
+ end
85
+
86
+ def test_purchase_and_credit
87
+ assert purchase = @gateway.purchase(@amount, @credit_card, @options)
88
+ assert_success purchase
89
+
90
+ assert credit = @gateway.credit(@amount, purchase.authorization, @options)
91
+ assert_success credit
92
+ assert_equal 'Transaction was Approved', credit.message
93
+ end
94
+
95
+ def test_bad_login
96
+ gateway = VerifiGateway.new(
97
+ :login => 'X',
98
+ :password => 'Y'
99
+ )
100
+
101
+ assert response = gateway.purchase(@amount, @credit_card, @options)
102
+ assert_equal 'Transaction was Rejected by Gateway', response.message
103
+ assert_equal 'Authentication Failed', response.params['responsetext']
104
+
105
+ assert_failure response
106
+ end
107
+ end
@@ -0,0 +1,43 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteViaklixTest < Test::Unit::TestCase
4
+ def setup
5
+ @gateway = ViaklixGateway.new(fixtures(:viaklix))
6
+
7
+ @credit_card = credit_card
8
+ @bad_credit_card = credit_card('invalid')
9
+
10
+ @options = {
11
+ :order_id => '#1000.1',
12
+ :email => "paul@domain.com",
13
+ :description => 'Test Transaction',
14
+ :billing_address => address
15
+ }
16
+ @amount = 100
17
+ end
18
+
19
+ def test_successful_purchase
20
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
21
+
22
+ assert_success response
23
+ assert response.test?
24
+ assert_equal 'APPROVED', response.message
25
+ assert response.authorization
26
+ end
27
+
28
+ def test_failed_purchase
29
+ assert response = @gateway.purchase(@amount, @bad_credit_card, @options)
30
+
31
+ assert_failure response
32
+ assert response.test?
33
+ assert_equal 'The Credit Card Number supplied in the authorization request appears invalid.', response.message
34
+ end
35
+
36
+ def test_credit
37
+ assert purchase = @gateway.purchase(@amount, @credit_card, @options)
38
+ assert_success purchase
39
+
40
+ assert credit = @gateway.credit(@amount, @credit_card)
41
+ assert_success credit
42
+ end
43
+ end
@@ -0,0 +1,111 @@
1
+ require File.join(File.dirname(__FILE__), '../../test_helper')
2
+
3
+ class RemoteWirecardTest < Test::Unit::TestCase
4
+
5
+
6
+ def setup
7
+ test_account = fixtures(:wirecard)
8
+ test_account[:signature] = test_account[:login]
9
+ @gateway = WirecardGateway.new(test_account)
10
+
11
+ @amount = 100
12
+ @credit_card = credit_card('4200000000000000')
13
+ @declined_card = credit_card('4000300011112220')
14
+
15
+ @options = {
16
+ :order_id => 1,
17
+ :billing_address => address,
18
+ :description => 'Wirecard remote test purchase',
19
+ :email => 'soleone@example.com'
20
+ }
21
+
22
+ @german_address = {
23
+ :name => 'Jim Deutsch',
24
+ :address1 => '1234 Meine Street',
25
+ :company => 'Widgets Inc',
26
+ :city => 'Koblenz',
27
+ :state => 'Rheinland-Pfalz',
28
+ :zip => '56070',
29
+ :country => 'DE',
30
+ :phone => '0261 12345 23',
31
+ :fax => '0261 12345 23-4'
32
+ }
33
+ end
34
+
35
+ # Success tested
36
+ def test_successful_authorization
37
+ assert response = @gateway.authorize(@amount, @credit_card, @options)
38
+ assert_success response
39
+ assert response.test?
40
+ assert response.message[/THIS IS A DEMO/]
41
+ assert response.authorization
42
+ end
43
+
44
+ def test_successful_authorize_and_capture
45
+ amount = @amount
46
+ assert auth = @gateway.authorize(amount, @credit_card, @options)
47
+ assert_success auth
48
+ assert auth.message[/THIS IS A DEMO/]
49
+ assert auth.authorization
50
+ assert capture = @gateway.capture(amount, auth.authorization, @options)
51
+ assert_success capture
52
+ end
53
+
54
+ def test_successful_purchase
55
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
56
+ # puts response.message
57
+ assert_success response
58
+ assert response.message[/THIS IS A DEMO/]
59
+ end
60
+
61
+ def test_successful_purchase_with_german_address_german_state_and_german_phone
62
+ assert response = @gateway.purchase(@amount, @credit_card, @options.merge(:billing_address => @german_address))
63
+
64
+ assert_success response
65
+ assert response.message[/THIS IS A DEMO/]
66
+ end
67
+
68
+ def test_successful_purchase_with_german_address_no_state_and_invalid_phone
69
+ assert response = @gateway.purchase(@amount, @credit_card, @options.merge(:billing_address => @german_address.merge({:state => nil, :phone => '1234'})))
70
+
71
+ assert_success response
72
+ assert response.message[/THIS IS A DEMO/]
73
+ end
74
+
75
+ def test_successful_purchase_with_german_address_and_valid_phone
76
+ assert response = @gateway.purchase(@amount, @credit_card, @options.merge(:billing_address => @german_address.merge({:phone => '+049-261-1234-123'})))
77
+
78
+ assert_success response
79
+ assert response.message[/THIS IS A DEMO/]
80
+ end
81
+
82
+ # Failure tested
83
+
84
+ def test_wrong_creditcard_authorization
85
+ assert response = @gateway.authorize(@amount, @declined_card, @options)
86
+ assert_failure response
87
+ assert response.test?
88
+ assert response.message[/credit card number not allowed in demo mode/i]
89
+ end
90
+
91
+ def test_wrong_creditcard_purchase
92
+ assert response = @gateway.purchase(@amount, @declined_card, @options)
93
+ assert response.test?
94
+ assert_failure response
95
+ assert response.message[ /Credit card number not allowed in demo mode/ ], "Got wrong response message"
96
+ end
97
+
98
+ def test_unauthorized_capture
99
+ assert response = @gateway.capture(@amount, "1234567890123456789012")
100
+ assert_failure response
101
+ assert_equal "Could not find referenced transaction for GuWID 1234567890123456789012.", response.message
102
+ end
103
+
104
+ def test_invalid_login
105
+ gateway = WirecardGateway.new(:login => '', :password => '', :signature => '')
106
+ assert response = gateway.purchase(@amount, @credit_card, @options)
107
+ assert_failure response
108
+ assert response.message[ /wrong credentials/ ]
109
+ end
110
+
111
+ end
@@ -0,0 +1,37 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteGestpayIntegrationTest < Test::Unit::TestCase
4
+ include ActiveMerchant::Billing::Integrations
5
+
6
+ def setup
7
+ # Your Gestpay ShopLogin
8
+ @shop_login = 'SHOPLOGIN'
9
+
10
+ @helper = Gestpay::Helper.new('order-500', @shop_login, :amount => '5.00', :currency => 'EUR')
11
+ end
12
+
13
+ def test_get_encryption_string
14
+ # Extra fields don't work yet
15
+ # @helper.customer :first_name => 'Cody', :last_name => 'Fauser', :email => 'codyfauser@gmail.com'
16
+ response = @helper.send(:get_encrypted_string)
17
+ assert !response.blank?
18
+ end
19
+
20
+ def test_get_encryption_string_fails
21
+ @helper = Gestpay::Helper.new('order-500','99999999', :amount => '5.00', :currency => 'EUR')
22
+ assert_raise(StandardError) do
23
+ assert @helper.send(:get_encrypted_string).blank?
24
+ end
25
+ end
26
+
27
+ def test_unknown_shop_for_decryption_request
28
+ assert_raise(StandardError) do
29
+ Gestpay::Notification.new(raw_query_string)
30
+ end
31
+ end
32
+
33
+ private
34
+ def raw_query_string
35
+ "a=900000&b=F7DEB36478FD84760F9134F23C922697272D57DE6D4518EB9B4D468B769D9A3A8071B6EB160B35CB412FC1820C7CC12D17B3141855B1ED55468613702A2E213DDE9DE5B0209E13C416448AE833525959F05693172D7F0656"
36
+ end
37
+ end
@@ -0,0 +1,26 @@
1
+ require 'test_helper'
2
+
3
+ class RemotePaypalIntegrationTest < Test::Unit::TestCase
4
+ include ActiveMerchant::Billing::Integrations
5
+
6
+ def setup
7
+ @paypal = Paypal::Notification.new('')
8
+ end
9
+
10
+ def tear_down
11
+ ActiveMerchant::Billing::Base.integration_mode = :test
12
+ end
13
+
14
+ def test_raw
15
+ assert_equal "https://www.sandbox.paypal.com/cgi-bin/webscr", Paypal.service_url
16
+ assert_nothing_raised do
17
+ assert_equal false, @paypal.acknowledge
18
+ end
19
+ end
20
+
21
+ def test_valid_sender_always_true
22
+ ActiveMerchant::Billing::Base.integration_mode = :production
23
+ assert @paypal.valid_sender?(nil)
24
+ assert @paypal.valid_sender?('127.0.0.1')
25
+ end
26
+ end