johnideal-activemerchant 1.4.4

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 (300) hide show
  1. data/.gitignore +2 -0
  2. data/CHANGELOG +448 -0
  3. data/CONTRIBUTERS +106 -0
  4. data/MIT-LICENSE +20 -0
  5. data/README +134 -0
  6. data/Rakefile +167 -0
  7. data/VERSION +1 -0
  8. data/activemerchant.gemspec +484 -0
  9. data/gem-public_cert.pem +20 -0
  10. data/generators/gateway/USAGE +5 -0
  11. data/generators/gateway/gateway_generator.rb +61 -0
  12. data/generators/gateway/templates/gateway.rb +77 -0
  13. data/generators/gateway/templates/gateway_test.rb +49 -0
  14. data/generators/gateway/templates/remote_gateway_test.rb +57 -0
  15. data/generators/integration/USAGE +5 -0
  16. data/generators/integration/integration_generator.rb +68 -0
  17. data/generators/integration/templates/helper.rb +34 -0
  18. data/generators/integration/templates/helper_test.rb +54 -0
  19. data/generators/integration/templates/integration.rb +18 -0
  20. data/generators/integration/templates/module_test.rb +9 -0
  21. data/generators/integration/templates/notification.rb +100 -0
  22. data/generators/integration/templates/notification_test.rb +41 -0
  23. data/init.rb +3 -0
  24. data/lib/active_merchant/billing/avs_result.rb +98 -0
  25. data/lib/active_merchant/billing/base.rb +57 -0
  26. data/lib/active_merchant/billing/check.rb +68 -0
  27. data/lib/active_merchant/billing/credit_card.rb +159 -0
  28. data/lib/active_merchant/billing/credit_card_formatting.rb +21 -0
  29. data/lib/active_merchant/billing/credit_card_methods.rb +125 -0
  30. data/lib/active_merchant/billing/cvv_result.rb +38 -0
  31. data/lib/active_merchant/billing/expiry_date.rb +34 -0
  32. data/lib/active_merchant/billing/gateway.rb +158 -0
  33. data/lib/active_merchant/billing/gateways/authorize_net.rb +657 -0
  34. data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +703 -0
  35. data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +233 -0
  36. data/lib/active_merchant/billing/gateways/beanstream.rb +102 -0
  37. data/lib/active_merchant/billing/gateways/beanstream_interac.rb +54 -0
  38. data/lib/active_merchant/billing/gateways/bogus.rb +98 -0
  39. data/lib/active_merchant/billing/gateways/braintree.rb +17 -0
  40. data/lib/active_merchant/billing/gateways/card_stream.rb +230 -0
  41. data/lib/active_merchant/billing/gateways/cyber_source.rb +406 -0
  42. data/lib/active_merchant/billing/gateways/data_cash.rb +595 -0
  43. data/lib/active_merchant/billing/gateways/efsnet.rb +229 -0
  44. data/lib/active_merchant/billing/gateways/eway.rb +277 -0
  45. data/lib/active_merchant/billing/gateways/exact.rb +222 -0
  46. data/lib/active_merchant/billing/gateways/instapay.rb +164 -0
  47. data/lib/active_merchant/billing/gateways/linkpoint.rb +396 -0
  48. data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +154 -0
  49. data/lib/active_merchant/billing/gateways/merchant_ware.rb +283 -0
  50. data/lib/active_merchant/billing/gateways/modern_payments.rb +36 -0
  51. data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +214 -0
  52. data/lib/active_merchant/billing/gateways/moneris.rb +205 -0
  53. data/lib/active_merchant/billing/gateways/net_registry.rb +189 -0
  54. data/lib/active_merchant/billing/gateways/netbilling.rb +168 -0
  55. data/lib/active_merchant/billing/gateways/pay_junction.rb +392 -0
  56. data/lib/active_merchant/billing/gateways/pay_secure.rb +120 -0
  57. data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +207 -0
  58. data/lib/active_merchant/billing/gateways/payflow/payflow_express_response.rb +39 -0
  59. data/lib/active_merchant/billing/gateways/payflow/payflow_response.rb +13 -0
  60. data/lib/active_merchant/billing/gateways/payflow.rb +236 -0
  61. data/lib/active_merchant/billing/gateways/payflow_express.rb +138 -0
  62. data/lib/active_merchant/billing/gateways/payflow_express_uk.rb +15 -0
  63. data/lib/active_merchant/billing/gateways/payflow_uk.rb +21 -0
  64. data/lib/active_merchant/billing/gateways/payment_express.rb +230 -0
  65. data/lib/active_merchant/billing/gateways/paymentech_orbital/paymentech_orbital_response.rb +72 -0
  66. data/lib/active_merchant/billing/gateways/paymentech_orbital.rb +170 -0
  67. data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +325 -0
  68. data/lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb +38 -0
  69. data/lib/active_merchant/billing/gateways/paypal.rb +108 -0
  70. data/lib/active_merchant/billing/gateways/paypal_ca.rb +13 -0
  71. data/lib/active_merchant/billing/gateways/paypal_express.rb +130 -0
  72. data/lib/active_merchant/billing/gateways/paypal_express_common.rb +20 -0
  73. data/lib/active_merchant/billing/gateways/plugnpay.rb +292 -0
  74. data/lib/active_merchant/billing/gateways/protx.rb +307 -0
  75. data/lib/active_merchant/billing/gateways/psigate.rb +214 -0
  76. data/lib/active_merchant/billing/gateways/psl_card.rb +306 -0
  77. data/lib/active_merchant/billing/gateways/quickpay.rb +213 -0
  78. data/lib/active_merchant/billing/gateways/realex.rb +200 -0
  79. data/lib/active_merchant/billing/gateways/sage/sage_bankcard.rb +88 -0
  80. data/lib/active_merchant/billing/gateways/sage/sage_core.rb +110 -0
  81. data/lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb +97 -0
  82. data/lib/active_merchant/billing/gateways/sage.rb +146 -0
  83. data/lib/active_merchant/billing/gateways/secure_pay.rb +31 -0
  84. data/lib/active_merchant/billing/gateways/secure_pay_au.rb +157 -0
  85. data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +113 -0
  86. data/lib/active_merchant/billing/gateways/skip_jack.rb +442 -0
  87. data/lib/active_merchant/billing/gateways/smart_ps.rb +254 -0
  88. data/lib/active_merchant/billing/gateways/trans_first.rb +127 -0
  89. data/lib/active_merchant/billing/gateways/transax.rb +26 -0
  90. data/lib/active_merchant/billing/gateways/trust_commerce.rb +418 -0
  91. data/lib/active_merchant/billing/gateways/usa_epay.rb +194 -0
  92. data/lib/active_merchant/billing/gateways/verifi.rb +228 -0
  93. data/lib/active_merchant/billing/gateways/viaklix.rb +165 -0
  94. data/lib/active_merchant/billing/gateways/wirecard.rb +318 -0
  95. data/lib/active_merchant/billing/gateways.rb +3 -0
  96. data/lib/active_merchant/billing/integrations/action_view_helper.rb +79 -0
  97. data/lib/active_merchant/billing/integrations/bogus/helper.rb +17 -0
  98. data/lib/active_merchant/billing/integrations/bogus/notification.rb +11 -0
  99. data/lib/active_merchant/billing/integrations/bogus/return.rb +10 -0
  100. data/lib/active_merchant/billing/integrations/bogus.rb +22 -0
  101. data/lib/active_merchant/billing/integrations/chronopay/helper.rb +81 -0
  102. data/lib/active_merchant/billing/integrations/chronopay/notification.rb +156 -0
  103. data/lib/active_merchant/billing/integrations/chronopay/return.rb +10 -0
  104. data/lib/active_merchant/billing/integrations/chronopay.rb +22 -0
  105. data/lib/active_merchant/billing/integrations/gestpay/common.rb +42 -0
  106. data/lib/active_merchant/billing/integrations/gestpay/helper.rb +70 -0
  107. data/lib/active_merchant/billing/integrations/gestpay/notification.rb +83 -0
  108. data/lib/active_merchant/billing/integrations/gestpay/return.rb +10 -0
  109. data/lib/active_merchant/billing/integrations/gestpay.rb +26 -0
  110. data/lib/active_merchant/billing/integrations/helper.rb +93 -0
  111. data/lib/active_merchant/billing/integrations/hi_trust/helper.rb +58 -0
  112. data/lib/active_merchant/billing/integrations/hi_trust/notification.rb +59 -0
  113. data/lib/active_merchant/billing/integrations/hi_trust/return.rb +67 -0
  114. data/lib/active_merchant/billing/integrations/hi_trust.rb +26 -0
  115. data/lib/active_merchant/billing/integrations/nochex/helper.rb +68 -0
  116. data/lib/active_merchant/billing/integrations/nochex/notification.rb +94 -0
  117. data/lib/active_merchant/billing/integrations/nochex/return.rb +10 -0
  118. data/lib/active_merchant/billing/integrations/nochex.rb +87 -0
  119. data/lib/active_merchant/billing/integrations/notification.rb +62 -0
  120. data/lib/active_merchant/billing/integrations/paypal/helper.rb +118 -0
  121. data/lib/active_merchant/billing/integrations/paypal/notification.rb +154 -0
  122. data/lib/active_merchant/billing/integrations/paypal/return.rb +10 -0
  123. data/lib/active_merchant/billing/integrations/paypal.rb +40 -0
  124. data/lib/active_merchant/billing/integrations/quickpay/helper.rb +72 -0
  125. data/lib/active_merchant/billing/integrations/quickpay/notification.rb +74 -0
  126. data/lib/active_merchant/billing/integrations/quickpay.rb +18 -0
  127. data/lib/active_merchant/billing/integrations/return.rb +35 -0
  128. data/lib/active_merchant/billing/integrations/two_checkout/helper.rb +59 -0
  129. data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +114 -0
  130. data/lib/active_merchant/billing/integrations/two_checkout/return.rb +17 -0
  131. data/lib/active_merchant/billing/integrations/two_checkout.rb +23 -0
  132. data/lib/active_merchant/billing/integrations.rb +22 -0
  133. data/lib/active_merchant/billing/response.rb +32 -0
  134. data/lib/active_merchant/lib/connection.rb +171 -0
  135. data/lib/active_merchant/lib/country.rb +319 -0
  136. data/lib/active_merchant/lib/error.rb +4 -0
  137. data/lib/active_merchant/lib/post_data.rb +22 -0
  138. data/lib/active_merchant/lib/posts_data.rb +47 -0
  139. data/lib/active_merchant/lib/requires_parameters.rb +16 -0
  140. data/lib/active_merchant/lib/utils.rb +18 -0
  141. data/lib/active_merchant/lib/validateable.rb +76 -0
  142. data/lib/active_merchant.rb +60 -0
  143. data/lib/certs/cacert.pem +7815 -0
  144. data/lib/support/gateway_support.rb +58 -0
  145. data/script/destroy +14 -0
  146. data/script/generate +14 -0
  147. data/test/fixtures.yml +335 -0
  148. data/test/remote/gateways/remote_authorize_net_cim_test.rb +459 -0
  149. data/test/remote/gateways/remote_authorize_net_test.rb +145 -0
  150. data/test/remote/gateways/remote_beanstream_interac_test.rb +53 -0
  151. data/test/remote/gateways/remote_beanstream_test.rb +150 -0
  152. data/test/remote/gateways/remote_braintree_test.rb +154 -0
  153. data/test/remote/gateways/remote_card_stream_test.rb +148 -0
  154. data/test/remote/gateways/remote_cyber_source_test.rb +144 -0
  155. data/test/remote/gateways/remote_data_cash_test.rb +357 -0
  156. data/test/remote/gateways/remote_efsnet_test.rb +81 -0
  157. data/test/remote/gateways/remote_eway_test.rb +74 -0
  158. data/test/remote/gateways/remote_exact_test.rb +60 -0
  159. data/test/remote/gateways/remote_instapay_test.rb +61 -0
  160. data/test/remote/gateways/remote_linkpoint_test.rb +112 -0
  161. data/test/remote/gateways/remote_merchant_e_solutions_test.rb +173 -0
  162. data/test/remote/gateways/remote_merchant_ware_test.rb +113 -0
  163. data/test/remote/gateways/remote_modern_payments_cim_test.rb +58 -0
  164. data/test/remote/gateways/remote_modern_payments_test.rb +43 -0
  165. data/test/remote/gateways/remote_moneris_test.rb +82 -0
  166. data/test/remote/gateways/remote_net_registry_test.rb +85 -0
  167. data/test/remote/gateways/remote_netbilling_test.rb +70 -0
  168. data/test/remote/gateways/remote_pay_junction_test.rb +143 -0
  169. data/test/remote/gateways/remote_pay_secure_test.rb +39 -0
  170. data/test/remote/gateways/remote_payflow_express_test.rb +50 -0
  171. data/test/remote/gateways/remote_payflow_test.rb +237 -0
  172. data/test/remote/gateways/remote_payflow_uk_test.rb +173 -0
  173. data/test/remote/gateways/remote_payment_express_test.rb +136 -0
  174. data/test/remote/gateways/remote_paymentech_orbital_test.rb +57 -0
  175. data/test/remote/gateways/remote_paypal_express_test.rb +49 -0
  176. data/test/remote/gateways/remote_paypal_test.rb +167 -0
  177. data/test/remote/gateways/remote_plugnpay_test.rb +72 -0
  178. data/test/remote/gateways/remote_protx_test.rb +219 -0
  179. data/test/remote/gateways/remote_psigate_test.rb +50 -0
  180. data/test/remote/gateways/remote_psl_card_test.rb +125 -0
  181. data/test/remote/gateways/remote_quickpay_test.rb +190 -0
  182. data/test/remote/gateways/remote_realex_test.rb +224 -0
  183. data/test/remote/gateways/remote_sage_bankcard_test.rb +109 -0
  184. data/test/remote/gateways/remote_sage_test.rb +87 -0
  185. data/test/remote/gateways/remote_sage_virtual_check_test.rb +62 -0
  186. data/test/remote/gateways/remote_secure_pay_au_test.rb +40 -0
  187. data/test/remote/gateways/remote_secure_pay_tech_test.rb +37 -0
  188. data/test/remote/gateways/remote_secure_pay_test.rb +28 -0
  189. data/test/remote/gateways/remote_skipjack_test.rb +105 -0
  190. data/test/remote/gateways/remote_trans_first_test.rb +34 -0
  191. data/test/remote/gateways/remote_transax_test.rb +112 -0
  192. data/test/remote/gateways/remote_trust_commerce_test.rb +152 -0
  193. data/test/remote/gateways/remote_usa_epay_test.rb +46 -0
  194. data/test/remote/gateways/remote_verifi_test.rb +107 -0
  195. data/test/remote/gateways/remote_viaklix_test.rb +43 -0
  196. data/test/remote/gateways/remote_wirecard_test.rb +111 -0
  197. data/test/remote/integrations/remote_gestpay_integration_test.rb +37 -0
  198. data/test/remote/integrations/remote_paypal_integration_test.rb +26 -0
  199. data/test/test_helper.rb +182 -0
  200. data/test/unit/avs_result_test.rb +59 -0
  201. data/test/unit/base_test.rb +55 -0
  202. data/test/unit/check_test.rb +88 -0
  203. data/test/unit/connection_test.rb +129 -0
  204. data/test/unit/country_code_test.rb +33 -0
  205. data/test/unit/country_test.rb +64 -0
  206. data/test/unit/credit_card_formatting_test.rb +19 -0
  207. data/test/unit/credit_card_methods_test.rb +170 -0
  208. data/test/unit/credit_card_test.rb +318 -0
  209. data/test/unit/cvv_result_test.rb +33 -0
  210. data/test/unit/expiry_date_test.rb +32 -0
  211. data/test/unit/gateways/authorize_net_cim_test.rb +638 -0
  212. data/test/unit/gateways/authorize_net_test.rb +290 -0
  213. data/test/unit/gateways/beanstream_interac_test.rb +51 -0
  214. data/test/unit/gateways/beanstream_test.rb +108 -0
  215. data/test/unit/gateways/bogus_test.rb +46 -0
  216. data/test/unit/gateways/braintree_test.rb +126 -0
  217. data/test/unit/gateways/card_stream_test.rb +90 -0
  218. data/test/unit/gateways/cyber_source_test.rb +188 -0
  219. data/test/unit/gateways/data_cash_test.rb +133 -0
  220. data/test/unit/gateways/efsnet_test.rb +123 -0
  221. data/test/unit/gateways/eway_test.rb +118 -0
  222. data/test/unit/gateways/exact_test.rb +156 -0
  223. data/test/unit/gateways/gateway_test.rb +48 -0
  224. data/test/unit/gateways/instapay_test.rb +102 -0
  225. data/test/unit/gateways/linkpoint_test.rb +167 -0
  226. data/test/unit/gateways/merchant_e_solutions_test.rb +169 -0
  227. data/test/unit/gateways/merchant_ware_test.rb +188 -0
  228. data/test/unit/gateways/modern_payments_cim_test.rb +171 -0
  229. data/test/unit/gateways/moneris_test.rb +158 -0
  230. data/test/unit/gateways/net_registry_test.rb +416 -0
  231. data/test/unit/gateways/netbilling_test.rb +54 -0
  232. data/test/unit/gateways/pay_junction_test.rb +123 -0
  233. data/test/unit/gateways/pay_secure_test.rb +71 -0
  234. data/test/unit/gateways/payflow_express_test.rb +173 -0
  235. data/test/unit/gateways/payflow_express_uk_test.rb +86 -0
  236. data/test/unit/gateways/payflow_test.rb +305 -0
  237. data/test/unit/gateways/payflow_uk_test.rb +30 -0
  238. data/test/unit/gateways/payment_express_test.rb +195 -0
  239. data/test/unit/gateways/paymentech_orbital_test.rb +117 -0
  240. data/test/unit/gateways/paypal_express_test.rb +382 -0
  241. data/test/unit/gateways/paypal_test.rb +520 -0
  242. data/test/unit/gateways/plugnpay_test.rb +86 -0
  243. data/test/unit/gateways/protx_test.rb +139 -0
  244. data/test/unit/gateways/psigate_test.rb +169 -0
  245. data/test/unit/gateways/psl_card_test.rb +64 -0
  246. data/test/unit/gateways/quickpay_test.rb +112 -0
  247. data/test/unit/gateways/realex_test.rb +151 -0
  248. data/test/unit/gateways/sage_bankcard_test.rb +162 -0
  249. data/test/unit/gateways/sage_virtual_check_test.rb +71 -0
  250. data/test/unit/gateways/secure_pay_au_test.rb +207 -0
  251. data/test/unit/gateways/secure_pay_tech_test.rb +44 -0
  252. data/test/unit/gateways/secure_pay_test.rb +87 -0
  253. data/test/unit/gateways/skip_jack_test.rb +133 -0
  254. data/test/unit/gateways/trans_first_test.rb +112 -0
  255. data/test/unit/gateways/trust_commerce_test.rb +90 -0
  256. data/test/unit/gateways/usa_epay_test.rb +128 -0
  257. data/test/unit/gateways/verifi_test.rb +96 -0
  258. data/test/unit/gateways/viaklix_test.rb +78 -0
  259. data/test/unit/gateways/wirecard_test.rb +250 -0
  260. data/test/unit/generators/test_gateway_generator.rb +46 -0
  261. data/test/unit/generators/test_generator_helper.rb +20 -0
  262. data/test/unit/generators/test_integration_generator.rb +53 -0
  263. data/test/unit/integrations/action_view_helper_test.rb +50 -0
  264. data/test/unit/integrations/bogus_module_test.rb +20 -0
  265. data/test/unit/integrations/chronopay_module_test.rb +13 -0
  266. data/test/unit/integrations/gestpay_module_test.rb +14 -0
  267. data/test/unit/integrations/helpers/bogus_helper_test.rb +28 -0
  268. data/test/unit/integrations/helpers/chronopay_helper_test.rb +67 -0
  269. data/test/unit/integrations/helpers/gestpay_helper_test.rb +100 -0
  270. data/test/unit/integrations/helpers/hi_trust_helper_test.rb +16 -0
  271. data/test/unit/integrations/helpers/nochex_helper_test.rb +53 -0
  272. data/test/unit/integrations/helpers/paypal_helper_test.rb +162 -0
  273. data/test/unit/integrations/helpers/quickpay_helper_test.rb +40 -0
  274. data/test/unit/integrations/helpers/two_checkout_helper_test.rb +92 -0
  275. data/test/unit/integrations/hi_trust_module_test.rb +13 -0
  276. data/test/unit/integrations/nochex_module_test.rb +13 -0
  277. data/test/unit/integrations/notifications/chronopay_notification_test.rb +66 -0
  278. data/test/unit/integrations/notifications/gestpay_notification_test.rb +60 -0
  279. data/test/unit/integrations/notifications/hi_trust_notification_test.rb +59 -0
  280. data/test/unit/integrations/notifications/nochex_notification_test.rb +51 -0
  281. data/test/unit/integrations/notifications/notification_test.rb +54 -0
  282. data/test/unit/integrations/notifications/paypal_notification_test.rb +85 -0
  283. data/test/unit/integrations/notifications/quickpay_notification_test.rb +69 -0
  284. data/test/unit/integrations/notifications/two_checkout_notification_test.rb +55 -0
  285. data/test/unit/integrations/paypal_module_test.rb +28 -0
  286. data/test/unit/integrations/quickpay_module_test.rb +9 -0
  287. data/test/unit/integrations/returns/chronopay_return_test.rb +11 -0
  288. data/test/unit/integrations/returns/gestpay_return_test.rb +10 -0
  289. data/test/unit/integrations/returns/hi_trust_return_test.rb +24 -0
  290. data/test/unit/integrations/returns/nochex_return_test.rb +10 -0
  291. data/test/unit/integrations/returns/paypal_return_test.rb +10 -0
  292. data/test/unit/integrations/returns/return_test.rb +11 -0
  293. data/test/unit/integrations/returns/two_checkout_return_test.rb +24 -0
  294. data/test/unit/integrations/two_checkout_module_test.rb +13 -0
  295. data/test/unit/post_data_test.rb +55 -0
  296. data/test/unit/posts_data_test.rb +48 -0
  297. data/test/unit/response_test.rb +28 -0
  298. data/test/unit/utils_test.rb +7 -0
  299. data/test/unit/validateable_test.rb +60 -0
  300. metadata +503 -0
@@ -0,0 +1,219 @@
1
+ require 'test_helper'
2
+
3
+ # Some of the standard tests have been removed at Protx 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 RemoteProtxTest < Test::Unit::TestCase
8
+ # set to true to run the tests in the simulated environment
9
+ ProtxGateway.simulate = false
10
+
11
+ def setup
12
+ @gateway = ProtxGateway.new(fixtures(:protx))
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 = ProtxGateway.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 = ProtxGateway.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,50 @@
1
+ require 'test_helper'
2
+
3
+ class PsigateRemoteTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ Base.mode = :test
7
+ @gateway = PsigateGateway.new(fixtures(:psigate))
8
+
9
+ @amount = 2400
10
+ @creditcard = credit_card('4242424242424242')
11
+ @options = {
12
+ :order_id => generate_unique_id,
13
+ :billing_address => address,
14
+ :email => 'jack@example.com'
15
+ }
16
+ end
17
+
18
+ def test_successful_authorization
19
+ assert response = @gateway.authorize(@amount, @creditcard, @options)
20
+ assert_success response
21
+ assert_equal @options[:order_id], response.authorization
22
+ end
23
+
24
+ def test_successful_purchase
25
+ assert response = @gateway.purchase(@amount, @creditcard, @options)
26
+ assert_success response
27
+ assert_equal @options[:order_id], response.authorization
28
+ end
29
+
30
+ def test_successful_authorization_and_capture
31
+ assert authorization = @gateway.authorize(@amount, @creditcard, @options)
32
+ assert_success authorization
33
+
34
+ assert capture = @gateway.capture(@amount, authorization.authorization)
35
+ assert_success capture
36
+ end
37
+
38
+ def test_successful_purchase_and_credit
39
+ assert purchase = @gateway.purchase(@amount, @creditcard, @options)
40
+ assert_success purchase
41
+
42
+ assert credit = @gateway.credit(@amount, purchase.authorization)
43
+ assert_success credit
44
+ end
45
+
46
+ def test_failed_purchase
47
+ assert response = @gateway.purchase(@amount, @creditcard, @options.update(:test_result => 'D'))
48
+ assert_failure response
49
+ end
50
+ end
@@ -0,0 +1,125 @@
1
+ # Author:: MoneySpyder, http://moneyspyder.co.uk
2
+
3
+ require 'test_helper'
4
+
5
+ class RemotePslCardTest < Test::Unit::TestCase
6
+
7
+ def setup
8
+ @gateway = PslCardGateway.new(fixtures(:psl_card))
9
+
10
+ @uk_maestro = CreditCard.new(fixtures(:psl_maestro))
11
+ @uk_maestro_address = fixtures(:psl_maestro_address)
12
+
13
+ @solo = CreditCard.new(fixtures(:psl_solo))
14
+ @solo_address = fixtures(:psl_solo_address)
15
+
16
+ @visa = CreditCard.new(fixtures(:psl_visa))
17
+ @visa_address = fixtures(:psl_visa_address)
18
+
19
+ @visa_debit = CreditCard.new(fixtures(:psl_visa_debit))
20
+ @visa_address = fixtures(:psl_visa_debit_address)
21
+
22
+ # The test results are determined by the amount of the transaction
23
+ @accept_amount = 1000
24
+ @referred_amount = 6000
25
+ @declined_amount = 11000
26
+ @keep_card_amount = 15000
27
+ end
28
+
29
+ def test_successful_visa_purchase
30
+ response = @gateway.purchase(@accept_amount, @visa,
31
+ :billing_address => @visa_address
32
+ )
33
+ assert_success response
34
+ assert response.test?
35
+ end
36
+
37
+ def test_successful_visa_debit_purchase
38
+ response = @gateway.purchase(@accept_amount, @visa_debit,
39
+ :billing_address => @visa_debit_address
40
+ )
41
+ assert_success response
42
+ end
43
+
44
+ # Fix regression discovered in production
45
+ def test_visa_debit_purchase_should_not_send_debit_info_if_present
46
+ @visa_debit.start_month = "07"
47
+ response = @gateway.purchase(@accept_amount, @visa_debit,
48
+ :billing_address => @visa_debit_address
49
+ )
50
+ assert_success response
51
+ end
52
+
53
+ def test_successful_visa_purchase_specifying_currency
54
+ response = @gateway.purchase(@accept_amount, @visa,
55
+ :billing_address => @visa_address,
56
+ :currency => 'GBP'
57
+ )
58
+ assert_success response
59
+ assert response.test?
60
+ end
61
+
62
+ def test_successful_solo_purchase
63
+ response = @gateway.purchase(@accept_amount, @solo,
64
+ :billing_address => @solo_address
65
+ )
66
+ assert_success response
67
+ assert response.test?
68
+ end
69
+
70
+ def test_referred_purchase
71
+ response = @gateway.purchase(@referred_amount, @uk_maestro,
72
+ :billing_address => @uk_maestro_address
73
+ )
74
+ assert_failure response
75
+ assert response.test?
76
+ end
77
+
78
+ def test_declined_purchase
79
+ response = @gateway.purchase(@declined_amount, @uk_maestro,
80
+ :billing_address => @uk_maestro_address
81
+ )
82
+ assert_failure response
83
+ assert response.test?
84
+ end
85
+
86
+ def test_declined_keep_card_purchase
87
+ response = @gateway.purchase(@keep_card_amount, @uk_maestro,
88
+ :billing_address => @uk_maestro_address
89
+ )
90
+ assert_failure response
91
+ assert response.test?
92
+ end
93
+
94
+ def test_successful_authorization
95
+ response = @gateway.authorize(@accept_amount, @visa,
96
+ :billing_address => @visa_address
97
+ )
98
+ assert_success response
99
+ assert response.test?
100
+ end
101
+
102
+ def test_no_login
103
+ @gateway = PslCardGateway.new(
104
+ :login => ''
105
+ )
106
+ response = @gateway.authorize(@accept_amount, @uk_maestro,
107
+ :billing_address => @uk_maestro_address
108
+ )
109
+ assert_failure response
110
+ assert response.test?
111
+ end
112
+
113
+ def test_successful_authorization_and_capture
114
+ authorization = @gateway.authorize(@accept_amount, @visa,
115
+ :billing_address => @visa_address
116
+ )
117
+ assert_success authorization
118
+ assert authorization.test?
119
+
120
+ capture = @gateway.capture(@accept_amount, authorization.authorization)
121
+
122
+ assert_success capture
123
+ assert capture.test?
124
+ end
125
+ end
@@ -0,0 +1,190 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteQuickpayTest < Test::Unit::TestCase
4
+ def setup
5
+ @gateway = QuickpayGateway.new(fixtures(:quickpay))
6
+
7
+ @amount = 100
8
+ @options = {
9
+ :order_id => generate_unique_id[0...10],
10
+ :billing_address => address
11
+ }
12
+
13
+ @visa_no_cvv2 = credit_card('4000300011112220', :verification_value => nil)
14
+ @visa = credit_card('4000100011112224')
15
+ @dankort = credit_card('5019717010103742')
16
+ @visa_dankort = credit_card('4571100000000000')
17
+ @electron_dk = credit_card('4175001000000000')
18
+ @diners_club = credit_card('30401000000000')
19
+ @diners_club_dk = credit_card('36148010000000')
20
+ @maestro = credit_card('5020100000000000')
21
+ @maestro_dk = credit_card('6769271000000000')
22
+ @mastercard_dk = credit_card('5413031000000000')
23
+ @amex_dk = credit_card('3747100000000000')
24
+ @amex = credit_card('3700100000000000')
25
+
26
+ # forbrugsforeningen doesn't use a verification value
27
+ @forbrugsforeningen = credit_card('6007221000000000', :verification_value => nil)
28
+ end
29
+
30
+ def test_successful_purchase
31
+ assert response = @gateway.purchase(@amount, @visa, @options)
32
+ assert_equal 'OK', response.message
33
+ assert_equal 'DKK', response.params['currency']
34
+ assert_success response
35
+ assert !response.authorization.blank?
36
+ end
37
+
38
+ def test_successful_usd_purchase
39
+ assert response = @gateway.purchase(@amount, @visa, @options.update(:currency => 'USD'))
40
+ assert_equal 'OK', response.message
41
+ assert_equal 'USD', response.params['currency']
42
+ assert_success response
43
+ assert !response.authorization.blank?
44
+ end
45
+
46
+ def test_successful_dankort_authorization
47
+ assert response = @gateway.authorize(@amount, @dankort, @options)
48
+ assert_success response
49
+ assert !response.authorization.blank?
50
+ assert_equal 'Dankort', response.params['cardtype']
51
+ end
52
+
53
+ def test_successful_visa_dankort_authorization
54
+ assert response = @gateway.authorize(@amount, @visa_dankort, @options)
55
+ assert_success response
56
+ assert !response.authorization.blank?
57
+ assert_equal 'Visa-Dankort', response.params['cardtype']
58
+ end
59
+
60
+ def test_successful_visa_electron_authorization
61
+ assert response = @gateway.authorize(@amount, @electron_dk, @options)
62
+ assert_success response
63
+ assert !response.authorization.blank?
64
+ assert_equal 'Visa-Electron-DK', response.params['cardtype']
65
+ end
66
+
67
+ def test_successful_diners_club_authorization
68
+ assert response = @gateway.authorize(@amount, @diners_club, @options)
69
+ assert_success response
70
+ assert !response.authorization.blank?
71
+ assert_equal 'Diners', response.params['cardtype']
72
+ end
73
+
74
+ def test_successful_diners_club_dk_authorization
75
+ assert response = @gateway.authorize(@amount, @diners_club_dk, @options)
76
+ assert_success response
77
+ assert !response.authorization.blank?
78
+ assert_equal 'Diners-DK', response.params['cardtype']
79
+ end
80
+
81
+ def test_successful_maestro_authorization
82
+ assert response = @gateway.authorize(@amount, @maestro, @options)
83
+ assert_success response
84
+ assert !response.authorization.blank?
85
+ assert_equal 'Maestro', response.params['cardtype']
86
+ end
87
+
88
+ def test_successful_maestro_dk_authorization
89
+ assert response = @gateway.authorize(@amount, @maestro_dk, @options)
90
+ assert_success response
91
+ assert !response.authorization.blank?
92
+ assert_equal 'Maestro-DK', response.params['cardtype']
93
+ end
94
+
95
+ def test_successful_mastercard_dk_authorization
96
+ assert response = @gateway.authorize(@amount, @mastercard_dk, @options)
97
+ assert_success response
98
+ assert !response.authorization.blank?
99
+ assert_equal 'MasterCard-DK', response.params['cardtype']
100
+ end
101
+
102
+ def test_successful_american_express_dk_authorization
103
+ assert response = @gateway.authorize(@amount, @amex_dk, @options)
104
+ assert_success response
105
+ assert !response.authorization.blank?
106
+ assert_equal 'AmericanExpress-DK', response.params['cardtype']
107
+ end
108
+
109
+ def test_successful_american_express_authorization
110
+ assert response = @gateway.authorize(@amount, @amex, @options)
111
+ assert_success response
112
+ assert !response.authorization.blank?
113
+ assert_equal 'AmericanExpress', response.params['cardtype']
114
+ end
115
+
116
+ def test_successful_forbrugsforeningen_authorization
117
+ assert response = @gateway.authorize(@amount, @forbrugsforeningen, @options)
118
+ assert_success response
119
+ assert !response.authorization.blank?
120
+ assert_equal 'FBG-1886', response.params['cardtype']
121
+ end
122
+
123
+ def test_unsuccessful_purchase_with_missing_cvv2
124
+ assert response = @gateway.purchase(@amount, @visa_no_cvv2, @options)
125
+ # Quickpay has made the cvd field optional in order to support forbrugsforeningen cards which don't have them
126
+ assert_equal 'OK', response.message
127
+ assert_success response
128
+ assert !response.authorization.blank?
129
+ end
130
+
131
+ def test_successful_authorize_and_capture
132
+ assert auth = @gateway.authorize(@amount, @visa, @options)
133
+ assert_success auth
134
+ assert_equal 'OK', auth.message
135
+ assert auth.authorization
136
+ assert capture = @gateway.capture(@amount, auth.authorization)
137
+ assert_success capture
138
+ assert_equal 'OK', capture.message
139
+ end
140
+
141
+ def test_failed_capture
142
+ assert response = @gateway.capture(@amount, '')
143
+ assert_failure response
144
+ assert_equal 'Missing field: transaction', response.message
145
+ end
146
+
147
+ def test_successful_purchase_and_void
148
+ assert auth = @gateway.authorize(@amount, @visa, @options)
149
+ assert_success auth
150
+ assert_equal 'OK', auth.message
151
+ assert auth.authorization
152
+ assert void = @gateway.void(auth.authorization)
153
+ assert_success void
154
+ assert_equal 'OK', void.message
155
+ end
156
+
157
+ def test_successful_authorization_capture_and_credit
158
+ assert auth = @gateway.authorize(@amount, @visa, @options)
159
+ assert_success auth
160
+ assert capture = @gateway.capture(@amount, auth.authorization)
161
+ assert_success capture
162
+ assert credit = @gateway.credit(@amount, auth.authorization)
163
+ assert_success credit
164
+ assert_equal 'OK', credit.message
165
+ end
166
+
167
+ def test_successful_purchase_and_credit
168
+ assert purchase = @gateway.purchase(@amount, @visa, @options)
169
+ assert_success purchase
170
+ assert credit = @gateway.credit(@amount, purchase.authorization)
171
+ assert_success credit
172
+ end
173
+
174
+ def test_successful_store_and_reference_purchase
175
+ assert store = @gateway.store(@visa, @options.merge(:description => "New subscription"))
176
+ assert_success store
177
+ assert purchase = @gateway.purchase(@amount, store.authorization, @options.merge(:order_id => generate_unique_id[0...10]))
178
+ assert_success purchase
179
+ end
180
+
181
+ def test_invalid_login
182
+ gateway = QuickpayGateway.new(
183
+ :login => '',
184
+ :password => ''
185
+ )
186
+ assert response = gateway.purchase(@amount, @visa, @options)
187
+ assert_equal 'Invalid merchant id', response.message
188
+ assert_failure response
189
+ end
190
+ end