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,115 @@
1
+ require 'test_helper'
2
+
3
+ class MonerisRemoteTest < Test::Unit::TestCase
4
+ def setup
5
+ Base.mode = :test
6
+
7
+ @gateway = MonerisUsaGateway.new(fixtures(:moneris_usa))
8
+ @amount = 100
9
+ @credit_card = credit_card('4242424242424242')
10
+ @options = {
11
+ :order_id => generate_unique_id,
12
+ :billing_address => address,
13
+ :description => 'Store Purchase'
14
+ }
15
+ @in_30_days = (Time.now + 30*24*60*60).strftime("%Y/%m/%d")
16
+ end
17
+
18
+ def test_successful_purchase
19
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
20
+ assert_success response
21
+ assert_match 'Approved', response.message
22
+ assert_false response.authorization.blank?
23
+ end
24
+
25
+ def test_successful_authorization
26
+ response = @gateway.authorize(@amount, @credit_card, @options)
27
+ assert_success response
28
+ assert_false response.authorization.blank?
29
+ end
30
+
31
+ def test_failed_authorization
32
+ response = @gateway.authorize(105, @credit_card, @options)
33
+ assert_failure response
34
+ end
35
+
36
+ def test_successful_authorization_and_capture
37
+ response = @gateway.authorize(@amount, @credit_card, @options)
38
+ assert_success response
39
+ assert response.authorization
40
+
41
+ response = @gateway.capture(@amount, response.authorization)
42
+ assert_success response
43
+ end
44
+
45
+ def test_successful_authorization_and_capture_and_void
46
+ response = @gateway.authorize(@amount, @credit_card, @options)
47
+ assert_success response
48
+ assert response.authorization
49
+
50
+ response = @gateway.capture(@amount, response.authorization)
51
+ assert_success response
52
+ assert response.authorization
53
+
54
+ void = @gateway.void(response.authorization)
55
+ assert_success void
56
+ end
57
+
58
+ def test_successful_purchase_and_void
59
+ purchase = @gateway.purchase(@amount, @credit_card, @options)
60
+ assert_success purchase
61
+
62
+ void = @gateway.void(purchase.authorization)
63
+ assert_success void
64
+ end
65
+
66
+ def test_failed_purchase_and_void
67
+ purchase = @gateway.purchase(101, @credit_card, @options)
68
+ assert_failure purchase
69
+
70
+ void = @gateway.void(purchase.authorization)
71
+ assert_failure void
72
+ end
73
+
74
+ def test_successful_purchase_and_credit
75
+ purchase = @gateway.purchase(@amount, @credit_card, @options)
76
+ assert_success purchase
77
+
78
+ credit = @gateway.credit(@amount, purchase.authorization)
79
+ assert_success credit
80
+ end
81
+
82
+ def test_failed_purchase_from_error
83
+ assert response = @gateway.purchase(101, @credit_card, @options)
84
+ assert_failure response
85
+ assert_match /EXCEEDS LIMIT/i, response.message
86
+ end
87
+
88
+ def test_successful_recurring_purchase
89
+ assert response = @gateway.recurring_purchase(@amount, @credit_card, :month, 1, 6, @in_30_days, true, @options)
90
+ assert_success response
91
+ assert_match /Approved [0-9]+ recurring transaction successfully registered/, response.message
92
+ assert_equal '1.00', response.params['trans_amount']
93
+ end
94
+
95
+ def test_successful_recurring_purchase_not_starting_now
96
+ assert response = @gateway.recurring_purchase(@amount, @credit_card, :month, 1, 6, @in_30_days, false, @options)
97
+ assert_success response
98
+ assert_equal 'Recurring transaction successfully registered', response.message
99
+ assert_nil response.params['trans_amount']
100
+ end
101
+
102
+ def test_successful_recurring_purchase_differing_recurring_amount
103
+ assert response = @gateway.recurring_purchase(@amount, @credit_card, :month, 1, 6, @in_30_days, true, @options.merge(:recur_amount => 2000))
104
+ assert_success response
105
+ assert_match /Approved [0-9]+ recurring transaction successfully registered/, response.message
106
+ assert_equal '1.00', response.params['trans_amount']
107
+ end
108
+
109
+ def test_failed_recurring_purchase
110
+ assert response = @gateway.recurring_purchase(101, @credit_card, :month, 1, 6, @in_30_days, true, @options)
111
+ assert_failure response
112
+ assert_match /EXCEEDS LIMIT/i, response.message
113
+ end
114
+
115
+ end
@@ -0,0 +1,85 @@
1
+ require 'test/unit'
2
+ require 'test_helper'
3
+
4
+ # To run these tests, set the variables at the top of the class
5
+ # definition.
6
+ #
7
+ # Note that NetRegistry does not provide any sort of test
8
+ # server/account, so you'll probably want to refund any uncredited
9
+ # purchases through the NetRegistry console at www.netregistry.com .
10
+ # All purchases made in these tests are $1, so hopefully you won't be
11
+ # sent broke if you forget...
12
+ class NetRegistryTest < Test::Unit::TestCase
13
+
14
+ def setup
15
+ @gateway = NetRegistryGateway.new(fixtures(:net_registry))
16
+
17
+ @amount = 100
18
+ @valid_creditcard = credit_card
19
+ @invalid_creditcard = credit_card('41111111111111111')
20
+ @expired_creditcard = credit_card('4111111111111111', :year => '2000')
21
+ @invalid_month_creditcard = credit_card('4111111111111111', :month => '13')
22
+ end
23
+
24
+ def test_successful_purchase_and_credit
25
+ response = @gateway.purchase(@amount, @valid_creditcard)
26
+ assert_equal 'approved', response.params['status']
27
+ assert_success response
28
+ assert_match(/\A\d{16}\z/, response.authorization)
29
+
30
+ response = @gateway.credit(@amount, response.authorization)
31
+ assert_equal 'approved', response.params['status']
32
+ assert_success response
33
+ end
34
+
35
+ # #authorize and #capture haven't been tested because the author's
36
+ # account hasn't been setup to support these methods (see the
37
+ # documentation for the NetRegistry gateway class). There is no
38
+ # mention of a #void transaction in NetRegistry's documentation,
39
+ # either.
40
+ if ENV['TEST_AUTHORIZE_AND_CAPTURE']
41
+ def test_successful_authorization_and_capture
42
+ response = @gateway.authorize(@amount, @valid_creditcard)
43
+ assert_success response
44
+ assert_equal 'approved', response.params['status']
45
+ assert_match(/\A\d{6}\z/, response.authorization)
46
+
47
+ response = @gateway.capture(@amount,
48
+ response.authorization,
49
+ :credit_card => @valid_creditcard)
50
+ assert_success response
51
+ assert_equal 'approved', response.params['status']
52
+ end
53
+ end
54
+
55
+ def test_purchase_with_invalid_credit_card
56
+ response = @gateway.purchase(@amount, @invalid_creditcard)
57
+ assert_equal 'declined', response.params['status']
58
+ assert_equal 'INVALID CARD', response.message
59
+ assert_failure response
60
+ end
61
+
62
+ def test_purchase_with_expired_credit_card
63
+ response = @gateway.purchase(@amount, @expired_creditcard)
64
+ assert_equal 'failed', response.params['status']
65
+ assert_equal 'CARD EXPIRED', response.message
66
+ assert_failure response
67
+ end
68
+
69
+ def test_purchase_with_invalid_month
70
+ response = @gateway.purchase(@amount, @invalid_month_creditcard)
71
+ assert_equal 'failed', response.params['status']
72
+ assert_equal 'Invalid month', response.message
73
+ assert_failure response
74
+ end
75
+
76
+ def test_bad_login
77
+ gateway = NetRegistryGateway.new(
78
+ :login => 'bad-login',
79
+ :password => 'bad-login'
80
+ )
81
+ response = gateway.purchase(@amount, @valid_creditcard)
82
+ assert_equal 'failed', response.params['status']
83
+ assert_failure response
84
+ end
85
+ end
@@ -0,0 +1,70 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteNetbillingTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @gateway = NetbillingGateway.new(fixtures(:netbilling))
7
+
8
+ @credit_card = credit_card('4444111111111119',
9
+ :month => '9',
10
+ :year => '2009',
11
+ :verification_value => nil
12
+ )
13
+
14
+ @address = { :address1 => '1600 Amphitheatre Parkway',
15
+ :city => 'Mountain View',
16
+ :state => 'CA',
17
+ :country => 'US',
18
+ :zip => '94043',
19
+ :phone => '650-253-0001'
20
+ }
21
+
22
+ @options = {
23
+ :billing_address => @address,
24
+ :description => 'Internet purchase'
25
+ }
26
+
27
+ @amount = 100
28
+ end
29
+
30
+ def test_successful_purchase
31
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
32
+ assert_success response
33
+ assert_false response.authorization.blank?
34
+ assert_equal NetbillingGateway::SUCCESS_MESSAGE, response.message
35
+ assert response.test?
36
+ end
37
+
38
+ def test_unsuccessful_purchase
39
+ @credit_card.year = '2006'
40
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
41
+ assert_equal 'CARD EXPIRED', response.message
42
+ assert_failure response
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 NetbillingGateway::SUCCESS_MESSAGE, auth.message
50
+ assert auth.authorization
51
+ assert capture = @gateway.capture(amount, auth.authorization)
52
+ assert_success capture
53
+ end
54
+
55
+ def test_failed_capture
56
+ assert response = @gateway.capture(@amount, '1111')
57
+ assert_failure response
58
+ assert_equal NetbillingGateway::FAILURE_MESSAGE, response.message
59
+ end
60
+
61
+ def test_invalid_login
62
+ gateway = NetbillingGateway.new(
63
+ :login => '',
64
+ :password => ''
65
+ )
66
+ assert response = gateway.purchase(@amount, @credit_card, @options)
67
+ assert_equal NetbillingGateway::FAILURE_MESSAGE, response.message
68
+ assert_failure response
69
+ end
70
+ end
@@ -0,0 +1,108 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteOgoneTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @gateway = OgoneGateway.new(fixtures(:ogone))
7
+ @amount = 100
8
+ @credit_card = credit_card('4000100011112224')
9
+ @declined_card = credit_card('1111111111111111')
10
+ @options = {
11
+ :order_id => generate_unique_id[0...30],
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_success response
20
+ assert_equal OgoneGateway::SUCCESS_MESSAGE, response.message
21
+ end
22
+
23
+ def test_successful_purchase_without_order_id
24
+ @options.delete(:order_id)
25
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
26
+ assert_success response
27
+ assert_equal OgoneGateway::SUCCESS_MESSAGE, response.message
28
+ end
29
+
30
+ def test_unsuccessful_purchase
31
+ assert response = @gateway.purchase(@amount, @declined_card, @options)
32
+ assert_failure response
33
+ assert_equal 'no brand', response.message
34
+ end
35
+
36
+ def test_authorize_and_capture
37
+ assert auth = @gateway.authorize(@amount, @credit_card, @options)
38
+ assert_success auth
39
+ assert_equal OgoneGateway::SUCCESS_MESSAGE, auth.message
40
+ assert auth.authorization
41
+ assert capture = @gateway.capture(@amount, auth.authorization)
42
+ assert_success capture
43
+ end
44
+
45
+ def test_unsuccessful_capture
46
+ assert response = @gateway.capture(@amount, '')
47
+ assert_failure response
48
+ assert_equal 'no card no, no exp date, no brand', response.message
49
+ end
50
+
51
+ def test_successful_void
52
+ assert auth = @gateway.authorize(@amount, @credit_card, @options)
53
+ assert_success auth
54
+ assert auth.authorization
55
+ assert void = @gateway.void(auth.authorization)
56
+ assert_equal OgoneGateway::SUCCESS_MESSAGE, auth.message
57
+ assert_success void
58
+ end
59
+
60
+ def test_successful_referenced_credit
61
+ assert purchase = @gateway.purchase(@amount, @credit_card, @options)
62
+ assert_success purchase
63
+ assert credit = @gateway.credit(@amount, purchase.authorization, @options)
64
+ assert_success credit
65
+ assert credit.authorization
66
+ assert_equal OgoneGateway::SUCCESS_MESSAGE, credit.message
67
+ end
68
+
69
+ def test_unsuccessful_referenced_credit
70
+ assert purchase = @gateway.purchase(@amount, @credit_card, @options)
71
+ assert_success purchase
72
+ assert credit = @gateway.credit(@amount+1, purchase.authorization, @options) # too much refund requested
73
+ assert_failure credit
74
+ assert credit.authorization
75
+ assert_equal 'Overflow in refunds requests/1/1', credit.message
76
+ end
77
+
78
+ def test_successful_unreferenced_credit
79
+ assert credit = @gateway.credit(@amount, @credit_card, @options)
80
+ assert_success credit
81
+ assert credit.authorization
82
+ assert_equal OgoneGateway::SUCCESS_MESSAGE, credit.message
83
+ end
84
+
85
+ def test_reference_transactions
86
+ # Setting an alias
87
+ assert response = @gateway.purchase(@amount, credit_card('4000100011112224'), @options.merge(:store => "awesomeman", :order_id=>Time.now.to_i.to_s+"1"))
88
+ assert_success response
89
+ # Updating an alias
90
+ assert response = @gateway.purchase(@amount, credit_card('4111111111111111'), @options.merge(:store => "awesomeman", :order_id=>Time.now.to_i.to_s+"2"))
91
+ assert_success response
92
+ # Using an alias (i.e. don't provide the credit card)
93
+ assert response = @gateway.purchase(@amount, "awesomeman", @options.merge(:order_id=>Time.now.to_i.to_s+"3"))
94
+ assert_success response
95
+ end
96
+
97
+ def test_invalid_login
98
+ gateway = OgoneGateway.new(
99
+ :login => '',
100
+ :user => '',
101
+ :password => ''
102
+ )
103
+ assert response = gateway.purchase(@amount, @credit_card, @options)
104
+ assert_failure response
105
+ assert_equal 'no pspid', response.message
106
+ end
107
+
108
+ end
@@ -0,0 +1,143 @@
1
+ require 'test_helper'
2
+
3
+ class PayJunctionTest < Test::Unit::TestCase
4
+ include ActiveMerchant::Billing
5
+
6
+ cattr_accessor :current_invoice
7
+
8
+ AMOUNT = 250
9
+
10
+ def setup
11
+ @gateway = PayJunctionGateway.new(fixtures(:pay_junction))
12
+
13
+ @credit_card = credit_card('4444333322221111', :verification_value => '123')
14
+
15
+ @valid_verification_value = '123'
16
+ @invalid_verification_value = '1234'
17
+
18
+ @valid_address = {
19
+ :address1 => '123 Test St.',
20
+ :address2 => nil,
21
+ :city => 'Somewhere',
22
+ :state => 'CA',
23
+ :zip => '90001'
24
+ }
25
+
26
+ @invalid_address = {
27
+ :address1 => '187 Apple Tree Lane.',
28
+ :address2 => nil,
29
+ :city => 'Woodside',
30
+ :state => 'CA',
31
+ :zip => '94062'
32
+ }
33
+
34
+ @options = { :billing_address => @valid_address, :order_id => generate_unique_id }
35
+ end
36
+
37
+ def test_successful_purchase
38
+ assert response = @gateway.purchase(AMOUNT, @credit_card, @options)
39
+ assert_equal PayJunctionGateway::SUCCESS_MESSAGE, response.message
40
+ assert_equal 'capture', response.params["posture"], 'Should be captured funds'
41
+ assert_equal 'charge', response.params["transaction_action"]
42
+ assert_success response
43
+ assert response.test?
44
+ end
45
+
46
+ def test_successful_purchase_with_cvv
47
+ @credit_card.verification_value = @valid_verification_value
48
+ assert response = @gateway.purchase(AMOUNT, @credit_card, @options)
49
+
50
+ assert_equal PayJunctionGateway::SUCCESS_MESSAGE, response.message
51
+ assert_equal 'capture', response.params["posture"], 'Should be captured funds'
52
+ assert_equal 'charge', response.params["transaction_action"]
53
+
54
+ assert_success response
55
+ end
56
+
57
+ def test_successful_authorize
58
+ assert response = @gateway.authorize( AMOUNT, @credit_card, @options)
59
+
60
+ assert_equal PayJunctionGateway::SUCCESS_MESSAGE, response.message
61
+ assert_equal 'hold', response.params["posture"], 'Should be a held charge'
62
+ assert_equal 'charge', response.params["transaction_action"]
63
+
64
+ assert_success response
65
+ end
66
+
67
+ def test_successful_capture
68
+ auth = @gateway.authorize(AMOUNT, @credit_card, @options)
69
+ assert_success auth
70
+
71
+ response = @gateway.capture(AMOUNT, auth.authorization, @options)
72
+ assert_success response
73
+ assert_equal 'capture', response.params["posture"], 'Should be a capture'
74
+ assert_equal auth.authorization, response.authorization,
75
+ "Should maintain transaction ID across request"
76
+ end
77
+
78
+ def test_successful_credit
79
+ purchase = @gateway.purchase(AMOUNT, @credit_card, @options)
80
+ assert_success purchase
81
+
82
+ assert response = @gateway.credit(success_price, purchase.authorization)
83
+ assert_equal 'refund', response.params["transaction_action"]
84
+
85
+ assert_success response
86
+ end
87
+
88
+ def test_successful_void
89
+ order_id = generate_unique_id
90
+ purchase = @gateway.purchase(AMOUNT, @credit_card, @options)
91
+ assert_success purchase
92
+
93
+ assert response = @gateway.void(AMOUNT, purchase.authorization, :order_id => order_id)
94
+ assert_success response
95
+ assert_equal 'void', response.params["posture"], 'Should be a capture'
96
+ assert_equal purchase.authorization, response.authorization,
97
+ "Should maintain transaction ID across request"
98
+ end
99
+
100
+ def test_successful_instant_purchase
101
+ # this takes advatange of the PayJunction feature where another
102
+ # transaction can be executed if you have the transaction ID of a
103
+ # previous successful transaction.
104
+
105
+ purchase = @gateway.purchase( AMOUNT, @credit_card, @options)
106
+ assert_success purchase
107
+
108
+ assert response = @gateway.purchase(AMOUNT, purchase.authorization, :order_id => generate_unique_id)
109
+
110
+ assert_equal PayJunctionGateway::SUCCESS_MESSAGE, response.message
111
+ assert_equal 'capture', response.params["posture"], 'Should be captured funds'
112
+ assert_equal 'charge', response.params["transaction_action"]
113
+ assert_not_equal purchase.authorization, response.authorization,
114
+ 'Should have recieved new transaction ID'
115
+
116
+ assert_success response
117
+ end
118
+
119
+ def test_successful_recurring
120
+ assert response = @gateway.recurring(AMOUNT, @credit_card,
121
+ :periodicity => :monthly,
122
+ :payments => 12,
123
+ :order_id => generate_unique_id
124
+ )
125
+
126
+ assert_equal PayJunctionGateway::SUCCESS_MESSAGE, response.message
127
+ assert_equal 'charge', response.params["transaction_action"]
128
+
129
+ assert_success response
130
+ end
131
+
132
+ def test_should_send_invoice
133
+ response = @gateway.purchase(AMOUNT, @credit_card, @options)
134
+ assert_success response
135
+
136
+ assert_equal @options[:order_id], response.params["invoice_number"], 'Should have set invoice'
137
+ end
138
+
139
+ private
140
+ def success_price
141
+ 200 + rand(200)
142
+ end
143
+ end