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,171 @@
1
+ require 'test_helper'
2
+
3
+ class ModernPaymentsCimTest < Test::Unit::TestCase
4
+ def setup
5
+ Base.mode = :test
6
+
7
+ @gateway = ModernPaymentsCimGateway.new(
8
+ :login => 'login',
9
+ :password => 'password'
10
+ )
11
+
12
+ @credit_card = credit_card
13
+ @amount = 100
14
+
15
+ @options = {
16
+ :order_id => '1',
17
+ :billing_address => address,
18
+ :description => 'Store Purchase'
19
+ }
20
+ end
21
+
22
+ def test_create_customer
23
+ @gateway.expects(:ssl_post).returns(successful_create_customer_response)
24
+
25
+ assert response = @gateway.create_customer(@options)
26
+ assert_instance_of Response, response
27
+ assert response.test?
28
+ assert_success response
29
+ assert_equal "6677348", response.params["create_customer_result"]
30
+ end
31
+
32
+ def test_modify_customer_credit_card
33
+ @gateway.expects(:ssl_post).returns(successful_modify_customer_credit_card_response)
34
+
35
+ assert response = @gateway.modify_customer_credit_card("10001", @credit_card)
36
+ assert_instance_of Response, response
37
+ assert response.test?
38
+ assert_success response
39
+ assert_equal "6677757", response.params["modify_customer_credit_card_result"]
40
+ end
41
+
42
+ def test_successful_credit_card_authorization
43
+ @gateway.expects(:ssl_post).returns(successful_credit_card_authorization_response)
44
+
45
+ assert response = @gateway.authorize_credit_card_payment("10001", @amount)
46
+ assert_instance_of Response, response
47
+ assert response.test?
48
+
49
+ assert_success response
50
+ assert_equal "999", response.params["trans_id"]
51
+ assert_equal "RESPONSECODE=A,AUTHCODE=XXXXXX,DECLINEREASON=,AVSDATA=NYZ,TRANSID=C00 TESTXXXXXXX", response.params["auth_string"]
52
+ assert_equal "RESPONSECODE=A,AUTHCODE=XXXXXX,DECLINEREASON=,AVSDATA=NYZ,TRANSID=C00 TESTXXXXXXX", response.params["message_text"]
53
+ assert_equal "false", response.params["approved"]
54
+ assert_equal nil, response.params["avs_code"]
55
+ assert_equal nil, response.params["auth_code"]
56
+ assert_equal nil, response.params["trans_code"]
57
+ assert_equal "999", response.authorization
58
+ assert_match /RESPONSECODE=A/, response.params["message_text"]
59
+ end
60
+
61
+ def test_unsuccessful_credit_card_authorization
62
+ @gateway.expects(:ssl_post).returns(unsuccessful_credit_card_authorization_response)
63
+
64
+ assert response = @gateway.authorize_credit_card_payment("10001", @amount)
65
+ assert_instance_of Response, response
66
+ assert response.test?
67
+ assert_success response
68
+ assert_equal "999", response.authorization
69
+ assert_match /RESPONSECODE=D/, response.params["message_text"]
70
+ end
71
+
72
+ def test_soap_fault_response
73
+ @gateway.expects(:ssl_post).returns(soap_fault_response)
74
+
75
+ assert response = @gateway.create_customer(@options)
76
+ assert_instance_of Response, response
77
+ assert response.test?
78
+ assert_failure response
79
+ assert_equal "soap:Client", response.params["faultcode"]
80
+ end
81
+
82
+ private
83
+
84
+ def successful_create_customer_response
85
+ <<-XML
86
+ <?xml version="1.0" encoding="utf-8"?>
87
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
88
+ <soap:Body>
89
+ <CreateCustomerResponse xmlns="http://secure.modpay.com:81/ws/">
90
+ <CreateCustomerResult>6677348</CreateCustomerResult>
91
+ </CreateCustomerResponse>
92
+ </soap:Body>
93
+ </soap:Envelope>
94
+ XML
95
+ end
96
+
97
+ def successful_modify_customer_credit_card_response
98
+ <<-XML
99
+ <?xml version="1.0" encoding="utf-8"?>
100
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
101
+ <soap:Body>
102
+ <ModifyCustomerCreditCardResponse xmlns="http://secure.modpay.com:81/ws/">
103
+ <ModifyCustomerCreditCardResult>6677757</ModifyCustomerCreditCardResult>
104
+ </ModifyCustomerCreditCardResponse>
105
+ </soap:Body>
106
+ </soap:Envelope>
107
+ XML
108
+ end
109
+
110
+ def successful_credit_card_authorization_response
111
+ <<-XML
112
+ <?xml version="1.0" encoding="utf-8"?>
113
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
114
+ <soap:Body>
115
+ <AuthorizeCreditCardPaymentResponse xmlns="https://secure.modpay.com/netservices/test/">
116
+ <AuthorizeCreditCardPaymentResult>
117
+ <transId>999</transId>
118
+ <authCode/>
119
+ <avsCode/>
120
+ <transCode/>
121
+ <authString>RESPONSECODE=A,AUTHCODE=XXXXXX,DECLINEREASON=,AVSDATA=NYZ,TRANSID=C00 TESTXXXXXXX</authString>
122
+ <messageText>RESPONSECODE=A,AUTHCODE=XXXXXX,DECLINEREASON=,AVSDATA=NYZ,TRANSID=C00 TESTXXXXXXX</messageText>
123
+ <approved>false</approved>
124
+ </AuthorizeCreditCardPaymentResult>
125
+ </AuthorizeCreditCardPaymentResponse>
126
+ </soap:Body>
127
+ </soap:Envelope>
128
+ XML
129
+ end
130
+
131
+ def unsuccessful_credit_card_authorization_response
132
+ <<-XML
133
+ <?xml version="1.0" encoding="utf-8"?>
134
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
135
+ <soap:Body>
136
+ <AuthorizeCreditCardPaymentResponse xmlns="https://secure.modpay.com/netservices/test/">
137
+ <AuthorizeCreditCardPaymentResult>
138
+ <transId>999</transId>
139
+ <authCode/>
140
+ <avsCode/>
141
+ <transCode/>
142
+ <authString>RESPONSECODE=D,AUTHCODE=,DECLINEREASON.1.TAG=,DECLINEREASON.1.ERRORCLASS=card declined,DECLINEREASON.1.PARAM1=05:DECLINE,DECLINEREASON.1.PARAM2=The authorization is declined,DECLINEREASON.1.MESSAGE=Card was declined: The authorization is declined,AVSDATA</authString>
143
+ <messageText>RESPONSECODE=D,AUTHCODE=,DECLINEREASON.1.TAG=,DECLINEREASON.1.ERRORCLASS=card declined,DECLINEREASON.1.PARAM1=05:DECLINE,DECLINEREASON.1.PARAM2=The authorization is declined,DECLINEREASON.1.MESSAGE=Card was declined: The authorization is declined,AVSDATA</messageText>
144
+ <approved>false</approved>
145
+ </AuthorizeCreditCardPaymentResult>
146
+ </AuthorizeCreditCardPaymentResponse>
147
+ </soap:Body>
148
+ </soap:Envelope>
149
+ XML
150
+ end
151
+
152
+ def soap_fault_response
153
+ <<-XML
154
+ <?xml version="1.0" encoding="utf-8"?>
155
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
156
+ <soap:Body>
157
+ <soap:Fault>
158
+ <faultcode>soap:Client</faultcode>
159
+ <faultstring>System.Web.Services.Protocols.SoapException: Server did not recognize the value of HTTP Header SOAPAction: h heheheh http://secure.modpay.com:81/ws/CreateCustomer.
160
+ at System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
161
+ at System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message)
162
+ at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
163
+ at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean&amp; abortProcessing)</faultstring>
164
+ <detail/>
165
+ </soap:Fault>
166
+ </soap:Body>
167
+ </soap:Envelope>
168
+ XML
169
+ end
170
+
171
+ end
@@ -0,0 +1,158 @@
1
+ require 'test_helper'
2
+
3
+ class MonerisTest < Test::Unit::TestCase
4
+ def setup
5
+ Base.mode = :test
6
+
7
+ @gateway = MonerisGateway.new(
8
+ :login => 'store1',
9
+ :password => 'yesguy'
10
+ )
11
+
12
+ @amount = 100
13
+ @credit_card = credit_card('4242424242424242')
14
+ @options = { :order_id => '1', :billing_address => address }
15
+ end
16
+
17
+ def test_successful_purchase
18
+ @gateway.expects(:ssl_post).returns(successful_purchase_response)
19
+
20
+ assert response = @gateway.authorize(100, @credit_card, @options)
21
+ assert_success response
22
+ assert_equal '58-0_3;1026.1', response.authorization
23
+ end
24
+
25
+ def test_failed_purchase
26
+ @gateway.expects(:ssl_post).returns(failed_purchase_response)
27
+
28
+ assert response = @gateway.authorize(100, @credit_card, @options)
29
+ assert_failure response
30
+ end
31
+
32
+ def test_amount_style
33
+ assert_equal '10.34', @gateway.send(:amount, 1034)
34
+
35
+ assert_raise(ArgumentError) do
36
+ @gateway.send(:amount, '10.34')
37
+ end
38
+ end
39
+
40
+ def test_purchase_is_valid_xml
41
+
42
+ params = {
43
+ :order_id => "order1",
44
+ :amount => "1.01",
45
+ :pan => "4242424242424242",
46
+ :expdate => "0303",
47
+ :crypt_type => 7,
48
+ }
49
+
50
+ assert data = @gateway.send(:post_data, 'preauth', params)
51
+ assert REXML::Document.new(data)
52
+ assert_equal xml_capture_fixture.size, data.size
53
+ end
54
+
55
+ def test_purchase_is_valid_xml
56
+
57
+ params = {
58
+ :order_id => "order1",
59
+ :amount => "1.01",
60
+ :pan => "4242424242424242",
61
+ :expdate => "0303",
62
+ :crypt_type => 7,
63
+ }
64
+
65
+ assert data = @gateway.send(:post_data, 'purchase', params)
66
+ assert REXML::Document.new(data)
67
+ assert_equal xml_purchase_fixture.size, data.size
68
+ end
69
+
70
+ def test_capture_is_valid_xml
71
+
72
+ params = {
73
+ :order_id => "order1",
74
+ :amount => "1.01",
75
+ :pan => "4242424242424242",
76
+ :expdate => "0303",
77
+ :crypt_type => 7,
78
+ }
79
+
80
+ assert data = @gateway.send(:post_data, 'preauth', params)
81
+ assert REXML::Document.new(data)
82
+ assert_equal xml_capture_fixture.size, data.size
83
+ end
84
+
85
+ def test_supported_countries
86
+ assert_equal ['CA'], MonerisGateway.supported_countries
87
+ end
88
+
89
+ def test_supported_card_types
90
+ assert_equal [:visa, :master, :american_express], MonerisGateway.supported_cardtypes
91
+ end
92
+
93
+ def test_should_raise_error_if_transaction_param_empty_on_credit_request
94
+ [nil, '', '1234'].each do |invalid_transaction_param|
95
+ assert_raise(ArgumentError) { @gateway.void(invalid_transaction_param) }
96
+ end
97
+ end
98
+
99
+ private
100
+ def successful_purchase_response
101
+ <<-RESPONSE
102
+ <?xml version="1.0"?>
103
+ <response>
104
+ <receipt>
105
+ <ReceiptId>1026.1</ReceiptId>
106
+ <ReferenceNum>661221050010170010</ReferenceNum>
107
+ <ResponseCode>027</ResponseCode>
108
+ <ISO>01</ISO>
109
+ <AuthCode>013511</AuthCode>
110
+ <TransTime>18:41:13</TransTime>
111
+ <TransDate>2008-01-05</TransDate>
112
+ <TransType>00</TransType>
113
+ <Complete>true</Complete>
114
+ <Message>APPROVED * =</Message>
115
+ <TransAmount>1.00</TransAmount>
116
+ <CardType>V</CardType>
117
+ <TransID>58-0_3</TransID>
118
+ <TimedOut>false</TimedOut>
119
+ </receipt>
120
+ </response>
121
+
122
+ RESPONSE
123
+ end
124
+
125
+ def failed_purchase_response
126
+ <<-RESPONSE
127
+ <?xml version="1.0"?>
128
+ <response>
129
+ <receipt>
130
+ <ReceiptId>1026.1</ReceiptId>
131
+ <ReferenceNum>661221050010170010</ReferenceNum>
132
+ <ResponseCode>481</ResponseCode>
133
+ <ISO>01</ISO>
134
+ <AuthCode>013511</AuthCode>
135
+ <TransTime>18:41:13</TransTime>
136
+ <TransDate>2008-01-05</TransDate>
137
+ <TransType>00</TransType>
138
+ <Complete>true</Complete>
139
+ <Message>DECLINED * =</Message>
140
+ <TransAmount>1.00</TransAmount>
141
+ <CardType>V</CardType>
142
+ <TransID>97-2-0</TransID>
143
+ <TimedOut>false</TimedOut>
144
+ </receipt>
145
+ </response>
146
+
147
+ RESPONSE
148
+ end
149
+
150
+ def xml_purchase_fixture
151
+ '<request><store_id>store1</store_id><api_token>yesguy</api_token><purchase><amount>1.01</amount><pan>4242424242424242</pan><expdate>0303</expdate><crypt_type>7</crypt_type><order_id>order1</order_id></purchase></request>'
152
+ end
153
+
154
+ def xml_capture_fixture
155
+ '<request><store_id>store1</store_id><api_token>yesguy</api_token><preauth><amount>1.01</amount><pan>4242424242424242</pan><expdate>0303</expdate><crypt_type>7</crypt_type><order_id>order1</order_id></preauth></request>'
156
+ end
157
+
158
+ end