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,150 @@
1
+ require 'test_helper'
2
+
3
+ # This test suite assumes that you have enabled username/password transaction validation in your Beanstream account.
4
+ # You will experience some test failures if username/password validation transaction validation is not enabled.
5
+ class RemoteBeanstreamTest < Test::Unit::TestCase
6
+
7
+ def setup
8
+ @gateway = BeanstreamGateway.new(fixtures(:beanstream))
9
+
10
+ # Beanstream test cards. Cards require a CVV of 123, which is the default of the credit card helper
11
+ @visa = credit_card('4030000010001234')
12
+ @declined_visa = credit_card('4003050500040005')
13
+
14
+ @mastercard = credit_card('5100000010001004')
15
+ @declined_mastercard = credit_card('5100000020002000')
16
+
17
+ @amex = credit_card('371100001000131')
18
+ @declined_amex = credit_card('342400001000180')
19
+
20
+ # Canadian EFT
21
+ @check = check(
22
+ :institution_number => '001',
23
+ :transit_number => '26729'
24
+ )
25
+
26
+ @amount = 1500
27
+
28
+ @options = {
29
+ :order_id => generate_unique_id,
30
+ :billing_address => {
31
+ :name => 'xiaobo zzz',
32
+ :phone => '555-555-5555',
33
+ :address1 => '1234 Levesque St.',
34
+ :address2 => 'Apt B',
35
+ :city => 'Montreal',
36
+ :state => 'QC',
37
+ :country => 'CA',
38
+ :zip => 'H2C1X8'
39
+ },
40
+ :email => 'xiaobozzz@example.com',
41
+ :subtotal => 800,
42
+ :shipping => 100,
43
+ :tax1 => 100,
44
+ :tax2 => 100,
45
+ :custom => 'reference one'
46
+ }
47
+ end
48
+
49
+ def test_successful_visa_purchase
50
+ assert response = @gateway.purchase(@amount, @visa, @options)
51
+ assert_success response
52
+ assert_false response.authorization.blank?
53
+ assert_equal "Approved", response.message
54
+ end
55
+
56
+ def test_unsuccessful_visa_purchase
57
+ assert response = @gateway.purchase(@amount, @declined_visa, @options)
58
+ assert_failure response
59
+ assert_equal 'DECLINE', response.message
60
+ end
61
+
62
+ def test_successful_mastercard_purchase
63
+ assert response = @gateway.purchase(@amount, @mastercard, @options)
64
+ assert_success response
65
+ assert_false response.authorization.blank?
66
+ assert_equal "Approved", response.message
67
+ end
68
+
69
+ def test_unsuccessful_mastercard_purchase
70
+ assert response = @gateway.purchase(@amount, @declined_mastercard, @options)
71
+ assert_failure response
72
+ assert_equal 'DECLINE', response.message
73
+ end
74
+
75
+ def test_successful_amex_purchase
76
+ assert response = @gateway.purchase(@amount, @amex, @options)
77
+ assert_success response
78
+ assert_false response.authorization.blank?
79
+ assert_equal "Approved", response.message
80
+ end
81
+
82
+ def test_unsuccessful_amex_purchase
83
+ assert response = @gateway.purchase(@amount, @declined_amex, @options)
84
+ assert_failure response
85
+ assert_equal 'DECLINE', response.message
86
+ end
87
+
88
+ def test_authorize_and_capture
89
+ assert auth = @gateway.authorize(@amount, @visa, @options)
90
+ assert_success auth
91
+ assert_equal "Approved", auth.message
92
+ assert_false auth.authorization.blank?
93
+
94
+ assert capture = @gateway.capture(@amount, auth.authorization)
95
+ assert_success capture
96
+ assert_false capture.authorization.blank?
97
+ end
98
+
99
+ def test_failed_capture
100
+ assert response = @gateway.capture(@amount, '')
101
+ assert_failure response
102
+ assert_no_match %r{You are not authorized}, response.message, "You need to enable username/password validation"
103
+ assert_match %r{Missing or invalid adjustment id.}, response.message
104
+ end
105
+
106
+ def test_successful_purchase_and_void
107
+ assert purchase = @gateway.purchase(@amount, @visa, @options)
108
+ assert_success purchase
109
+
110
+ assert void = @gateway.void(purchase.authorization)
111
+ assert_success void
112
+ end
113
+
114
+ def test_successful_purchase_and_credit_and_void_credit
115
+ assert purchase = @gateway.purchase(@amount, @visa, @options)
116
+ assert_success purchase
117
+
118
+ assert credit = @gateway.credit(@amount, purchase.authorization)
119
+ assert_success purchase
120
+
121
+ assert void = @gateway.void(credit.authorization)
122
+ assert_success void
123
+ end
124
+
125
+ def test_successful_check_purchase
126
+ assert response = @gateway.purchase(@amount, @check, @options)
127
+ assert_success response
128
+ assert response.test?
129
+ assert_false response.authorization.blank?
130
+ end
131
+
132
+ def test_successful_check_purchase_and_credit
133
+ assert purchase = @gateway.purchase(@amount, @check, @options)
134
+ assert_success purchase
135
+
136
+ assert credit = @gateway.credit(@amount, purchase.authorization)
137
+ assert_success credit
138
+ end
139
+
140
+ def test_invalid_login
141
+ gateway = BeanstreamGateway.new(
142
+ :merchant_id => '',
143
+ :login => '',
144
+ :password => ''
145
+ )
146
+ assert response = gateway.purchase(@amount, @visa, @options)
147
+ assert_failure response
148
+ assert_equal 'Invalid merchant id (merchant_id = 0)', response.message
149
+ end
150
+ end
@@ -0,0 +1,154 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteBraintreeTest < Test::Unit::TestCase
4
+ def setup
5
+ @gateway = BraintreeGateway.new(fixtures(:braintree))
6
+
7
+ @amount = rand(10000) + 1001
8
+ @credit_card = credit_card('4111111111111111')
9
+ @check = check()
10
+ @declined_amount = rand(99)
11
+ @options = { :order_id => generate_unique_id,
12
+ :billing_address => address
13
+ }
14
+ end
15
+
16
+ def test_successful_purchase
17
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
18
+ assert_equal 'This transaction has been approved', response.message
19
+ assert_success response
20
+ end
21
+
22
+ def test_successful_purchase_with_old_naming
23
+ gateway = BrainTreeGateway.new(fixtures(:braintree))
24
+ assert response = gateway.purchase(@amount, @credit_card, @options)
25
+ assert_equal 'This transaction has been approved', response.message
26
+ assert_success response
27
+ end
28
+
29
+ def test_successful_purchase_with_echeck
30
+ check = ActiveMerchant::Billing::Check.new(
31
+ :name => 'Fredd Bloggs',
32
+ :routing_number => '111000025', # Valid ABA # - Bank of America, TX
33
+ :account_number => '999999999999',
34
+ :account_holder_type => 'personal',
35
+ :account_type => 'checking'
36
+ )
37
+ assert response = @gateway.purchase(@amount, @check, @options)
38
+ assert_equal 'This transaction has been approved', response.message
39
+ assert_success response
40
+ end
41
+
42
+ def test_successful_add_to_vault
43
+ @options[:store] = true
44
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
45
+ assert_equal 'This transaction has been approved', response.message
46
+ assert_success response
47
+ assert_not_nil response.params["customer_vault_id"]
48
+ end
49
+
50
+ def test_successful_add_to_vault_with_store_method
51
+ assert response = @gateway.store(@credit_card)
52
+ assert_equal 'Customer Added', response.message
53
+ assert_success response
54
+ assert_not_nil response.params["customer_vault_id"]
55
+ end
56
+
57
+ def test_successful_add_to_vault_and_use
58
+ @options[:store] = true
59
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
60
+ assert_equal 'This transaction has been approved', response.message
61
+ assert_success response
62
+ assert_not_nil customer_id = response.params["customer_vault_id"]
63
+
64
+ assert second_response = @gateway.purchase(@amount*2, customer_id, @options)
65
+ assert_equal 'This transaction has been approved', second_response.message
66
+ assert second_response.success?
67
+ end
68
+
69
+ def test_add_to_vault_with_custom_vault_id
70
+ @options[:store] = rand(100000)+10001
71
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
72
+ assert_equal 'This transaction has been approved', response.message
73
+ assert_success response
74
+ assert_equal @options[:store], response.params["customer_vault_id"].to_i
75
+ end
76
+
77
+ def test_add_to_vault_with_custom_vault_id_with_store_method
78
+ @options[:billing_id] = rand(100000)+10001
79
+ assert response = @gateway.store(@credit_card, @options.dup)
80
+ assert_equal 'Customer Added', response.message
81
+ assert_success response
82
+ assert_equal @options[:billing_id], response.params["customer_vault_id"].to_i
83
+ end
84
+
85
+ def test_add_to_vault_with_store_and_check
86
+ assert response = @gateway.store(@check, @options)
87
+ assert_equal 'Customer Added', response.message
88
+ assert_success response
89
+ end
90
+
91
+ def test_update_vault
92
+ test_add_to_vault_with_custom_vault_id
93
+ @credit_card = credit_card('4111111111111111', :month => 10)
94
+ assert response = @gateway.update(@options[:store], @credit_card)
95
+ assert_success response
96
+ assert_equal 'Customer Update Successful', response.message
97
+ end
98
+
99
+ def test_delete_from_vault
100
+ test_add_to_vault_with_custom_vault_id
101
+ assert response = @gateway.delete(@options[:store])
102
+ assert_success response
103
+ assert_equal 'Customer Deleted', response.message
104
+ end
105
+
106
+ def test_delete_from_vault_with_unstore_method
107
+ test_add_to_vault_with_custom_vault_id
108
+ assert response = @gateway.unstore(@options[:store])
109
+ assert_success response
110
+ assert_equal 'Customer Deleted', response.message
111
+ end
112
+
113
+ def test_declined_purchase
114
+ assert response = @gateway.purchase(@declined_amount, @credit_card, @options)
115
+ assert_equal 'This transaction has been declined', response.message
116
+ assert_failure response
117
+ end
118
+
119
+ def test_authorize_and_capture
120
+ assert auth = @gateway.authorize(@amount, @credit_card, @options)
121
+ assert_success auth
122
+ assert_equal 'This transaction has been approved', auth.message
123
+ assert auth.authorization
124
+ assert capture = @gateway.capture(@amount, auth.authorization)
125
+ assert_equal 'This transaction has been approved', capture.message
126
+ assert_success capture
127
+ end
128
+
129
+ def test_authorize_and_void
130
+ assert auth = @gateway.authorize(@amount, @credit_card, @options)
131
+ assert_success auth
132
+ assert_equal 'This transaction has been approved', auth.message
133
+ assert auth.authorization
134
+ assert void = @gateway.void(auth.authorization)
135
+ assert_equal 'Transaction Void Successful', void.message
136
+ assert_success void
137
+ end
138
+
139
+ def test_failed_capture
140
+ assert response = @gateway.capture(@amount, '')
141
+ assert_failure response
142
+ assert response.message.match(/Invalid Transaction ID \/ Object ID specified:/)
143
+ end
144
+
145
+ def test_invalid_login
146
+ gateway = BraintreeGateway.new(
147
+ :login => '',
148
+ :password => ''
149
+ )
150
+ assert response = gateway.purchase(@amount, @credit_card, @options)
151
+ assert_equal 'Invalid Username', response.message
152
+ assert_failure response
153
+ end
154
+ end
@@ -0,0 +1,148 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteCardStreamTest < Test::Unit::TestCase
4
+ def setup
5
+ Base.mode = :test
6
+
7
+ @gateway = CardStreamGateway.new(fixtures(:card_stream))
8
+
9
+ @amex = credit_card('374245455400001',
10
+ :month => '12',
11
+ :year => '2009',
12
+ :verification_value => '4887',
13
+ :type => :american_express
14
+ )
15
+
16
+ @uk_maestro = credit_card('675940410531100173',
17
+ :month => '12',
18
+ :year => '2008',
19
+ :issue_number => '0',
20
+ :verification_value => '134',
21
+ :type => :switch
22
+ )
23
+
24
+ @solo = credit_card('676740340572345678',
25
+ :month => '12',
26
+ :year => '2008',
27
+ :issue_number => '1',
28
+ :verification_value => '773',
29
+ :type => :solo
30
+ )
31
+
32
+ @mastercard = credit_card('5301250070000191',
33
+ :month => '12',
34
+ :year => '2009',
35
+ :verification_value => '419',
36
+ :type => :master
37
+ )
38
+
39
+ @declined_card = credit_card('4000300011112220',
40
+ :month => '9',
41
+ :year => '2009'
42
+ )
43
+
44
+ @mastercard_options = {
45
+ :billing_address => {
46
+ :address1 => '25 The Larches',
47
+ :city => "Narborough",
48
+ :state => "Leicester",
49
+ :zip => 'LE10 2RT'
50
+ },
51
+ :order_id => generate_unique_id,
52
+ :description => 'Store purchase'
53
+ }
54
+
55
+ @uk_maestro_options = {
56
+ :billing_address => {
57
+ :address1 => 'The Parkway',
58
+ :address2 => "Larches Approach",
59
+ :city => "Hull",
60
+ :state => "North Humberside",
61
+ :zip => 'HU7 9OP'
62
+ },
63
+ :order_id => generate_unique_id,
64
+ :description => 'Store purchase'
65
+ }
66
+
67
+ @solo_options = {
68
+ :billing_address => {
69
+ :address1 => '5 Zigzag Road',
70
+ :city => 'Isleworth',
71
+ :state => 'Middlesex',
72
+ :zip => 'TW7 8FF'
73
+ },
74
+ :order_id => generate_unique_id,
75
+ :description => 'Store purchase'
76
+ }
77
+ end
78
+
79
+ def test_successful_mastercard_purchase
80
+ assert response = @gateway.purchase(100, @mastercard, @mastercard_options)
81
+ assert_equal 'APPROVED', response.message
82
+ assert_success response
83
+ assert response.test?
84
+ assert !response.authorization.blank?
85
+ end
86
+
87
+ def test_declined_mastercard_purchase
88
+ assert response = @gateway.purchase(10000, @mastercard, @mastercard_options)
89
+ assert_equal 'CARD DECLINED', response.message
90
+ assert_failure response
91
+ assert response.test?
92
+ end
93
+
94
+ def test_expired_mastercard
95
+ @mastercard.year = 2005
96
+ assert response = @gateway.purchase(100, @mastercard, @mastercard_options)
97
+ assert_equal 'CARD EXPIRED', response.message
98
+ assert_failure response
99
+ assert response.test?
100
+ end
101
+
102
+ def test_successful_maestro_purchase
103
+ assert response = @gateway.purchase(100, @uk_maestro, @uk_maestro_options)
104
+ assert_equal 'APPROVED', response.message
105
+ assert_success response
106
+ end
107
+
108
+ def test_successful_solo_purchase
109
+ assert response = @gateway.purchase(100, @solo, @solo_options)
110
+ assert_equal 'APPROVED', response.message
111
+ assert_success response
112
+ assert response.test?
113
+ assert !response.authorization.blank?
114
+ end
115
+
116
+ def test_successful_amex_purchase
117
+ assert response = @gateway.purchase(100, @amex, :order_id => generate_unique_id)
118
+ assert_equal 'APPROVED', response.message
119
+ assert_success response
120
+ assert response.test?
121
+ assert !response.authorization.blank?
122
+ end
123
+
124
+ def test_maestro_missing_start_date_and_issue_date
125
+ @uk_maestro.issue_number = nil
126
+ assert response = @gateway.purchase(100, @uk_maestro, @uk_maestro_options)
127
+ assert_equal 'ISSUE NUMBER MISSING', response.message
128
+ assert_failure response
129
+ assert response.test?
130
+ end
131
+
132
+ def test_invalid_login
133
+ gateway = CardStreamGateway.new(
134
+ :login => '',
135
+ :password => ''
136
+ )
137
+ assert response = gateway.purchase(100, @mastercard, @mastercard_options)
138
+ assert_equal 'MERCHANT ID MISSING', response.message
139
+ assert_failure response
140
+ end
141
+
142
+ def test_unsupported_merchant_currency
143
+ assert response = @gateway.purchase(100, @mastercard, @mastercard_options.update(:currency => 'USD'))
144
+ assert_equal "ERROR 1052", response.message
145
+ assert_failure response
146
+ assert response.test?
147
+ end
148
+ end
@@ -0,0 +1,144 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteCyberSourceTest < Test::Unit::TestCase
4
+ def setup
5
+ Base.gateway_mode = :test
6
+
7
+ @gateway = CyberSourceGateway.new(fixtures(:cyber_source))
8
+
9
+ @credit_card = credit_card('4111111111111111', :type => 'visa')
10
+ @declined_card = credit_card('801111111111111', :type => 'visa')
11
+
12
+ @amount = 100
13
+
14
+ @options = {
15
+ :billing_address => address,
16
+
17
+ :order_id => generate_unique_id,
18
+ :line_items => [
19
+ {
20
+ :declared_value => 100,
21
+ :quantity => 2,
22
+ :code => 'default',
23
+ :description => 'Giant Walrus',
24
+ :sku => 'WA323232323232323'
25
+ },
26
+ {
27
+ :declared_value => 100,
28
+ :quantity => 2,
29
+ :description => 'Marble Snowcone',
30
+ :sku => 'FAKE1232132113123'
31
+ }
32
+ ],
33
+ :currency => 'USD',
34
+ :email => 'someguy1232@fakeemail.net',
35
+ :ignore_avs => 'true',
36
+ :ignore_cvv => 'true'
37
+ }
38
+
39
+ end
40
+
41
+ def test_successful_authorization
42
+ assert response = @gateway.authorize(@amount, @credit_card, @options)
43
+ assert_equal 'Successful transaction', response.message
44
+ assert_success response
45
+ assert response.test?
46
+ assert !response.authorization.blank?
47
+ end
48
+
49
+ def test_unsuccessful_authorization
50
+ assert response = @gateway.authorize(@amount, @declined_card, @options)
51
+ assert response.test?
52
+ assert_equal 'Invalid account number', response.message
53
+ assert_equal false, response.success?
54
+ end
55
+
56
+ def test_successful_tax_calculation
57
+ assert response = @gateway.calculate_tax(@credit_card, @options)
58
+ assert_equal 'Successful transaction', response.message
59
+ assert response.params['totalTaxAmount']
60
+ assert_not_equal "0", response.params['totalTaxAmount']
61
+ assert_success response
62
+ assert response.test?
63
+ end
64
+
65
+ def test_successful_tax_calculation_with_nexus
66
+ total_line_items_value = @options[:line_items].inject(0) do |sum, item|
67
+ sum += item[:declared_value] * item[:quantity]
68
+ end
69
+
70
+ canada_gst_rate = 0.05
71
+ ontario_pst_rate = 0.08
72
+
73
+
74
+ total_pst = total_line_items_value.to_f * ontario_pst_rate / 100
75
+ total_gst = total_line_items_value.to_f * canada_gst_rate / 100
76
+ total_tax = total_pst + total_gst
77
+
78
+ assert response = @gateway.calculate_tax(@credit_card, @options.merge(:nexus => 'ON'))
79
+ assert_equal 'Successful transaction', response.message
80
+ assert response.params['totalTaxAmount']
81
+ assert_equal total_pst, response.params['totalCountyTaxAmount'].to_f
82
+ assert_equal total_gst, response.params['totalStateTaxAmount'].to_f
83
+ assert_equal total_tax, response.params['totalTaxAmount'].to_f
84
+ assert_success response
85
+ assert response.test?
86
+ end
87
+
88
+ def test_successful_purchase
89
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
90
+ assert_equal 'Successful transaction', response.message
91
+ assert_success response
92
+ assert response.test?
93
+ end
94
+
95
+ def test_unsuccessful_purchase
96
+ assert response = @gateway.purchase(@amount, @declined_card, @options)
97
+ assert_equal 'Invalid account number', response.message
98
+ assert_failure response
99
+ assert response.test?
100
+ end
101
+
102
+ def test_authorize_and_capture
103
+ assert auth = @gateway.authorize(@amount, @credit_card, @options)
104
+ assert_success auth
105
+ assert_equal 'Successful transaction', auth.message
106
+
107
+ assert capture = @gateway.capture(@amount, auth.authorization)
108
+ assert_success capture
109
+ end
110
+
111
+ def test_successful_authorization_and_failed_capture
112
+ assert auth = @gateway.authorize(@amount, @credit_card, @options)
113
+ assert_success auth
114
+ assert_equal 'Successful transaction', auth.message
115
+
116
+ assert capture = @gateway.capture(@amount + 10, auth.authorization, @options)
117
+ assert_failure capture
118
+ assert_equal "The requested amount exceeds the originally authorized amount", capture.message
119
+ end
120
+
121
+ def test_failed_capture_bad_auth_info
122
+ assert auth = @gateway.authorize(@amount, @credit_card, @options)
123
+ assert capture = @gateway.capture(@amount, "a;b;c", @options)
124
+ assert_failure capture
125
+ end
126
+
127
+ def test_invalid_login
128
+ gateway = CyberSourceGateway.new( :login => '', :password => '' )
129
+ assert response = gateway.purchase(@amount, @credit_card, @options)
130
+ assert_match /wsse:InvalidSecurity/, response.message
131
+ assert_failure response
132
+ end
133
+
134
+ def test_successful_credit
135
+ assert response = @gateway.purchase(@amount, @credit_card, @options)
136
+ assert_equal 'Successful transaction', response.message
137
+ assert_success response
138
+ assert response.test?
139
+ assert response = @gateway.credit(@amount, response.authorization)
140
+ assert_equal 'Successful transaction', response.message
141
+ assert_success response
142
+ assert response.test?
143
+ end
144
+ end