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,109 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteSageBankcardTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @gateway = SageBankcardGateway.new(fixtures(:sage))
7
+
8
+ @amount = 100
9
+
10
+ @visa = credit_card("4111111111111111")
11
+ @mastercard = credit_card("5499740000000057")
12
+ @discover = credit_card("6011000993026909")
13
+ @amex = credit_card("371449635392376")
14
+
15
+ @options = {
16
+ :order_id => generate_unique_id,
17
+ :billing_address => address,
18
+ :shipping_address => address,
19
+ :email => 'longbob@example.com'
20
+ }
21
+ end
22
+
23
+ def test_successful_visa_purchase
24
+ assert response = @gateway.purchase(@amount, @visa, @options)
25
+ assert_success response
26
+ assert response.test?
27
+ assert_false response.authorization.blank?
28
+ end
29
+
30
+ def test_successful_visa_authorization
31
+ assert response = @gateway.authorize(@amount, @visa, @options)
32
+ assert_success response
33
+ assert response.test?
34
+ assert_false response.authorization.blank?
35
+ end
36
+
37
+ def test_declined_visa_purchase
38
+ @amount = 200
39
+
40
+ assert response = @gateway.purchase(@amount, @visa, @options)
41
+ assert_failure response
42
+ assert response.test?
43
+ end
44
+
45
+ def test_successful_mastercard_purchase
46
+ assert response = @gateway.purchase(@amount, @mastercard, @options)
47
+ assert_success response
48
+ assert response.test?
49
+ assert_false response.authorization.blank?
50
+ end
51
+
52
+ def test_successful_discover_purchase
53
+ assert response = @gateway.purchase(@amount, @discover, @options)
54
+ assert_success response
55
+ assert response.test?
56
+ assert_false response.authorization.blank?
57
+ end
58
+
59
+ def test_successful_amex_purchase
60
+ assert response = @gateway.purchase(@amount, @amex, @options)
61
+ assert_success response
62
+ assert response.test?
63
+ assert_false response.authorization.blank?
64
+ end
65
+
66
+ def test_authorization_and_capture
67
+ assert auth = @gateway.authorize(@amount, @visa, @options)
68
+ assert_success auth
69
+
70
+ assert capture = @gateway.capture(@amount, auth.authorization)
71
+ assert_success capture
72
+ end
73
+
74
+ def test_failed_capture
75
+ assert response = @gateway.capture(@amount, '')
76
+ assert_failure response
77
+ assert_equal 'INVALID T_REFERENCE', response.message
78
+ end
79
+
80
+ def test_authorization_and_void
81
+ assert auth = @gateway.authorize(@amount, @visa, @options)
82
+ assert_success auth
83
+
84
+ assert void = @gateway.void(auth.authorization)
85
+ assert_success void
86
+ end
87
+
88
+ def test_failed_void
89
+ assert response = @gateway.void('')
90
+ assert_failure response
91
+ assert_equal 'INVALID T_REFERENCE', response.message
92
+ end
93
+
94
+ def test_successful_credit
95
+ assert response = @gateway.credit(@amount, @visa, @options)
96
+ assert_success response
97
+ assert response.test?
98
+ end
99
+
100
+ def test_invalid_login
101
+ gateway = SageBankcardGateway.new(
102
+ :login => '',
103
+ :password => ''
104
+ )
105
+ assert response = gateway.purchase(@amount, @visa, @options)
106
+ assert_failure response
107
+ assert_equal 'SECURITY VIOLATION', response.message
108
+ end
109
+ end
@@ -0,0 +1,219 @@
1
+ require 'test_helper'
2
+
3
+ # Some of the standard tests have been removed at SagePay test
4
+ # server is pants and accepts anything and says Status=OK. (shift)
5
+ # The tests for American Express will only pass if your account is
6
+ # American express enabled.
7
+ class RemoteSagePayTest < Test::Unit::TestCase
8
+ # set to true to run the tests in the simulated environment
9
+ SagePayGateway.simulate = false
10
+
11
+ def setup
12
+ @gateway = SagePayGateway.new(fixtures(:sage_pay))
13
+
14
+ @amex = CreditCard.new(
15
+ :number => '374200000000004',
16
+ :month => 12,
17
+ :year => next_year,
18
+ :verification_value => 4887,
19
+ :first_name => 'Tekin',
20
+ :last_name => 'Suleyman',
21
+ :type => 'american_express'
22
+ )
23
+
24
+ @maestro = CreditCard.new(
25
+ :number => '5641820000000005',
26
+ :month => 12,
27
+ :year => next_year,
28
+ :issue_number => '01',
29
+ :start_month => 12,
30
+ :start_year => next_year - 2,
31
+ :verification_value => 123,
32
+ :first_name => 'Tekin',
33
+ :last_name => 'Suleyman',
34
+ :type => 'maestro'
35
+ )
36
+
37
+ @visa = CreditCard.new(
38
+ :number => '4929000000006',
39
+ :month => 6,
40
+ :year => next_year,
41
+ :verification_value => 123,
42
+ :first_name => 'Tekin',
43
+ :last_name => 'Suleyman',
44
+ :type => 'visa'
45
+ )
46
+
47
+ @solo = CreditCard.new(
48
+ :number => '6334900000000005',
49
+ :month => 6,
50
+ :year => next_year,
51
+ :issue_number => 1,
52
+ :start_month => 12,
53
+ :start_year => next_year - 2,
54
+ :verification_value => 227,
55
+ :first_name => 'Tekin',
56
+ :last_name => 'Suleyman',
57
+ :type => 'solo'
58
+ )
59
+
60
+ @mastercard = CreditCard.new(
61
+ :number => '5404000000000001',
62
+ :month => 12,
63
+ :year => next_year,
64
+ :verification_value => 419,
65
+ :first_name => 'Tekin',
66
+ :last_name => 'Suleyman',
67
+ :type => 'master'
68
+ )
69
+
70
+ @electron = CreditCard.new(
71
+ :number => '4917300000000008',
72
+ :month => 12,
73
+ :year => next_year,
74
+ :verification_value => 123,
75
+ :first_name => 'Tekin',
76
+ :last_name => 'Suleyman',
77
+ :type => 'electron'
78
+ )
79
+
80
+ @declined_card = CreditCard.new(
81
+ :number => '4111111111111111',
82
+ :month => 9,
83
+ :year => next_year,
84
+ :first_name => 'Tekin',
85
+ :last_name => 'Suleyman',
86
+ :type => 'visa'
87
+ )
88
+
89
+ @options = {
90
+ :billing_address => {
91
+ :name => 'Tekin Suleyman',
92
+ :address1 => 'Flat 10 Lapwing Court',
93
+ :address2 => 'West Didsbury',
94
+ :city => "Manchester",
95
+ :county => 'Greater Manchester',
96
+ :country => 'GB',
97
+ :zip => 'M20 2PS'
98
+ },
99
+ :shipping_address => {
100
+ :name => 'Tekin Suleyman',
101
+ :address1 => '120 Grosvenor St',
102
+ :city => "Manchester",
103
+ :county => 'Greater Manchester',
104
+ :country => 'GB',
105
+ :zip => 'M1 7QW'
106
+ },
107
+ :order_id => generate_unique_id,
108
+ :description => 'Store purchase',
109
+ :ip => '86.150.65.37',
110
+ :email => 'tekin@tekin.co.uk',
111
+ :phone => '0161 123 4567'
112
+ }
113
+
114
+ @amount = 100
115
+ end
116
+
117
+ def test_successful_mastercard_purchase
118
+ assert response = @gateway.purchase(@amount, @mastercard, @options)
119
+ assert_success response
120
+
121
+ assert response.test?
122
+ assert !response.authorization.blank?
123
+ end
124
+
125
+ def test_unsuccessful_purchase
126
+ assert response = @gateway.purchase(@amount, @declined_card, @options)
127
+ assert_failure response
128
+
129
+ assert response.test?
130
+ end
131
+
132
+ def test_successful_authorization_and_capture
133
+ assert auth = @gateway.authorize(@amount, @mastercard, @options)
134
+ assert_success auth
135
+
136
+ assert capture = @gateway.capture(@amount, auth.authorization)
137
+ assert_success capture
138
+ end
139
+
140
+ def test_successful_authorization_and_void
141
+ assert auth = @gateway.authorize(@amount, @mastercard, @options)
142
+ assert_success auth
143
+
144
+ assert abort = @gateway.void(auth.authorization)
145
+ assert_success abort
146
+ end
147
+
148
+ def test_successful_purchase_and_void
149
+ assert purchase = @gateway.purchase(@amount, @mastercard, @options)
150
+ assert_success purchase
151
+
152
+ assert void = @gateway.void(purchase.authorization)
153
+ assert_success void
154
+ end
155
+
156
+ def test_successful_purchase_and_credit
157
+ assert purchase = @gateway.purchase(@amount, @mastercard, @options)
158
+ assert_success purchase
159
+
160
+ assert credit = @gateway.credit(@amount, purchase.authorization,
161
+ :description => 'Crediting trx',
162
+ :order_id => generate_unique_id
163
+ )
164
+
165
+ assert_success credit
166
+ end
167
+
168
+ def test_successful_visa_purchase
169
+ assert response = @gateway.purchase(@amount, @visa, @options)
170
+ assert_success response
171
+ assert response.test?
172
+ assert !response.authorization.blank?
173
+ end
174
+
175
+ def test_successful_maestro_purchase
176
+ assert response = @gateway.purchase(@amount, @maestro, @options)
177
+ assert_success response
178
+ assert response.test?
179
+ assert !response.authorization.blank?
180
+ end
181
+
182
+ def test_successful_solo_purchase
183
+ assert response = @gateway.purchase(@amount, @solo, @options)
184
+ assert_success response
185
+ assert response.test?
186
+ assert !response.authorization.blank?
187
+ end
188
+
189
+ def test_successful_amex_purchase
190
+ assert response = @gateway.purchase(@amount, @amex, @options)
191
+ assert_success response
192
+ assert response.test?
193
+ assert !response.authorization.blank?
194
+ end
195
+
196
+ def test_successful_electron_purchase
197
+ assert response = @gateway.purchase(@amount, @electron, @options)
198
+ assert_success response
199
+ assert response.test?
200
+ assert !response.authorization.blank?
201
+ end
202
+
203
+ def test_invalid_login
204
+ message = SagePayGateway.simulate ? 'VSP Simulator cannot find your vendor name. Ensure you have have supplied a Vendor field with your VSP Vendor name assigned to it.' : '3034 : The Vendor or VendorName value is required.'
205
+
206
+ gateway = SagePayGateway.new(
207
+ :login => ''
208
+ )
209
+ assert response = gateway.purchase(@amount, @mastercard, @options)
210
+ assert_equal message, response.message
211
+ assert_failure response
212
+ end
213
+
214
+ private
215
+
216
+ def next_year
217
+ Date.today.year + 1
218
+ end
219
+ end
@@ -0,0 +1,87 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteSageTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @gateway = SageGateway.new(fixtures(:sage))
7
+
8
+ @amount = 100
9
+
10
+ @visa = credit_card("4111111111111111")
11
+ @check = check
12
+
13
+ @options = {
14
+ :order_id => generate_unique_id,
15
+ :billing_address => address,
16
+ :shipping_address => address,
17
+ :email => 'longbob@example.com'
18
+ }
19
+ end
20
+
21
+ def test_successful_visa_purchase
22
+ assert response = @gateway.purchase(@amount, @visa, @options)
23
+ assert_success response
24
+ assert response.test?
25
+ assert_false response.authorization.blank?
26
+ end
27
+
28
+ def test_successful_check_purchase
29
+ assert response = @gateway.purchase(@amount, @check, @options)
30
+ assert_success response
31
+ assert response.test?
32
+ assert_false response.authorization.blank?
33
+ end
34
+
35
+ def test_successful_visa_authorization
36
+ assert response = @gateway.authorize(@amount, @visa, @options)
37
+ assert_success response
38
+ assert response.test?
39
+ assert_false response.authorization.blank?
40
+ end
41
+
42
+ def test_authorization_and_capture
43
+ assert auth = @gateway.authorize(@amount, @visa, @options)
44
+ assert_success auth
45
+
46
+ assert capture = @gateway.capture(@amount, auth.authorization)
47
+ assert_success capture
48
+ end
49
+
50
+ def test_visa_authorization_and_void
51
+ assert auth = @gateway.authorize(@amount, @visa, @options)
52
+ assert_success auth
53
+
54
+ assert void = @gateway.void(auth.authorization)
55
+ assert_success void
56
+ end
57
+
58
+ def test_check_purchase_and_void
59
+ assert purchase = @gateway.purchase(@amount, @check, @options)
60
+ assert_success purchase
61
+
62
+ assert void = @gateway.void(purchase.authorization)
63
+ assert_success void
64
+ end
65
+
66
+ def test_visa_credit
67
+ assert response = @gateway.credit(@amount, @visa, @options)
68
+ assert_success response
69
+ assert response.test?
70
+ end
71
+
72
+ def test_check_credit
73
+ assert response = @gateway.credit(@amount, @check, @options)
74
+ assert_success response
75
+ assert response.test?
76
+ end
77
+
78
+ def test_invalid_login
79
+ gateway = SageGateway.new(
80
+ :login => '',
81
+ :password => ''
82
+ )
83
+ assert response = gateway.purchase(@amount, @visa, @options)
84
+ assert_failure response
85
+ assert_equal 'SECURITY VIOLATION', response.message
86
+ end
87
+ end
@@ -0,0 +1,62 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteSageCheckTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @gateway = SageVirtualCheckGateway.new(fixtures(:sage))
7
+
8
+ @amount = 100
9
+ @check = check
10
+
11
+ @options = {
12
+ :order_id => generate_unique_id,
13
+ :billing_address => address,
14
+ :shipping_address => address,
15
+ :email => 'longbob@example.com',
16
+ :drivers_license_state => 'CA',
17
+ :drivers_license_number => '12345689',
18
+ :date_of_birth => Date.new(1978, 8, 11),
19
+ :ssn => '078051120'
20
+ }
21
+ end
22
+
23
+ def test_successful_check_purchase
24
+ assert response = @gateway.purchase(@amount, @check, @options)
25
+ assert_success response
26
+ assert response.test?
27
+ assert_false response.authorization.blank?
28
+ end
29
+
30
+ def test_failed_check_purchase
31
+ @check.routing_number = ""
32
+
33
+ assert response = @gateway.purchase(@amount, @check, @options)
34
+ assert_failure response
35
+ assert response.test?
36
+ assert_false response.authorization.blank?
37
+ end
38
+
39
+ def test_purchase_and_void
40
+ assert purchase = @gateway.purchase(@amount, @check, @options)
41
+ assert_success purchase
42
+
43
+ assert void = @gateway.void(purchase.authorization)
44
+ assert_success void
45
+ end
46
+
47
+ def test_credit
48
+ assert response = @gateway.credit(@amount, @check, @options)
49
+ assert_success response
50
+ assert response.test?
51
+ end
52
+
53
+ def test_invalid_login
54
+ gateway = SageVirtualCheckGateway.new(
55
+ :login => '',
56
+ :password => ''
57
+ )
58
+ assert response = gateway.purchase(@amount, @check, @options)
59
+ assert_failure response
60
+ assert_equal 'SECURITY VIOLATION', response.message
61
+ end
62
+ end