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,136 @@
1
+ require 'test_helper'
2
+
3
+ class RemotePaymentExpressTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @gateway = PaymentExpressGateway.new(fixtures(:payment_express))
7
+
8
+ @credit_card = credit_card('4111111111111111')
9
+
10
+ @options = {
11
+ :order_id => generate_unique_id,
12
+ :billing_address => address,
13
+ :email => 'cody@example.com',
14
+ :description => 'Store purchase'
15
+ }
16
+
17
+ @amount = 100
18
+ end
19
+
20
+ def test_successful_purchase
21
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
22
+ assert_equal "APPROVED", response.message
23
+ assert_success response
24
+ assert_not_nil response.authorization
25
+ end
26
+
27
+ def test_successful_purchase_with_reference_id
28
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
29
+ assert_equal "APPROVED", response.message
30
+ assert_success response
31
+ assert_not_nil response.authorization
32
+ end
33
+
34
+ def test_declined_purchase
35
+ assert response = @gateway.purchase(176, @credit_card, @options)
36
+ assert_equal 'DECLINED', response.message
37
+ assert_failure response
38
+ end
39
+
40
+ def test_successful_authorization
41
+ assert response = @gateway.authorize(@amount, @credit_card, @options)
42
+ assert_equal "APPROVED", response.message
43
+ assert_success response
44
+ assert_not_nil response.authorization
45
+ end
46
+
47
+ def test_authorize_and_capture
48
+ assert auth = @gateway.authorize(@amount, @credit_card, @options)
49
+ assert_success auth
50
+ assert_equal 'APPROVED', auth.message
51
+ assert auth.authorization
52
+ assert capture = @gateway.capture(@amount, auth.authorization)
53
+ assert_success capture
54
+ end
55
+
56
+ def test_purchase_and_credit
57
+ amount = 10000
58
+ assert purchase = @gateway.purchase(amount, @credit_card, @options)
59
+ assert_success purchase
60
+ assert_equal 'APPROVED', purchase.message
61
+ assert !purchase.authorization.blank?
62
+ assert credit = @gateway.credit(amount, purchase.authorization, :description => "Giving a refund")
63
+ assert_success credit
64
+ end
65
+
66
+ def test_failed_capture
67
+ assert response = @gateway.capture(@amount, '999')
68
+ assert_failure response
69
+ assert_equal 'IVL DPSTXNREF', response.message
70
+ end
71
+
72
+ def test_invalid_login
73
+ gateway = PaymentExpressGateway.new(
74
+ :login => '',
75
+ :password => ''
76
+ )
77
+ assert response = gateway.purchase(@amount, @credit_card, @options)
78
+ assert_equal 'Invalid Credentials', response.message
79
+ assert_failure response
80
+ end
81
+
82
+ def test_store_credit_card
83
+ assert response = @gateway.store(@credit_card)
84
+ assert_success response
85
+ assert_equal "APPROVED", response.message
86
+ assert !response.token.blank?
87
+ assert_not_nil response.token
88
+ end
89
+
90
+ def test_store_with_custom_token
91
+ token = Time.now.to_i.to_s #hehe
92
+ assert response = @gateway.store(@credit_card, :billing_id => token)
93
+ assert_success response
94
+ assert_equal "APPROVED", response.message
95
+ assert !response.token.blank?
96
+ assert_not_nil response.token
97
+ assert_equal token, response.token
98
+ end
99
+
100
+ def test_store_invalid_credit_card
101
+ original_number = @credit_card.number
102
+ @credit_card.number = 2
103
+
104
+ assert response = @gateway.store(@credit_card)
105
+ assert_failure response
106
+ ensure
107
+ @credit_card.number = original_number
108
+ end
109
+
110
+ def test_store_and_charge
111
+ assert response = @gateway.store(@credit_card)
112
+ assert_success response
113
+ assert_equal "APPROVED", response.message
114
+ assert (token = response.token)
115
+
116
+ assert purchase = @gateway.purchase( @amount, token)
117
+ assert_equal "APPROVED", purchase.message
118
+ assert_success purchase
119
+ assert_not_nil purchase.authorization
120
+ end
121
+
122
+ def test_store_and_authorize_and_capture
123
+ assert response = @gateway.store(@credit_card)
124
+ assert_success response
125
+ assert_equal "APPROVED", response.message
126
+ assert (token = response.token)
127
+
128
+ assert auth = @gateway.authorize(@amount, token, @options)
129
+ assert_success auth
130
+ assert_equal 'APPROVED', auth.message
131
+ assert auth.authorization
132
+ assert capture = @gateway.capture(@amount, auth.authorization)
133
+ assert_success capture
134
+ end
135
+
136
+ end
@@ -0,0 +1,49 @@
1
+ require 'test_helper'
2
+
3
+ class PaypalExpressTest < Test::Unit::TestCase
4
+ def setup
5
+ Base.gateway_mode = :test
6
+
7
+ @gateway = PaypalExpressGateway.new(fixtures(:paypal_certificate))
8
+
9
+ @options = {
10
+ :order_id => '230000',
11
+ :email => 'buyer@jadedpallet.com',
12
+ :billing_address => { :name => 'Fred Brooks',
13
+ :address1 => '1234 Penny Lane',
14
+ :city => 'Jonsetown',
15
+ :state => 'NC',
16
+ :country => 'US',
17
+ :zip => '23456'
18
+ } ,
19
+ :description => 'Stuff that you purchased, yo!',
20
+ :ip => '10.0.0.1',
21
+ :return_url => 'http://example.com/return',
22
+ :cancel_return_url => 'http://example.com/cancel'
23
+ }
24
+ end
25
+
26
+ def test_set_express_authorization
27
+ @options.update(
28
+ :return_url => 'http://example.com',
29
+ :cancel_return_url => 'http://example.com',
30
+ :email => 'Buyer1@paypal.com'
31
+ )
32
+ response = @gateway.setup_authorization(500, @options)
33
+ assert response.success?
34
+ assert response.test?
35
+ assert !response.params['token'].blank?
36
+ end
37
+
38
+ def test_set_express_purchase
39
+ @options.update(
40
+ :return_url => 'http://example.com',
41
+ :cancel_return_url => 'http://example.com',
42
+ :email => 'Buyer1@paypal.com'
43
+ )
44
+ response = @gateway.setup_purchase(500, @options)
45
+ assert response.success?
46
+ assert response.test?
47
+ assert !response.params['token'].blank?
48
+ end
49
+ end
@@ -0,0 +1,178 @@
1
+ require 'test_helper'
2
+
3
+ class PaypalTest < Test::Unit::TestCase
4
+ def setup
5
+ Base.gateway_mode = :test
6
+
7
+ @gateway = PaypalGateway.new(fixtures(:paypal_certificate))
8
+
9
+ @creditcard = CreditCard.new(
10
+ :type => "visa",
11
+ :number => "4381258770269608", # Use a generated CC from the paypal Sandbox
12
+ :verification_value => "000",
13
+ :month => 1,
14
+ :year => Time.now.year + 1,
15
+ :first_name => 'Fred',
16
+ :last_name => 'Brooks'
17
+ )
18
+
19
+ @params = {
20
+ :order_id => generate_unique_id,
21
+ :email => 'buyer@jadedpallet.com',
22
+ :billing_address => { :name => 'Fred Brooks',
23
+ :address1 => '1234 Penny Lane',
24
+ :city => 'Jonsetown',
25
+ :state => 'NC',
26
+ :country => 'US',
27
+ :zip => '23456'
28
+ } ,
29
+ :description => 'Stuff that you purchased, yo!',
30
+ :ip => '10.0.0.1'
31
+ }
32
+
33
+ @amount = 100
34
+ # test re-authorization, auth-id must be more than 3 days old.
35
+ # each auth-id can only be reauthorized and tested once.
36
+ # leave it commented if you don't want to test reauthorization.
37
+ #
38
+ #@three_days_old_auth_id = "9J780651TU4465545"
39
+ #@three_days_old_auth_id2 = "62503445A3738160X"
40
+ end
41
+
42
+ def test_successful_purchase
43
+ response = @gateway.purchase(@amount, @creditcard, @params)
44
+ assert_success response
45
+ assert response.params['transaction_id']
46
+ end
47
+
48
+ def test_successful_purchase_with_api_signature
49
+ gateway = PaypalGateway.new(fixtures(:paypal_signature))
50
+ response = gateway.purchase(@amount, @creditcard, @params)
51
+ assert_success response
52
+ assert response.params['transaction_id']
53
+ end
54
+
55
+ def test_failed_purchase
56
+ @creditcard.number = '234234234234'
57
+ response = @gateway.purchase(@amount, @creditcard, @params)
58
+ assert_failure response
59
+ assert_nil response.params['transaction_id']
60
+ end
61
+
62
+ def test_successful_authorization
63
+ response = @gateway.authorize(@amount, @creditcard, @params)
64
+ assert_success response
65
+ assert response.params['transaction_id']
66
+ assert_equal '1.00', response.params['amount']
67
+ assert_equal 'USD', response.params['amount_currency_id']
68
+ end
69
+
70
+ def test_failed_authorization
71
+ @creditcard.number = '234234234234'
72
+ response = @gateway.authorize(@amount, @creditcard, @params)
73
+ assert_failure response
74
+ assert_nil response.params['transaction_id']
75
+ end
76
+
77
+ def test_successful_reauthorization
78
+ return if not @three_days_old_auth_id
79
+ auth = @gateway.reauthorize(1000, @three_days_old_auth_id)
80
+ assert_success auth
81
+ assert auth.authorization
82
+
83
+ response = @gateway.capture(1000, auth.authorization)
84
+ assert_success response
85
+ assert response.params['transaction_id']
86
+ assert_equal '10.00', response.params['gross_amount']
87
+ assert_equal 'USD', response.params['gross_amount_currency_id']
88
+ end
89
+
90
+ def test_failed_reauthorization
91
+ return if not @three_days_old_auth_id2 # was authed for $10, attempt $20
92
+ auth = @gateway.reauthorize(2000, @three_days_old_auth_id2)
93
+ assert_false auth?
94
+ assert !auth.authorization
95
+ end
96
+
97
+ def test_successful_capture
98
+ auth = @gateway.authorize(@amount, @creditcard, @params)
99
+ assert_success auth
100
+ response = @gateway.capture(@amount, auth.authorization)
101
+ assert_success response
102
+ assert response.params['transaction_id']
103
+ assert_equal '1.00', response.params['gross_amount']
104
+ assert_equal 'USD', response.params['gross_amount_currency_id']
105
+ end
106
+
107
+ def test_successful_voiding
108
+ auth = @gateway.authorize(@amount, @creditcard, @params)
109
+ assert_success auth
110
+ response = @gateway.void(auth.authorization)
111
+ assert_success response
112
+ end
113
+
114
+ def test_purchase_and_full_credit
115
+ purchase = @gateway.purchase(@amount, @creditcard, @params)
116
+ assert_success purchase
117
+
118
+ credit = @gateway.credit(@amount, purchase.authorization, :note => 'Sorry')
119
+ assert_success credit
120
+ assert credit.test?
121
+ assert_equal 'USD', credit.params['net_refund_amount_currency_id']
122
+ assert_equal '0.67', credit.params['net_refund_amount']
123
+ assert_equal 'USD', credit.params['gross_refund_amount_currency_id']
124
+ assert_equal '1.00', credit.params['gross_refund_amount']
125
+ assert_equal 'USD', credit.params['fee_refund_amount_currency_id']
126
+ assert_equal '0.33', credit.params['fee_refund_amount']
127
+ end
128
+
129
+ def test_failed_voiding
130
+ response = @gateway.void('foo')
131
+ assert_failure response
132
+ end
133
+
134
+ def test_successful_transfer
135
+ response = @gateway.purchase(@amount, @creditcard, @params)
136
+ assert_success response
137
+
138
+ response = @gateway.transfer(@amount, 'joe@example.com', :subject => 'Your money', :note => 'Thanks for taking care of that')
139
+ assert_success response
140
+ end
141
+
142
+ def test_failed_transfer
143
+ # paypal allows a max transfer of $10,000
144
+ response = @gateway.transfer(1000001, 'joe@example.com')
145
+ assert_failure response
146
+ end
147
+
148
+ def test_successful_multiple_transfer
149
+ response = @gateway.purchase(900, @creditcard, @params)
150
+ assert_success response
151
+
152
+ response = @gateway.transfer([@amount, 'joe@example.com'],
153
+ [600, 'jane@example.com', {:note => 'Thanks for taking care of that'}],
154
+ :subject => 'Your money')
155
+ assert_success response
156
+ end
157
+
158
+ def test_failed_multiple_transfer
159
+ response = @gateway.purchase(25100, @creditcard, @params)
160
+ assert_success response
161
+
162
+ # You can only include up to 250 recipients
163
+ recipients = (1..251).collect {|i| [100, "person#{i}@example.com"]}
164
+ response = @gateway.transfer(*recipients)
165
+ assert_failure response
166
+ end
167
+
168
+ # Makes a purchase then makes another purchase adding $1.00 using just a reference id (transaction id)
169
+ def test_successful_referenced_id_purchase
170
+ response = @gateway.purchase(@amount, @creditcard, @params)
171
+ assert_success response
172
+ id_for_reference = response.params['transaction_id']
173
+
174
+ @params.delete(:order_id)
175
+ response2 = @gateway.purchase(@amount + 100, id_for_reference, @params)
176
+ assert_success response2
177
+ end
178
+ end
@@ -0,0 +1,72 @@
1
+ require 'test_helper'
2
+
3
+ class PlugnpayTest < Test::Unit::TestCase
4
+ def setup
5
+ @gateway = PlugnpayGateway.new(fixtures(:plugnpay))
6
+ @good_credit_card = credit_card('4242424242424242')
7
+ @bad_credit_card = credit_card('1234123412341234')
8
+ @options = {
9
+ :billing_address => address,
10
+ :description => 'Store purchaes'
11
+ }
12
+ @amount = 100
13
+
14
+ end
15
+
16
+ def test_bad_credit_card
17
+ assert response = @gateway.authorize(@amount, @bad_credit_card, @options)
18
+ assert_failure response
19
+ assert_equal 'Invalid Credit Card No.', response.message
20
+ end
21
+
22
+ def test_good_credit_card
23
+ assert response = @gateway.authorize(@amount, @good_credit_card, @options)
24
+ assert_success response
25
+ assert !response.authorization.blank?
26
+ assert_equal 'Success', response.message
27
+ end
28
+
29
+ def test_purchase_transaction
30
+ assert response = @gateway.purchase(@amount, @good_credit_card, @options)
31
+ assert_success response
32
+ assert !response.authorization.blank?
33
+ assert_equal 'Success', response.message
34
+ end
35
+
36
+ # Capture, and Void require that you Whitelist your IP address.
37
+ # In the gateway admin tool, you must add your IP address to the allowed addresses and uncheck "Remote client" under the
38
+ # "Auth Transactions" section of the "Security Requirements" area in the test account Security Administration Area.
39
+ def test_authorization_and_capture
40
+ assert authorization = @gateway.authorize(@amount, @good_credit_card, @options)
41
+ assert_success authorization
42
+
43
+ assert capture = @gateway.capture(@amount, authorization.authorization)
44
+ assert_success capture
45
+ assert_equal 'Success', capture.message
46
+ end
47
+
48
+ def test_authorization_and_void
49
+ assert authorization = @gateway.authorize(@amount, @good_credit_card, @options)
50
+ assert_success authorization
51
+
52
+ assert void = @gateway.void(authorization.authorization)
53
+ assert_success void
54
+ assert_equal 'Success', void.message
55
+ end
56
+
57
+ def test_purchase_and_credit
58
+ assert purchase = @gateway.purchase(@amount, @good_credit_card, @options)
59
+ assert_success purchase
60
+
61
+ assert credit = @gateway.credit(@amount, purchase.authorization)
62
+ assert_success credit
63
+ assert_equal 'Success', credit.message
64
+ end
65
+
66
+ def test_credit_with_no_previous_transaction
67
+ assert credit = @gateway.credit(@amount, @good_credit_card, @options)
68
+
69
+ assert_success credit
70
+ assert_equal 'Success', credit.message
71
+ end
72
+ end
@@ -0,0 +1,50 @@
1
+ require 'test_helper'
2
+
3
+ class PsigateRemoteTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ Base.mode = :test
7
+ @gateway = PsigateGateway.new(fixtures(:psigate))
8
+
9
+ @amount = 2400
10
+ @creditcard = credit_card('4242424242424242')
11
+ @options = {
12
+ :order_id => generate_unique_id,
13
+ :billing_address => address,
14
+ :email => 'jack@example.com'
15
+ }
16
+ end
17
+
18
+ def test_successful_authorization
19
+ assert response = @gateway.authorize(@amount, @creditcard, @options)
20
+ assert_success response
21
+ assert_equal @options[:order_id], response.authorization
22
+ end
23
+
24
+ def test_successful_purchase
25
+ assert response = @gateway.purchase(@amount, @creditcard, @options)
26
+ assert_success response
27
+ assert_equal @options[:order_id], response.authorization
28
+ end
29
+
30
+ def test_successful_authorization_and_capture
31
+ assert authorization = @gateway.authorize(@amount, @creditcard, @options)
32
+ assert_success authorization
33
+
34
+ assert capture = @gateway.capture(@amount, authorization.authorization)
35
+ assert_success capture
36
+ end
37
+
38
+ def test_successful_purchase_and_credit
39
+ assert purchase = @gateway.purchase(@amount, @creditcard, @options)
40
+ assert_success purchase
41
+
42
+ assert credit = @gateway.credit(@amount, purchase.authorization)
43
+ assert_success credit
44
+ end
45
+
46
+ def test_failed_purchase
47
+ assert response = @gateway.purchase(@amount, @creditcard, @options.update(:test_result => 'D'))
48
+ assert_failure response
49
+ end
50
+ end