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,54 @@
1
+ require 'test_helper'
2
+
3
+ class NetbillingTest < Test::Unit::TestCase
4
+ def setup
5
+ @gateway = NetbillingGateway.new(
6
+ :login => 'login',
7
+ :password => 'password'
8
+ )
9
+
10
+ @credit_card = credit_card('4242424242424242')
11
+ @amount = 100
12
+ @options = { :billing_address => address }
13
+ end
14
+
15
+ def test_successful_request
16
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
17
+
18
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
19
+ assert_success response
20
+ assert_equal '110270311543', response.authorization
21
+ assert response.test?
22
+ end
23
+
24
+ def test_unsuccessful_request
25
+ @gateway.expects(:ssl_post).returns(unsuccessful_purchase_response)
26
+
27
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
28
+ assert_failure response
29
+ assert response.test?
30
+ end
31
+
32
+ def test_avs_result
33
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
34
+
35
+ response = @gateway.purchase(@amount, @credit_card, @options)
36
+ assert_equal 'X', response.avs_result['code']
37
+ end
38
+
39
+ def test_cvv_result
40
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
41
+
42
+ response = @gateway.purchase(@amount, @credit_card, @options)
43
+ assert_equal 'M', response.cvv_result['code']
44
+ end
45
+
46
+ private
47
+ def successful_purchase_response
48
+ "avs_code=X&cvv2_code=M&status_code=1&auth_code=999999&trans_id=110270311543&auth_msg=TEST+APPROVED&auth_date=2008-01-25+16:43:54"
49
+ end
50
+
51
+ def unsuccessful_purchase_response
52
+ "status_code=0&auth_msg=CARD+EXPIRED&trans_id=110492608613&auth_date=2008-01-25+17:47:44"
53
+ end
54
+ end
@@ -0,0 +1,256 @@
1
+ require 'test_helper'
2
+
3
+ class OgoneTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @credentials = { :login => 'merchant id',
7
+ :user => 'username',
8
+ :password => 'password',
9
+ :signature => 'mynicesig' }
10
+ @gateway = OgoneGateway.new(@credentials)
11
+ @credit_card = credit_card
12
+ @amount = 100
13
+ @identification = "3014726"
14
+ @options = {
15
+ :order_id => '1',
16
+ :billing_address => address,
17
+ :description => 'Store Purchase'
18
+ }
19
+ end
20
+
21
+ def test_successful_authorize
22
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
23
+ assert response = @gateway.authorize(@amount, @credit_card, @options)
24
+ assert_success response
25
+ assert_equal '3014726;RES', response.authorization
26
+ assert response.test?
27
+ end
28
+
29
+ def test_successful_purchase
30
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
31
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
32
+ assert_success response
33
+ assert_equal '3014726;SAL', response.authorization
34
+ assert response.test?
35
+ end
36
+
37
+ def test_successful_purchase_without_order_id
38
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
39
+ @options.delete(:order_id)
40
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
41
+ assert_success response
42
+ assert_equal '3014726;SAL', response.authorization
43
+ assert response.test?
44
+ end
45
+
46
+ def test_successful_capture
47
+ @gateway.expects(:ssl_post).returns(successful_capture_response)
48
+ assert response = @gateway.capture(@amount, "3048326")
49
+ assert_success response
50
+ assert_equal '3048326;SAL', response.authorization
51
+ assert response.test?
52
+ end
53
+
54
+ def test_successful_void
55
+ @gateway.expects(:ssl_post).returns(successful_void_response)
56
+ assert response = @gateway.void("3048606")
57
+ assert_success response
58
+ assert_equal '3048606;DES', response.authorization
59
+ assert response.test?
60
+ end
61
+
62
+ def test_successful_referenced_credit
63
+ @gateway.expects(:ssl_post).returns(successful_referenced_credit_response)
64
+ assert response = @gateway.credit(@amount, "3049652")
65
+ assert_success response
66
+ assert_equal '3049652;RFD', response.authorization
67
+ assert response.test?
68
+ end
69
+
70
+ def test_successful_unreferenced_credit
71
+ @gateway.expects(:ssl_post).returns(successful_unreferenced_credit_response)
72
+ assert response = @gateway.credit(@amount, @credit_card)
73
+ assert_success response
74
+ assert_equal "3049654;RFD", response.authorization
75
+ assert response.test?
76
+ end
77
+
78
+ def test_unsuccessful_request
79
+ @gateway.expects(:ssl_post).returns(failed_purchase_response)
80
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
81
+ assert_failure response
82
+ assert response.test?
83
+ end
84
+
85
+ def test_supported_countries
86
+ assert_equal ['BE', 'DE', 'FR', 'NL', 'AT', 'CH'], OgoneGateway.supported_countries
87
+ end
88
+
89
+ def test_supported_card_types
90
+ assert_equal [:visa, :master, :american_express, :diners_club, :discover, :jcb, :maestro], OgoneGateway.supported_cardtypes
91
+ end
92
+
93
+ def test_default_currency
94
+ assert_equal 'EUR', OgoneGateway.default_currency
95
+ end
96
+
97
+ def test_avs_result
98
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
99
+ response = @gateway.purchase(@amount, @credit_card)
100
+ assert_equal 'R', response.avs_result['code']
101
+ end
102
+
103
+ def test_cvv_result
104
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
105
+ response = @gateway.purchase(@amount, @credit_card)
106
+ assert_equal 'P', response.cvv_result['code']
107
+ end
108
+
109
+ private
110
+
111
+ def successful_authorize_response
112
+ <<-END
113
+ <?xml version="1.0"?><ncresponse
114
+ orderID="1233680882919266242708828"
115
+ PAYID="3014726"
116
+ NCSTATUS="0"
117
+ NCERROR="0"
118
+ NCERRORPLUS="!"
119
+ ACCEPTANCE="test123"
120
+ STATUS="5"
121
+ IPCTY="99"
122
+ CCCTY="99"
123
+ ECI="7"
124
+ CVCCheck="NO"
125
+ AAVCheck="NO"
126
+ VC="NO"
127
+ amount="1"
128
+ currency="EUR"
129
+ PM="CreditCard"
130
+ BRAND="VISA">
131
+ </ncresponse>
132
+ END
133
+ end
134
+
135
+ def successful_purchase_response
136
+ <<-END
137
+ <?xml version="1.0"?><ncresponse
138
+ orderID="1233680882919266242708828"
139
+ PAYID="3014726"
140
+ NCSTATUS="0"
141
+ NCERROR="0"
142
+ NCERRORPLUS="!"
143
+ ACCEPTANCE="test123"
144
+ STATUS="5"
145
+ IPCTY="99"
146
+ CCCTY="99"
147
+ ECI="7"
148
+ CVCCheck="NO"
149
+ AAVCheck="NO"
150
+ VC="NO"
151
+ amount="1"
152
+ currency="EUR"
153
+ PM="CreditCard"
154
+ BRAND="VISA">
155
+ </ncresponse>
156
+ END
157
+ end
158
+
159
+ def failed_purchase_response
160
+ <<-END
161
+ <?xml version="1.0"?>
162
+ <ncresponse
163
+ orderID=""
164
+ PAYID="0"
165
+ NCSTATUS="5"
166
+ NCERROR="50001111"
167
+ NCERRORPLUS=" no orderid"
168
+ ACCEPTANCE=""
169
+ STATUS="0"
170
+ amount=""
171
+ currency="EUR"
172
+ PM=""
173
+ BRAND="">
174
+ </ncresponse>
175
+ END
176
+ end
177
+
178
+ def successful_capture_response
179
+ <<-END
180
+ <?xml version="1.0"?>
181
+ <ncresponse
182
+ orderID="1234956106974734203514539"
183
+ PAYID="3048326"
184
+ PAYIDSUB="1"
185
+ NCSTATUS="0"
186
+ NCERROR="0"
187
+ NCERRORPLUS="!"
188
+ ACCEPTANCE=""
189
+ STATUS="91"
190
+ amount="1"
191
+ currency="EUR">
192
+ </ncresponse>
193
+ END
194
+ end
195
+
196
+ def successful_void_response
197
+ <<-END
198
+ <?xml version="1.0"?>
199
+ <ncresponse
200
+ orderID="1234961140253559268757474"
201
+ PAYID="3048606"
202
+ PAYIDSUB="1"
203
+ NCSTATUS="0"
204
+ NCERROR="0"
205
+ NCERRORPLUS="!"
206
+ ACCEPTANCE=""
207
+ STATUS="61"
208
+ amount="1"
209
+ currency="EUR">
210
+ </ncresponse>
211
+ END
212
+ end
213
+
214
+ def successful_referenced_credit_response
215
+ <<-END
216
+ <?xml version="1.0"?>
217
+ <ncresponse
218
+ orderID="1234976251872867104376350"
219
+ PAYID="3049652"
220
+ PAYIDSUB="1"
221
+ NCSTATUS="0"
222
+ NCERROR="0"
223
+ NCERRORPLUS="!"
224
+ ACCEPTANCE=""
225
+ STATUS="81"
226
+ amount="1"
227
+ currency="EUR">
228
+ </ncresponse>
229
+ END
230
+ end
231
+
232
+ def successful_unreferenced_credit_response
233
+ <<-END
234
+ <?xml version="1.0"?><ncresponse
235
+ orderID="1234976330656672481134758"
236
+ PAYID="3049654"
237
+ NCSTATUS="0"
238
+ NCERROR="0"
239
+ NCERRORPLUS="!"
240
+ ACCEPTANCE=""
241
+ STATUS="81"
242
+ IPCTY="99"
243
+ CCCTY="99"
244
+ ECI="7"
245
+ CVCCheck="NO"
246
+ AAVCheck="NO"
247
+ VC="NO"
248
+ amount="1"
249
+ currency="EUR"
250
+ PM="CreditCard"
251
+ BRAND="VISA">
252
+ </ncresponse>
253
+ END
254
+ end
255
+
256
+ end
@@ -0,0 +1,123 @@
1
+ require 'test/unit'
2
+ require 'test_helper'
3
+
4
+ class PayJunctionTest < Test::Unit::TestCase
5
+ def setup
6
+ Base.gateway_mode = :test
7
+
8
+ @gateway = PayJunctionGateway.new(
9
+ :login => "pj-ql-01",
10
+ :password => "pj-ql-01p"
11
+ )
12
+
13
+ @credit_card = credit_card
14
+ @options = {
15
+ :billing_address => address,
16
+ :description => 'Test purchase'
17
+ }
18
+ @amount = 100
19
+ end
20
+
21
+
22
+ def test_detect_test_credentials_when_in_production
23
+ Base.mode = :production
24
+
25
+ live_gw = PayJunctionGateway.new(
26
+ :login => "l",
27
+ :password => "p"
28
+ )
29
+ assert_false live_gw.test?
30
+
31
+ test_gw = PayJunctionGateway.new(
32
+ :login => "pj-ql-01",
33
+ :password => "pj-ql-01p"
34
+ )
35
+ assert test_gw.test?
36
+ end
37
+
38
+ def test_successful_authorization
39
+ @gateway.expects(:ssl_post).returns(successful_authorization_response)
40
+ response = @gateway.authorize(@amount, @credit_card, @options)
41
+ assert_success response
42
+ assert_equal PayJunctionGateway::SUCCESS_MESSAGE, response.message
43
+ end
44
+
45
+ def test_failed_authorization
46
+ @gateway.expects(:ssl_post).returns(failed_authorization_response)
47
+ response = @gateway.authorize(@amount, @credit_card, @options)
48
+ assert_failure response
49
+ assert_equal PayJunctionGateway::DECLINE_CODES['FE'], response.message
50
+ end
51
+
52
+ def test_avs_result_not_supported
53
+ @gateway.expects(:ssl_post).returns(successful_authorization_response)
54
+
55
+ response = @gateway.purchase(@amount, @credit_card, @options)
56
+ assert_nil response.avs_result['code']
57
+ end
58
+
59
+ def test_cvv_result_not_supported
60
+ @gateway.expects(:ssl_post).returns(successful_authorization_response)
61
+
62
+ response = @gateway.purchase(@amount, @credit_card, @options)
63
+ assert_nil response.cvv_result['code']
64
+ end
65
+
66
+ private
67
+ def successful_authorization_response
68
+ <<-RESPONSE
69
+ dc_merchant_name=PayJunction - (demo)dc_merchant_address=3 W. Carrillodc_merchant_city=Santa Barbaradc_merchant_state=CAdc_merchant_zip=93101dc_merchant_phone=800-601-0230dc_device_id=1174dc_transaction_date=2007-11-28 19:22:33.791634dc_transaction_action=chargedc_approval_code=TAS193dc_response_code=00dc_response_message=APPROVAL TAS193 dc_transaction_id=3144302dc_posture=holddc_invoice_number=9f76c4e4bd66a36dc5aeb4bd7b3a02fadc_notes=--START QUICK-LINK DEBUG--
70
+ ----Vars Received----
71
+ dc_expiration_month =&gt; *
72
+ dc_expiration_year =&gt; *
73
+ dc_invoice =&gt; 9f76c4e4bd66a36dc5aeb4bd7b3a02fa
74
+ dc_logon =&gt; pj-ql-01
75
+ dc_name =&gt; Cody Fauser
76
+ dc_number =&gt; *
77
+ dc_password =&gt; *
78
+ dc_transaction_amount =&gt; 4.00
79
+ dc_transaction_type =&gt; AUTHORIZATION
80
+ dc_verification_number =&gt; *
81
+ dc_version =&gt; 1.2
82
+ ----End Vars----
83
+
84
+ ----Start Response Sent----
85
+ dc_merchant_name=PayJunction - (demo)
86
+ dc_merchant_address=3 W. Carrillo
87
+ dc_merchant_city=Santa Barbara
88
+ dc_merchant_state=CA
89
+ dc_merchant_zip=93101
90
+ dc_merchant_phone=800-601-0230
91
+ dc_device_id=1174
92
+ dc_transaction_date=2007-11-28 19:22:33.791634
93
+ dc_transaction_action=charge
94
+ dc_approval_code=TAS193
95
+ dc_response_code=00
96
+ dc_response_message=APPROVAL TAS193
97
+ dc_transaction_id=3144302
98
+ dc_posture=hold
99
+ dc_invoice_number=9f76c4e4bd66a36dc5aeb4bd7b3a02fa
100
+ dc_notes=null
101
+ dc_card_name=cody fauser
102
+ dc_card_brand=VSA
103
+ dc_card_exp=XX/XX
104
+ dc_card_number=XXXX-XXXX-XXXX-3344
105
+ dc_card_address=
106
+ dc_card_city=
107
+ dc_card_zipcode=
108
+ dc_card_state=
109
+ dc_card_country=
110
+ dc_base_amount=4.00
111
+ dc_tax_amount=0.00
112
+ dc_capture_amount=4.00
113
+ dc_cashback_amount=0.00
114
+ dc_shipping_amount=0.00
115
+ ----End Response Sent----
116
+ dc_card_name=cody fauserdc_card_brand=VSAdc_card_exp=XX/XXdc_card_number=XXXX-XXXX-XXXX-3344dc_card_address=dc_card_city=dc_card_zipcode=dc_card_state=dc_card_country=dc_base_amount=4.00dc_tax_amount=0.00dc_capture_amount=4.00dc_cashback_amount=0.00dc_shipping_amount=0.00
117
+ RESPONSE
118
+ end
119
+
120
+ def failed_authorization_response
121
+ 'dc_merchant_name=dc_merchant_address=dc_merchant_city=dc_merchant_state=dc_merchant_zip=dc_merchant_phone=dc_device_id=dc_transaction_date=dc_transaction_action=dc_approval_code=dc_response_code=FEdc_response_message=dc_number [Input is invalid. The credit card number is bad.], System [error.System], dc_transaction_id=dc_posture=dc_invoice_number=dc_notes=dc_card_name=dc_card_brand=dc_card_exp=dc_card_number=dc_card_address=dc_card_city=dc_card_zipcode=dc_card_state=dc_card_country=dc_base_amount=dc_tax_amount=dc_capture_amount=dc_cashback_amount=dc_shipping_amount='
122
+ end
123
+ end
@@ -0,0 +1,71 @@
1
+ require 'test_helper'
2
+
3
+ class PaySecureTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @gateway = PaySecureGateway.new(
7
+ :login => 'login',
8
+ :password => 'password'
9
+ )
10
+
11
+ @credit_card = credit_card
12
+ @options = {
13
+ :order_id => '1000',
14
+ :billing_address => address,
15
+ :description => 'Test purchase'
16
+ }
17
+ @amount = 100
18
+ end
19
+
20
+ def test_successful_purchase
21
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
22
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
23
+ assert_instance_of Response, response
24
+ assert_success response
25
+ assert_equal '2778;SimProxy 54041670', response.authorization
26
+ assert response.test?
27
+ end
28
+
29
+ def test_failed_purchase
30
+ @gateway.expects(:ssl_post).returns(failure_response)
31
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
32
+ assert_instance_of Response, response
33
+ assert_equal "Field value '8f796cb29a1be32af5ce12d4ca7425c2' does not match required format.", response.message
34
+ assert_failure response
35
+ end
36
+
37
+ def test_avs_result_not_supported
38
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
39
+
40
+ response = @gateway.purchase(@amount, @credit_card, @options)
41
+ assert_nil response.avs_result['code']
42
+ end
43
+
44
+ def test_cvv_result_not_supported
45
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
46
+
47
+ response = @gateway.purchase(@amount, @credit_card, @options)
48
+ assert_nil response.cvv_result['code']
49
+ end
50
+
51
+ private
52
+ def successful_purchase_response
53
+ <<-RESPONSE
54
+ Status: Accepted
55
+ SettlementDate: 2007-10-09
56
+ AUTHNUM: 2778
57
+ ErrorString: No Error
58
+ CardBin: 1
59
+ ERROR: 0
60
+ TransID: SimProxy 54041670
61
+ RESPONSE
62
+ end
63
+
64
+ def failure_response
65
+ <<-RESPONSE
66
+ Status: Declined
67
+ ErrorString: Field value '8f796cb29a1be32af5ce12d4ca7425c2' does not match required format.
68
+ ERROR: 1
69
+ RESPONSE
70
+ end
71
+ end