tomriley-active_merchant 1.4.2.3

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 (278) hide show
  1. data/CHANGELOG +442 -0
  2. data/CONTRIBUTERS +102 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README +134 -0
  5. data/Rakefile +153 -0
  6. data/active_merchant.gemspec +15 -0
  7. data/gem-public_cert.pem +20 -0
  8. data/init.rb +4 -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 +28 -0
  17. data/lib/active_merchant/billing/gateway.rb +158 -0
  18. data/lib/active_merchant/billing/gateways/authorize_net.rb +646 -0
  19. data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +702 -0
  20. data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +233 -0
  21. data/lib/active_merchant/billing/gateways/beanstream.rb +102 -0
  22. data/lib/active_merchant/billing/gateways/beanstream_interac.rb +54 -0
  23. data/lib/active_merchant/billing/gateways/bogus.rb +98 -0
  24. data/lib/active_merchant/billing/gateways/braintree.rb +17 -0
  25. data/lib/active_merchant/billing/gateways/card_stream.rb +230 -0
  26. data/lib/active_merchant/billing/gateways/cyber_source.rb +406 -0
  27. data/lib/active_merchant/billing/gateways/data_cash.rb +595 -0
  28. data/lib/active_merchant/billing/gateways/efsnet.rb +229 -0
  29. data/lib/active_merchant/billing/gateways/eway.rb +272 -0
  30. data/lib/active_merchant/billing/gateways/exact.rb +222 -0
  31. data/lib/active_merchant/billing/gateways/instapay.rb +164 -0
  32. data/lib/active_merchant/billing/gateways/linkpoint.rb +396 -0
  33. data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +154 -0
  34. data/lib/active_merchant/billing/gateways/modern_payments.rb +36 -0
  35. data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +214 -0
  36. data/lib/active_merchant/billing/gateways/moneris.rb +205 -0
  37. data/lib/active_merchant/billing/gateways/net_registry.rb +189 -0
  38. data/lib/active_merchant/billing/gateways/netbilling.rb +168 -0
  39. data/lib/active_merchant/billing/gateways/pay_junction.rb +392 -0
  40. data/lib/active_merchant/billing/gateways/pay_secure.rb +120 -0
  41. data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +207 -0
  42. data/lib/active_merchant/billing/gateways/payflow/payflow_express_response.rb +39 -0
  43. data/lib/active_merchant/billing/gateways/payflow/payflow_response.rb +13 -0
  44. data/lib/active_merchant/billing/gateways/payflow.rb +236 -0
  45. data/lib/active_merchant/billing/gateways/payflow_express.rb +138 -0
  46. data/lib/active_merchant/billing/gateways/payflow_express_uk.rb +15 -0
  47. data/lib/active_merchant/billing/gateways/payflow_uk.rb +21 -0
  48. data/lib/active_merchant/billing/gateways/payment_express.rb +230 -0
  49. data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +325 -0
  50. data/lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb +38 -0
  51. data/lib/active_merchant/billing/gateways/paypal.rb +108 -0
  52. data/lib/active_merchant/billing/gateways/paypal_ca.rb +13 -0
  53. data/lib/active_merchant/billing/gateways/paypal_express.rb +130 -0
  54. data/lib/active_merchant/billing/gateways/paypal_express_common.rb +20 -0
  55. data/lib/active_merchant/billing/gateways/plugnpay.rb +292 -0
  56. data/lib/active_merchant/billing/gateways/protx.rb +349 -0
  57. data/lib/active_merchant/billing/gateways/psigate.rb +214 -0
  58. data/lib/active_merchant/billing/gateways/psl_card.rb +306 -0
  59. data/lib/active_merchant/billing/gateways/quickpay.rb +213 -0
  60. data/lib/active_merchant/billing/gateways/realex.rb +200 -0
  61. data/lib/active_merchant/billing/gateways/sage/sage_bankcard.rb +88 -0
  62. data/lib/active_merchant/billing/gateways/sage/sage_core.rb +110 -0
  63. data/lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb +97 -0
  64. data/lib/active_merchant/billing/gateways/sage.rb +146 -0
  65. data/lib/active_merchant/billing/gateways/secure_pay.rb +31 -0
  66. data/lib/active_merchant/billing/gateways/secure_pay_au.rb +157 -0
  67. data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +113 -0
  68. data/lib/active_merchant/billing/gateways/skip_jack.rb +442 -0
  69. data/lib/active_merchant/billing/gateways/smart_ps.rb +254 -0
  70. data/lib/active_merchant/billing/gateways/trans_first.rb +127 -0
  71. data/lib/active_merchant/billing/gateways/transax.rb +26 -0
  72. data/lib/active_merchant/billing/gateways/trust_commerce.rb +418 -0
  73. data/lib/active_merchant/billing/gateways/usa_epay.rb +194 -0
  74. data/lib/active_merchant/billing/gateways/verifi.rb +228 -0
  75. data/lib/active_merchant/billing/gateways/viaklix.rb +165 -0
  76. data/lib/active_merchant/billing/gateways/wirecard.rb +318 -0
  77. data/lib/active_merchant/billing/gateways.rb +3 -0
  78. data/lib/active_merchant/billing/integrations/action_view_helper.rb +79 -0
  79. data/lib/active_merchant/billing/integrations/bogus/helper.rb +17 -0
  80. data/lib/active_merchant/billing/integrations/bogus/notification.rb +11 -0
  81. data/lib/active_merchant/billing/integrations/bogus/return.rb +10 -0
  82. data/lib/active_merchant/billing/integrations/bogus.rb +22 -0
  83. data/lib/active_merchant/billing/integrations/chronopay/helper.rb +81 -0
  84. data/lib/active_merchant/billing/integrations/chronopay/notification.rb +156 -0
  85. data/lib/active_merchant/billing/integrations/chronopay/return.rb +10 -0
  86. data/lib/active_merchant/billing/integrations/chronopay.rb +22 -0
  87. data/lib/active_merchant/billing/integrations/gestpay/common.rb +42 -0
  88. data/lib/active_merchant/billing/integrations/gestpay/helper.rb +70 -0
  89. data/lib/active_merchant/billing/integrations/gestpay/notification.rb +83 -0
  90. data/lib/active_merchant/billing/integrations/gestpay/return.rb +10 -0
  91. data/lib/active_merchant/billing/integrations/gestpay.rb +26 -0
  92. data/lib/active_merchant/billing/integrations/helper.rb +93 -0
  93. data/lib/active_merchant/billing/integrations/hi_trust/helper.rb +58 -0
  94. data/lib/active_merchant/billing/integrations/hi_trust/notification.rb +59 -0
  95. data/lib/active_merchant/billing/integrations/hi_trust/return.rb +67 -0
  96. data/lib/active_merchant/billing/integrations/hi_trust.rb +26 -0
  97. data/lib/active_merchant/billing/integrations/nochex/helper.rb +68 -0
  98. data/lib/active_merchant/billing/integrations/nochex/notification.rb +94 -0
  99. data/lib/active_merchant/billing/integrations/nochex/return.rb +10 -0
  100. data/lib/active_merchant/billing/integrations/nochex.rb +87 -0
  101. data/lib/active_merchant/billing/integrations/notification.rb +62 -0
  102. data/lib/active_merchant/billing/integrations/paypal/helper.rb +118 -0
  103. data/lib/active_merchant/billing/integrations/paypal/notification.rb +154 -0
  104. data/lib/active_merchant/billing/integrations/paypal/return.rb +10 -0
  105. data/lib/active_merchant/billing/integrations/paypal.rb +40 -0
  106. data/lib/active_merchant/billing/integrations/quickpay/helper.rb +72 -0
  107. data/lib/active_merchant/billing/integrations/quickpay/notification.rb +74 -0
  108. data/lib/active_merchant/billing/integrations/quickpay.rb +18 -0
  109. data/lib/active_merchant/billing/integrations/return.rb +35 -0
  110. data/lib/active_merchant/billing/integrations/two_checkout/helper.rb +59 -0
  111. data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +114 -0
  112. data/lib/active_merchant/billing/integrations/two_checkout/return.rb +17 -0
  113. data/lib/active_merchant/billing/integrations/two_checkout.rb +23 -0
  114. data/lib/active_merchant/billing/integrations.rb +22 -0
  115. data/lib/active_merchant/billing/response.rb +32 -0
  116. data/lib/active_merchant/lib/connection.rb +170 -0
  117. data/lib/active_merchant/lib/country.rb +319 -0
  118. data/lib/active_merchant/lib/error.rb +4 -0
  119. data/lib/active_merchant/lib/post_data.rb +22 -0
  120. data/lib/active_merchant/lib/posts_data.rb +47 -0
  121. data/lib/active_merchant/lib/requires_parameters.rb +16 -0
  122. data/lib/active_merchant/lib/utils.rb +18 -0
  123. data/lib/active_merchant/lib/validateable.rb +76 -0
  124. data/lib/active_merchant.rb +60 -0
  125. data/lib/certs/cacert.pem +7815 -0
  126. data/lib/support/gateway_support.rb +58 -0
  127. data/script/destroy +14 -0
  128. data/script/generate +14 -0
  129. data/test/fixtures.yml +330 -0
  130. data/test/remote/gateways/remote_authorize_net_cim_test.rb +459 -0
  131. data/test/remote/gateways/remote_authorize_net_test.rb +145 -0
  132. data/test/remote/gateways/remote_beanstream_interac_test.rb +53 -0
  133. data/test/remote/gateways/remote_beanstream_test.rb +150 -0
  134. data/test/remote/gateways/remote_braintree_test.rb +154 -0
  135. data/test/remote/gateways/remote_card_stream_test.rb +148 -0
  136. data/test/remote/gateways/remote_cyber_source_test.rb +144 -0
  137. data/test/remote/gateways/remote_data_cash_test.rb +357 -0
  138. data/test/remote/gateways/remote_efsnet_test.rb +81 -0
  139. data/test/remote/gateways/remote_eway_test.rb +74 -0
  140. data/test/remote/gateways/remote_exact_test.rb +60 -0
  141. data/test/remote/gateways/remote_instapay_test.rb +61 -0
  142. data/test/remote/gateways/remote_linkpoint_test.rb +112 -0
  143. data/test/remote/gateways/remote_merchant_e_solutions_test.rb +173 -0
  144. data/test/remote/gateways/remote_modern_payments_cim_test.rb +58 -0
  145. data/test/remote/gateways/remote_modern_payments_test.rb +43 -0
  146. data/test/remote/gateways/remote_moneris_test.rb +82 -0
  147. data/test/remote/gateways/remote_net_registry_test.rb +85 -0
  148. data/test/remote/gateways/remote_netbilling_test.rb +70 -0
  149. data/test/remote/gateways/remote_pay_junction_test.rb +143 -0
  150. data/test/remote/gateways/remote_pay_secure_test.rb +39 -0
  151. data/test/remote/gateways/remote_payflow_express_test.rb +50 -0
  152. data/test/remote/gateways/remote_payflow_test.rb +237 -0
  153. data/test/remote/gateways/remote_payflow_uk_test.rb +173 -0
  154. data/test/remote/gateways/remote_payment_express_test.rb +136 -0
  155. data/test/remote/gateways/remote_paypal_express_test.rb +49 -0
  156. data/test/remote/gateways/remote_paypal_test.rb +167 -0
  157. data/test/remote/gateways/remote_plugnpay_test.rb +72 -0
  158. data/test/remote/gateways/remote_protx_test.rb +219 -0
  159. data/test/remote/gateways/remote_psigate_test.rb +50 -0
  160. data/test/remote/gateways/remote_psl_card_test.rb +125 -0
  161. data/test/remote/gateways/remote_quickpay_test.rb +190 -0
  162. data/test/remote/gateways/remote_realex_test.rb +224 -0
  163. data/test/remote/gateways/remote_sage_bankcard_test.rb +109 -0
  164. data/test/remote/gateways/remote_sage_test.rb +87 -0
  165. data/test/remote/gateways/remote_sage_virtual_check_test.rb +62 -0
  166. data/test/remote/gateways/remote_secure_pay_au_test.rb +40 -0
  167. data/test/remote/gateways/remote_secure_pay_tech_test.rb +37 -0
  168. data/test/remote/gateways/remote_secure_pay_test.rb +28 -0
  169. data/test/remote/gateways/remote_skipjack_test.rb +105 -0
  170. data/test/remote/gateways/remote_trans_first_test.rb +34 -0
  171. data/test/remote/gateways/remote_transax_test.rb +112 -0
  172. data/test/remote/gateways/remote_trust_commerce_test.rb +152 -0
  173. data/test/remote/gateways/remote_usa_epay_test.rb +46 -0
  174. data/test/remote/gateways/remote_verifi_test.rb +107 -0
  175. data/test/remote/gateways/remote_viaklix_test.rb +43 -0
  176. data/test/remote/gateways/remote_wirecard_test.rb +111 -0
  177. data/test/remote/integrations/remote_gestpay_integration_test.rb +37 -0
  178. data/test/remote/integrations/remote_paypal_integration_test.rb +26 -0
  179. data/test/test_helper.rb +182 -0
  180. data/test/unit/avs_result_test.rb +59 -0
  181. data/test/unit/base_test.rb +55 -0
  182. data/test/unit/check_test.rb +88 -0
  183. data/test/unit/connection_test.rb +129 -0
  184. data/test/unit/country_code_test.rb +33 -0
  185. data/test/unit/country_test.rb +64 -0
  186. data/test/unit/credit_card_formatting_test.rb +19 -0
  187. data/test/unit/credit_card_methods_test.rb +170 -0
  188. data/test/unit/credit_card_test.rb +318 -0
  189. data/test/unit/cvv_result_test.rb +33 -0
  190. data/test/unit/expiry_date_test.rb +21 -0
  191. data/test/unit/gateways/authorize_net_cim_test.rb +638 -0
  192. data/test/unit/gateways/authorize_net_test.rb +290 -0
  193. data/test/unit/gateways/beanstream_interac_test.rb +51 -0
  194. data/test/unit/gateways/beanstream_test.rb +108 -0
  195. data/test/unit/gateways/bogus_test.rb +46 -0
  196. data/test/unit/gateways/braintree_test.rb +126 -0
  197. data/test/unit/gateways/card_stream_test.rb +90 -0
  198. data/test/unit/gateways/cyber_source_test.rb +188 -0
  199. data/test/unit/gateways/data_cash_test.rb +133 -0
  200. data/test/unit/gateways/efsnet_test.rb +123 -0
  201. data/test/unit/gateways/eway_test.rb +118 -0
  202. data/test/unit/gateways/exact_test.rb +156 -0
  203. data/test/unit/gateways/gateway_test.rb +48 -0
  204. data/test/unit/gateways/instapay_test.rb +102 -0
  205. data/test/unit/gateways/linkpoint_test.rb +167 -0
  206. data/test/unit/gateways/merchant_e_solutions_test.rb +169 -0
  207. data/test/unit/gateways/modern_payments_cim_test.rb +171 -0
  208. data/test/unit/gateways/moneris_test.rb +158 -0
  209. data/test/unit/gateways/net_registry_test.rb +416 -0
  210. data/test/unit/gateways/netbilling_test.rb +54 -0
  211. data/test/unit/gateways/pay_junction_test.rb +123 -0
  212. data/test/unit/gateways/pay_secure_test.rb +71 -0
  213. data/test/unit/gateways/payflow_express_test.rb +173 -0
  214. data/test/unit/gateways/payflow_express_uk_test.rb +86 -0
  215. data/test/unit/gateways/payflow_test.rb +305 -0
  216. data/test/unit/gateways/payflow_uk_test.rb +30 -0
  217. data/test/unit/gateways/payment_express_test.rb +195 -0
  218. data/test/unit/gateways/paypal_express_test.rb +382 -0
  219. data/test/unit/gateways/paypal_test.rb +520 -0
  220. data/test/unit/gateways/plugnpay_test.rb +86 -0
  221. data/test/unit/gateways/protx_test.rb +139 -0
  222. data/test/unit/gateways/psigate_test.rb +169 -0
  223. data/test/unit/gateways/psl_card_test.rb +64 -0
  224. data/test/unit/gateways/quickpay_test.rb +112 -0
  225. data/test/unit/gateways/realex_test.rb +151 -0
  226. data/test/unit/gateways/sage_bankcard_test.rb +162 -0
  227. data/test/unit/gateways/sage_virtual_check_test.rb +71 -0
  228. data/test/unit/gateways/secure_pay_au_test.rb +207 -0
  229. data/test/unit/gateways/secure_pay_tech_test.rb +44 -0
  230. data/test/unit/gateways/secure_pay_test.rb +87 -0
  231. data/test/unit/gateways/skip_jack_test.rb +133 -0
  232. data/test/unit/gateways/trans_first_test.rb +112 -0
  233. data/test/unit/gateways/trust_commerce_test.rb +90 -0
  234. data/test/unit/gateways/usa_epay_test.rb +128 -0
  235. data/test/unit/gateways/verifi_test.rb +96 -0
  236. data/test/unit/gateways/viaklix_test.rb +78 -0
  237. data/test/unit/gateways/wirecard_test.rb +250 -0
  238. data/test/unit/generators/test_gateway_generator.rb +46 -0
  239. data/test/unit/generators/test_generator_helper.rb +20 -0
  240. data/test/unit/generators/test_integration_generator.rb +53 -0
  241. data/test/unit/integrations/action_view_helper_test.rb +50 -0
  242. data/test/unit/integrations/bogus_module_test.rb +20 -0
  243. data/test/unit/integrations/chronopay_module_test.rb +13 -0
  244. data/test/unit/integrations/gestpay_module_test.rb +14 -0
  245. data/test/unit/integrations/helpers/bogus_helper_test.rb +28 -0
  246. data/test/unit/integrations/helpers/chronopay_helper_test.rb +67 -0
  247. data/test/unit/integrations/helpers/gestpay_helper_test.rb +100 -0
  248. data/test/unit/integrations/helpers/hi_trust_helper_test.rb +16 -0
  249. data/test/unit/integrations/helpers/nochex_helper_test.rb +53 -0
  250. data/test/unit/integrations/helpers/paypal_helper_test.rb +162 -0
  251. data/test/unit/integrations/helpers/quickpay_helper_test.rb +40 -0
  252. data/test/unit/integrations/helpers/two_checkout_helper_test.rb +92 -0
  253. data/test/unit/integrations/hi_trust_module_test.rb +13 -0
  254. data/test/unit/integrations/nochex_module_test.rb +13 -0
  255. data/test/unit/integrations/notifications/chronopay_notification_test.rb +66 -0
  256. data/test/unit/integrations/notifications/gestpay_notification_test.rb +60 -0
  257. data/test/unit/integrations/notifications/hi_trust_notification_test.rb +59 -0
  258. data/test/unit/integrations/notifications/nochex_notification_test.rb +51 -0
  259. data/test/unit/integrations/notifications/notification_test.rb +54 -0
  260. data/test/unit/integrations/notifications/paypal_notification_test.rb +85 -0
  261. data/test/unit/integrations/notifications/quickpay_notification_test.rb +69 -0
  262. data/test/unit/integrations/notifications/two_checkout_notification_test.rb +55 -0
  263. data/test/unit/integrations/paypal_module_test.rb +28 -0
  264. data/test/unit/integrations/quickpay_module_test.rb +9 -0
  265. data/test/unit/integrations/returns/chronopay_return_test.rb +11 -0
  266. data/test/unit/integrations/returns/gestpay_return_test.rb +10 -0
  267. data/test/unit/integrations/returns/hi_trust_return_test.rb +24 -0
  268. data/test/unit/integrations/returns/nochex_return_test.rb +10 -0
  269. data/test/unit/integrations/returns/paypal_return_test.rb +10 -0
  270. data/test/unit/integrations/returns/return_test.rb +11 -0
  271. data/test/unit/integrations/returns/two_checkout_return_test.rb +24 -0
  272. data/test/unit/integrations/two_checkout_module_test.rb +13 -0
  273. data/test/unit/post_data_test.rb +55 -0
  274. data/test/unit/posts_data_test.rb +48 -0
  275. data/test/unit/response_test.rb +28 -0
  276. data/test/unit/utils_test.rb +7 -0
  277. data/test/unit/validateable_test.rb +60 -0
  278. metadata +364 -0
@@ -0,0 +1,416 @@
1
+ require 'test_helper'
2
+
3
+ class NetRegistryTest < Test::Unit::TestCase
4
+ def setup
5
+ @gateway = NetRegistryGateway.new(
6
+ :login => 'X',
7
+ :password => 'Y'
8
+ )
9
+
10
+ @amount = 100
11
+ @credit_card = credit_card
12
+ @options = {
13
+ :order_id => '1',
14
+ :billing_address => address
15
+ }
16
+ end
17
+
18
+ def test_filtered_fields
19
+ @gateway.stubs(:ssl_post).returns(successful_purchase_response)
20
+ response = @gateway.purchase(@amount, @credit_card, @options)
21
+
22
+ NetRegistryGateway::FILTERED_PARAMS.each do |param|
23
+ assert_false response.params.has_key?(param)
24
+ end
25
+ end
26
+
27
+ def test_successful_purchase
28
+ @gateway.stubs(:ssl_post).returns(successful_purchase_response)
29
+
30
+ response = @gateway.purchase(@amount, @credit_card, @options)
31
+ assert_success response
32
+ assert_match '0707161858000000', response.authorization
33
+ end
34
+
35
+ def test_successful_credit
36
+ @gateway.stubs(:ssl_post).returns(successful_credit_response)
37
+ response = @gateway.credit(@amount, '0707161858000000', @options)
38
+ assert_success response
39
+ end
40
+
41
+ def test_capture_without_credit_card_provided
42
+ assert_raise(ArgumentError) do
43
+ response = @gateway.capture(@amount, '0707161858000000', @options)
44
+ end
45
+ end
46
+
47
+ def test_successful_authorization
48
+ @gateway.stubs(:ssl_post).returns(successful_authorization_response)
49
+ response = @gateway.authorize(@amount, @credit_card, @options)
50
+ assert_success response
51
+ assert_match /\A\d{6}\z/, response.authorization
52
+ assert_equal '000000', response.authorization
53
+ end
54
+
55
+ def test_successful_authorization_and_capture
56
+ @gateway.stubs(:ssl_post).returns(successful_authorization_response, successful_capture_response)
57
+
58
+ response = @gateway.authorize(@amount, @credit_card, @options)
59
+ assert_success response
60
+ assert_match /\A\d{6}\z/, response.authorization
61
+
62
+ response = @gateway.capture(@amount, response.authorization, :credit_card => @credit_card)
63
+ assert_success response
64
+ end
65
+
66
+ def test_purchase_with_invalid_credit_card
67
+ @gateway.stubs(:ssl_post).returns(purchase_with_invalid_credit_card_response)
68
+
69
+ response = @gateway.purchase(@amount, @credit_card, @options)
70
+ assert_failure response
71
+ assert_equal 'INVALID CARD', response.message
72
+ end
73
+
74
+ def test_purchase_with_expired_credit_card
75
+ @gateway.stubs(:ssl_post).returns(purchase_with_expired_credit_card_response)
76
+
77
+ response = @gateway.purchase(@amount, @credit_card, @options)
78
+ assert_failure response
79
+ assert_equal 'CARD EXPIRED', response.message
80
+ end
81
+
82
+ def test_purchase_with_invalid_month
83
+ @gateway.stubs(:ssl_post).returns(purchase_with_invalid_month_response)
84
+
85
+ response = @gateway.purchase(@amount, @credit_card, @options)
86
+ assert_failure response
87
+ assert_equal 'Invalid month', response.message
88
+ end
89
+
90
+ def test_bad_login
91
+ gateway = NetRegistryGateway.new(:login => 'bad-login', :password => 'bad-login')
92
+ gateway.stubs(:ssl_post).returns(bad_login_response)
93
+
94
+ response = gateway.purchase(@amount, @credit_card, @options)
95
+ assert_failure response
96
+ assert_equal 'failed', response.params['status']
97
+ end
98
+
99
+ private
100
+ def successful_purchase_response
101
+ <<-RESPONSE
102
+ approved
103
+ 00015X000000
104
+ Transaction No: 00000000
105
+ ------------------------
106
+ MERCHANTNAME
107
+ LOCATION AU
108
+
109
+ MERCH ID 10000000
110
+ TERM ID Y0TR00
111
+ COUNTRY CODE AU
112
+ 16/07/07 18:59
113
+ RRN 00015X000000
114
+ VISA
115
+ 411111-111
116
+ CREDIT A/C 12/10
117
+
118
+ AUTHORISATION NO: 000000
119
+ APPROVED 08
120
+
121
+ PURCHASE $1.00
122
+ TOTAL AUD $1.00
123
+
124
+ PLEASE RETAIN AS RECORD
125
+ OF PURCHASE
126
+
127
+ (SUBJECT TO CARDHOLDER'S
128
+ ACCEPTANCE)
129
+ ------------------------
130
+ .
131
+ settlement_date=16/07/07
132
+ card_desc=VISA
133
+ status=approved
134
+ txn_ref=0707161858000000
135
+ refund_mode=0
136
+ transaction_no=000000
137
+ rrn=00015X000000
138
+ response_text=SIGNATURE REQUIRED
139
+ pld=0
140
+ total_amount=100
141
+ card_no=4111111111111111
142
+ version=V1.0
143
+ merchant_index=123
144
+ card_expiry=12/10
145
+ training_mode=0
146
+ operator_no=10000
147
+ response_code=08
148
+ card_type=6
149
+ approved=1
150
+ cashout_amount=0
151
+ receipt_array=ARRAY(0x83725cc)
152
+ account_type=CREDIT A/C
153
+ result=1
154
+ RESPONSE
155
+ end
156
+
157
+ def successful_credit_response
158
+ <<-RESPONSE
159
+ approved
160
+ 00015X000000
161
+ Transaction No: 00000000
162
+ ------------------------
163
+ MERCHANTNAME
164
+ LOCATION AU
165
+
166
+ MERCH ID 10000000
167
+ TERM ID Y0TR00
168
+ COUNTRY CODE AU
169
+ 16/07/07 19:03
170
+ RRN 00015X000000
171
+ VISA
172
+ 411111-111
173
+ CREDIT A/C 12/10
174
+
175
+ AUTHORISATION NO:
176
+ APPROVED 08
177
+
178
+ ** REFUND ** $1.00
179
+ TOTAL AUD $1.00
180
+
181
+ PLEASE RETAIN AS RECORD
182
+ OF REFUND
183
+
184
+ (SUBJECT TO CARDHOLDER'S
185
+ ACCEPTANCE)
186
+ ------------------------
187
+ .
188
+ settlement_date=16/07/07
189
+ card_desc=VISA
190
+ status=approved
191
+ txn_ref=0707161902000000
192
+ refund_mode=1
193
+ transaction_no=000000
194
+ rrn=00015X000000
195
+ response_text=SIGNATURE REQUIRED
196
+ pld=0
197
+ total_amount=100
198
+ card_no=4111111111111111
199
+ version=V1.0
200
+ merchant_index=123
201
+ card_expiry=12/10
202
+ training_mode=0
203
+ operator_no=10000
204
+ response_code=08
205
+ card_type=6
206
+ approved=1
207
+ cashout_amount=0
208
+ receipt_array=ARRAY(0x837241c)
209
+ account_type=CREDIT A/C
210
+ result=1
211
+ RESPONSE
212
+ end
213
+
214
+ def successful_authorization_response
215
+ <<-RESPONSE
216
+ approved
217
+ 00015X000000
218
+ Transaction No: 00000000
219
+ ------------------------
220
+ MERCHANTNAME
221
+ LOCATION AU
222
+
223
+ MERCH ID 10000000
224
+ TERM ID Y0TR00
225
+ COUNTRY CODE AU
226
+ 17/07/07 15:22
227
+ RRN 00015X000000
228
+ VISA
229
+ 411111-111
230
+ CREDIT A/C 12/10
231
+
232
+ AUTHORISATION NO: 000000
233
+ APPROVED 08
234
+
235
+ PURCHASE $1.00
236
+ TOTAL AUD $1.00
237
+
238
+ PLEASE RETAIN AS RECORD
239
+ OF PURCHASE
240
+
241
+ (SUBJECT TO CARDHOLDER'S
242
+ ACCEPTANCE)
243
+ ------------------------
244
+ .
245
+ settlement_date=17/07/07
246
+ card_desc=VISA
247
+ status=approved
248
+ txn_ref=0707171521000000
249
+ refund_mode=0
250
+ transaction_no=000000
251
+ rrn=00015X000000
252
+ response_text=SIGNATURE REQUIRED
253
+ pld=0
254
+ total_amount=100
255
+ card_no=4111111111111111
256
+ version=V1.0
257
+ merchant_index=123
258
+ card_expiry=12/10
259
+ training_mode=0
260
+ operator_no=10000
261
+ response_code=08
262
+ card_type=6
263
+ approved=1
264
+ cashout_amount=0
265
+ receipt_array=ARRAY(0x836a25c)
266
+ account_type=CREDIT A/C
267
+ result=1
268
+ RESPONSE
269
+ end
270
+
271
+ def successful_capture_response
272
+ <<-RESPONSE
273
+ approved
274
+ 00015X000000
275
+ Transaction No: 00000000
276
+ ------------------------
277
+ MERCHANTNAME
278
+ LOCATION AU
279
+
280
+ MERCH ID 10000000
281
+ TERM ID Y0TR00
282
+ COUNTRY CODE AU
283
+ 17/07/07 15:23
284
+ RRN 00015X000000
285
+ VISA
286
+ 411111-111
287
+ CREDIT A/C 12/10
288
+
289
+ AUTHORISATION NO: 000000
290
+ APPROVED 08
291
+
292
+ PURCHASE $1.00
293
+ TOTAL AUD $1.00
294
+
295
+ PLEASE RETAIN AS RECORD
296
+ OF PURCHASE
297
+
298
+ (SUBJECT TO CARDHOLDER'S
299
+ ACCEPTANCE)
300
+ ------------------------
301
+ .
302
+ settlement_date=17/07/07
303
+ card_desc=VISA
304
+ status=approved
305
+ txn_ref=0707171522000000
306
+ refund_mode=0
307
+ transaction_no=000000
308
+ rrn=00015X000000
309
+ response_text=SIGNATURE REQUIRED
310
+ pld=0
311
+ total_amount=100
312
+ card_no=4111111111111111
313
+ version=V1.0
314
+ merchant_index=123
315
+ card_expiry=12/10
316
+ training_mode=0
317
+ operator_no=10000
318
+ response_code=08
319
+ card_type=6
320
+ approved=1
321
+ cashout_amount=0
322
+ receipt_array=ARRAY(0x8378200)
323
+ account_type=CREDIT A/C
324
+ result=1
325
+ RESPONSE
326
+ end
327
+
328
+ def purchase_with_invalid_credit_card_response
329
+ <<-RESPONSE
330
+ declined
331
+ 00015X000000
332
+ Transaction No: 00000000
333
+ ------------------------
334
+ MERCHANTNAME
335
+ LOCATION AU
336
+
337
+ MERCH ID 10000000
338
+ TERM ID Y0TR40
339
+ COUNTRY CODE AU
340
+ 16/07/07 19:20
341
+ RRN 00015X000000
342
+ VISA
343
+ 411111-111
344
+ CREDIT A/C 12/10
345
+
346
+ AUTHORISATION NO:
347
+ DECLINED 31
348
+
349
+ PURCHASE $1.00
350
+ TOTAL AUD $1.00
351
+
352
+ (SUBJECT TO CARDHOLDER'S
353
+ ACCEPTANCE)
354
+ ------------------------
355
+ .
356
+ settlement_date=16/07/07
357
+ card_desc=VISA
358
+ status=declined
359
+ txn_ref=0707161919000000
360
+ refund_mode=0
361
+ transaction_no=000000
362
+ rrn=00015X000000
363
+ response_text=INVALID CARD
364
+ pld=0
365
+ total_amount=100
366
+ card_no=4111111111111111
367
+ version=V1.0
368
+ merchant_index=123
369
+ card_expiry=12/10
370
+ training_mode=0
371
+ operator_no=10000
372
+ response_code=31
373
+ card_type=6
374
+ approved=0
375
+ cashout_amount=0
376
+ receipt_array=ARRAY(0x83752d0)
377
+ account_type=CREDIT A/C
378
+ result=0
379
+ RESPONSE
380
+ end
381
+
382
+ def purchase_with_expired_credit_card_response
383
+ <<-RESPONSE
384
+ failed
385
+
386
+
387
+ .
388
+ response_text=CARD EXPIRED
389
+ approved=0
390
+ status=failed
391
+ txn_ref=0707161910000000
392
+ version=V1.0
393
+ pld=0
394
+ response_code=Q816
395
+ result=-1
396
+ RESPONSE
397
+ end
398
+
399
+ def purchase_with_invalid_month_response
400
+ <<-RESPONSE
401
+ failed
402
+ Invalid month
403
+ RESPONSE
404
+ end
405
+
406
+ def bad_login_response
407
+ <<-RESPONSE
408
+ failed
409
+
410
+
411
+ .
412
+ status=failed
413
+ result=-1
414
+ RESPONSE
415
+ end
416
+ end
@@ -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,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