mattbauer-activemerchant 1.4.2

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