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.
- data/CHANGELOG +459 -0
- data/CONTRIBUTERS +118 -0
- data/MIT-LICENSE +20 -0
- data/README +134 -0
- data/Rakefile +153 -0
- data/gem-public_cert.pem +20 -0
- data/init.rb +3 -0
- data/lib/active_merchant.rb +60 -0
- data/lib/active_merchant/billing/avs_result.rb +98 -0
- data/lib/active_merchant/billing/base.rb +57 -0
- data/lib/active_merchant/billing/check.rb +68 -0
- data/lib/active_merchant/billing/credit_card.rb +159 -0
- data/lib/active_merchant/billing/credit_card_formatting.rb +21 -0
- data/lib/active_merchant/billing/credit_card_methods.rb +125 -0
- data/lib/active_merchant/billing/cvv_result.rb +38 -0
- data/lib/active_merchant/billing/expiry_date.rb +34 -0
- data/lib/active_merchant/billing/gateway.rb +158 -0
- data/lib/active_merchant/billing/gateways.rb +3 -0
- data/lib/active_merchant/billing/gateways/authorize_net.rb +657 -0
- data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +703 -0
- data/lib/active_merchant/billing/gateways/beanstream.rb +102 -0
- data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +233 -0
- data/lib/active_merchant/billing/gateways/beanstream_interac.rb +54 -0
- data/lib/active_merchant/billing/gateways/bogus.rb +98 -0
- data/lib/active_merchant/billing/gateways/braintree.rb +17 -0
- data/lib/active_merchant/billing/gateways/card_stream.rb +230 -0
- data/lib/active_merchant/billing/gateways/cyber_source.rb +406 -0
- data/lib/active_merchant/billing/gateways/data_cash.rb +595 -0
- data/lib/active_merchant/billing/gateways/efsnet.rb +229 -0
- data/lib/active_merchant/billing/gateways/elavon.rb +106 -0
- data/lib/active_merchant/billing/gateways/eway.rb +277 -0
- data/lib/active_merchant/billing/gateways/exact.rb +222 -0
- data/lib/active_merchant/billing/gateways/first_pay.rb +172 -0
- data/lib/active_merchant/billing/gateways/instapay.rb +164 -0
- data/lib/active_merchant/billing/gateways/linkpoint.rb +396 -0
- data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +154 -0
- data/lib/active_merchant/billing/gateways/merchant_ware.rb +283 -0
- data/lib/active_merchant/billing/gateways/modern_payments.rb +36 -0
- data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +214 -0
- data/lib/active_merchant/billing/gateways/moneris.rb +295 -0
- data/lib/active_merchant/billing/gateways/moneris_usa.rb +258 -0
- data/lib/active_merchant/billing/gateways/net_registry.rb +189 -0
- data/lib/active_merchant/billing/gateways/netbilling.rb +168 -0
- data/lib/active_merchant/billing/gateways/ogone.rb +259 -0
- data/lib/active_merchant/billing/gateways/pay_junction.rb +392 -0
- data/lib/active_merchant/billing/gateways/pay_secure.rb +120 -0
- data/lib/active_merchant/billing/gateways/payflow.rb +236 -0
- data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +207 -0
- data/lib/active_merchant/billing/gateways/payflow/payflow_express_response.rb +39 -0
- data/lib/active_merchant/billing/gateways/payflow/payflow_response.rb +13 -0
- data/lib/active_merchant/billing/gateways/payflow_express.rb +138 -0
- data/lib/active_merchant/billing/gateways/payflow_express_uk.rb +15 -0
- data/lib/active_merchant/billing/gateways/payflow_uk.rb +21 -0
- data/lib/active_merchant/billing/gateways/payment_express.rb +230 -0
- data/lib/active_merchant/billing/gateways/paypal.rb +121 -0
- data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +325 -0
- data/lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb +38 -0
- data/lib/active_merchant/billing/gateways/paypal_ca.rb +13 -0
- data/lib/active_merchant/billing/gateways/paypal_express.rb +130 -0
- data/lib/active_merchant/billing/gateways/paypal_express_common.rb +20 -0
- data/lib/active_merchant/billing/gateways/plugnpay.rb +292 -0
- data/lib/active_merchant/billing/gateways/psigate.rb +214 -0
- data/lib/active_merchant/billing/gateways/psl_card.rb +306 -0
- data/lib/active_merchant/billing/gateways/quickpay.rb +213 -0
- data/lib/active_merchant/billing/gateways/realex.rb +200 -0
- data/lib/active_merchant/billing/gateways/sage.rb +146 -0
- data/lib/active_merchant/billing/gateways/sage/sage_bankcard.rb +88 -0
- data/lib/active_merchant/billing/gateways/sage/sage_core.rb +110 -0
- data/lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb +97 -0
- data/lib/active_merchant/billing/gateways/sage_pay.rb +308 -0
- data/lib/active_merchant/billing/gateways/secure_pay.rb +31 -0
- data/lib/active_merchant/billing/gateways/secure_pay_au.rb +157 -0
- data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +113 -0
- data/lib/active_merchant/billing/gateways/skip_jack.rb +442 -0
- data/lib/active_merchant/billing/gateways/smart_ps.rb +254 -0
- data/lib/active_merchant/billing/gateways/trans_first.rb +127 -0
- data/lib/active_merchant/billing/gateways/transax.rb +26 -0
- data/lib/active_merchant/billing/gateways/trust_commerce.rb +418 -0
- data/lib/active_merchant/billing/gateways/usa_epay.rb +194 -0
- data/lib/active_merchant/billing/gateways/verifi.rb +228 -0
- data/lib/active_merchant/billing/gateways/viaklix.rb +189 -0
- data/lib/active_merchant/billing/gateways/wirecard.rb +318 -0
- data/lib/active_merchant/billing/integrations.rb +22 -0
- data/lib/active_merchant/billing/integrations/action_view_helper.rb +79 -0
- data/lib/active_merchant/billing/integrations/bogus.rb +22 -0
- data/lib/active_merchant/billing/integrations/bogus/helper.rb +17 -0
- data/lib/active_merchant/billing/integrations/bogus/notification.rb +11 -0
- data/lib/active_merchant/billing/integrations/bogus/return.rb +10 -0
- data/lib/active_merchant/billing/integrations/chronopay.rb +22 -0
- data/lib/active_merchant/billing/integrations/chronopay/helper.rb +81 -0
- data/lib/active_merchant/billing/integrations/chronopay/notification.rb +156 -0
- data/lib/active_merchant/billing/integrations/chronopay/return.rb +10 -0
- data/lib/active_merchant/billing/integrations/gestpay.rb +26 -0
- data/lib/active_merchant/billing/integrations/gestpay/common.rb +42 -0
- data/lib/active_merchant/billing/integrations/gestpay/helper.rb +70 -0
- data/lib/active_merchant/billing/integrations/gestpay/notification.rb +83 -0
- data/lib/active_merchant/billing/integrations/gestpay/return.rb +10 -0
- data/lib/active_merchant/billing/integrations/helper.rb +93 -0
- data/lib/active_merchant/billing/integrations/hi_trust.rb +26 -0
- data/lib/active_merchant/billing/integrations/hi_trust/helper.rb +58 -0
- data/lib/active_merchant/billing/integrations/hi_trust/notification.rb +59 -0
- data/lib/active_merchant/billing/integrations/hi_trust/return.rb +67 -0
- data/lib/active_merchant/billing/integrations/nochex.rb +87 -0
- data/lib/active_merchant/billing/integrations/nochex/helper.rb +68 -0
- data/lib/active_merchant/billing/integrations/nochex/notification.rb +94 -0
- data/lib/active_merchant/billing/integrations/nochex/return.rb +10 -0
- data/lib/active_merchant/billing/integrations/notification.rb +62 -0
- data/lib/active_merchant/billing/integrations/paypal.rb +40 -0
- data/lib/active_merchant/billing/integrations/paypal/helper.rb +119 -0
- data/lib/active_merchant/billing/integrations/paypal/notification.rb +154 -0
- data/lib/active_merchant/billing/integrations/paypal/return.rb +10 -0
- data/lib/active_merchant/billing/integrations/quickpay.rb +18 -0
- data/lib/active_merchant/billing/integrations/quickpay/helper.rb +72 -0
- data/lib/active_merchant/billing/integrations/quickpay/notification.rb +74 -0
- data/lib/active_merchant/billing/integrations/return.rb +35 -0
- data/lib/active_merchant/billing/integrations/two_checkout.rb +23 -0
- data/lib/active_merchant/billing/integrations/two_checkout/helper.rb +59 -0
- data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +114 -0
- data/lib/active_merchant/billing/integrations/two_checkout/return.rb +17 -0
- data/lib/active_merchant/billing/response.rb +32 -0
- data/lib/active_merchant/lib/connection.rb +170 -0
- data/lib/active_merchant/lib/country.rb +319 -0
- data/lib/active_merchant/lib/error.rb +4 -0
- data/lib/active_merchant/lib/post_data.rb +22 -0
- data/lib/active_merchant/lib/posts_data.rb +47 -0
- data/lib/active_merchant/lib/requires_parameters.rb +16 -0
- data/lib/active_merchant/lib/utils.rb +18 -0
- data/lib/active_merchant/lib/validateable.rb +76 -0
- data/lib/certs/cacert.pem +7815 -0
- data/lib/support/gateway_support.rb +58 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/test/fixtures.yml +353 -0
- data/test/remote/gateways/remote_authorize_net_cim_test.rb +459 -0
- data/test/remote/gateways/remote_authorize_net_test.rb +145 -0
- data/test/remote/gateways/remote_beanstream_interac_test.rb +53 -0
- data/test/remote/gateways/remote_beanstream_test.rb +150 -0
- data/test/remote/gateways/remote_braintree_test.rb +154 -0
- data/test/remote/gateways/remote_card_stream_test.rb +148 -0
- data/test/remote/gateways/remote_cyber_source_test.rb +144 -0
- data/test/remote/gateways/remote_data_cash_test.rb +357 -0
- data/test/remote/gateways/remote_efsnet_test.rb +81 -0
- data/test/remote/gateways/remote_elavon_test.rb +66 -0
- data/test/remote/gateways/remote_eway_test.rb +74 -0
- data/test/remote/gateways/remote_exact_test.rb +60 -0
- data/test/remote/gateways/remote_first_pay_test.rb +87 -0
- data/test/remote/gateways/remote_instapay_test.rb +61 -0
- data/test/remote/gateways/remote_linkpoint_test.rb +112 -0
- data/test/remote/gateways/remote_merchant_e_solutions_test.rb +173 -0
- data/test/remote/gateways/remote_merchant_ware_test.rb +113 -0
- data/test/remote/gateways/remote_modern_payments_cim_test.rb +58 -0
- data/test/remote/gateways/remote_modern_payments_test.rb +43 -0
- data/test/remote/gateways/remote_moneris_test.rb +118 -0
- data/test/remote/gateways/remote_moneris_usa_test.rb +115 -0
- data/test/remote/gateways/remote_net_registry_test.rb +85 -0
- data/test/remote/gateways/remote_netbilling_test.rb +70 -0
- data/test/remote/gateways/remote_ogone_test.rb +108 -0
- data/test/remote/gateways/remote_pay_junction_test.rb +143 -0
- data/test/remote/gateways/remote_pay_secure_test.rb +39 -0
- data/test/remote/gateways/remote_payflow_express_test.rb +50 -0
- data/test/remote/gateways/remote_payflow_test.rb +237 -0
- data/test/remote/gateways/remote_payflow_uk_test.rb +173 -0
- data/test/remote/gateways/remote_payment_express_test.rb +136 -0
- data/test/remote/gateways/remote_paypal_express_test.rb +49 -0
- data/test/remote/gateways/remote_paypal_test.rb +178 -0
- data/test/remote/gateways/remote_plugnpay_test.rb +72 -0
- data/test/remote/gateways/remote_psigate_test.rb +50 -0
- data/test/remote/gateways/remote_psl_card_test.rb +125 -0
- data/test/remote/gateways/remote_quickpay_test.rb +190 -0
- data/test/remote/gateways/remote_realex_test.rb +224 -0
- data/test/remote/gateways/remote_sage_bankcard_test.rb +109 -0
- data/test/remote/gateways/remote_sage_pay_test.rb +219 -0
- data/test/remote/gateways/remote_sage_test.rb +87 -0
- data/test/remote/gateways/remote_sage_virtual_check_test.rb +62 -0
- data/test/remote/gateways/remote_secure_pay_au_test.rb +40 -0
- data/test/remote/gateways/remote_secure_pay_tech_test.rb +37 -0
- data/test/remote/gateways/remote_secure_pay_test.rb +28 -0
- data/test/remote/gateways/remote_skipjack_test.rb +105 -0
- data/test/remote/gateways/remote_trans_first_test.rb +34 -0
- data/test/remote/gateways/remote_transax_test.rb +112 -0
- data/test/remote/gateways/remote_trust_commerce_test.rb +152 -0
- data/test/remote/gateways/remote_usa_epay_test.rb +46 -0
- data/test/remote/gateways/remote_verifi_test.rb +107 -0
- data/test/remote/gateways/remote_viaklix_test.rb +43 -0
- data/test/remote/gateways/remote_wirecard_test.rb +111 -0
- data/test/remote/integrations/remote_gestpay_integration_test.rb +37 -0
- data/test/remote/integrations/remote_paypal_integration_test.rb +26 -0
- data/test/test_helper.rb +182 -0
- data/test/unit/avs_result_test.rb +59 -0
- data/test/unit/base_test.rb +55 -0
- data/test/unit/check_test.rb +88 -0
- data/test/unit/connection_test.rb +129 -0
- data/test/unit/country_code_test.rb +33 -0
- data/test/unit/country_test.rb +64 -0
- data/test/unit/credit_card_formatting_test.rb +19 -0
- data/test/unit/credit_card_methods_test.rb +179 -0
- data/test/unit/credit_card_test.rb +318 -0
- data/test/unit/cvv_result_test.rb +33 -0
- data/test/unit/expiry_date_test.rb +32 -0
- data/test/unit/gateways/authorize_net_cim_test.rb +638 -0
- data/test/unit/gateways/authorize_net_test.rb +290 -0
- data/test/unit/gateways/beanstream_interac_test.rb +51 -0
- data/test/unit/gateways/beanstream_test.rb +108 -0
- data/test/unit/gateways/bogus_test.rb +46 -0
- data/test/unit/gateways/braintree_test.rb +126 -0
- data/test/unit/gateways/card_stream_test.rb +90 -0
- data/test/unit/gateways/cyber_source_test.rb +188 -0
- data/test/unit/gateways/data_cash_test.rb +133 -0
- data/test/unit/gateways/efsnet_test.rb +123 -0
- data/test/unit/gateways/elavon_test.rb +139 -0
- data/test/unit/gateways/eway_test.rb +118 -0
- data/test/unit/gateways/exact_test.rb +156 -0
- data/test/unit/gateways/first_pay_test.rb +125 -0
- data/test/unit/gateways/gateway_test.rb +48 -0
- data/test/unit/gateways/instapay_test.rb +102 -0
- data/test/unit/gateways/linkpoint_test.rb +167 -0
- data/test/unit/gateways/merchant_e_solutions_test.rb +169 -0
- data/test/unit/gateways/merchant_ware_test.rb +188 -0
- data/test/unit/gateways/modern_payments_cim_test.rb +171 -0
- data/test/unit/gateways/moneris_test.rb +185 -0
- data/test/unit/gateways/moneris_usa_test.rb +183 -0
- data/test/unit/gateways/net_registry_test.rb +416 -0
- data/test/unit/gateways/netbilling_test.rb +54 -0
- data/test/unit/gateways/ogone_test.rb +256 -0
- data/test/unit/gateways/pay_junction_test.rb +123 -0
- data/test/unit/gateways/pay_secure_test.rb +71 -0
- data/test/unit/gateways/payflow_express_test.rb +173 -0
- data/test/unit/gateways/payflow_express_uk_test.rb +86 -0
- data/test/unit/gateways/payflow_test.rb +305 -0
- data/test/unit/gateways/payflow_uk_test.rb +30 -0
- data/test/unit/gateways/payment_express_test.rb +195 -0
- data/test/unit/gateways/paypal_express_test.rb +382 -0
- data/test/unit/gateways/paypal_test.rb +569 -0
- data/test/unit/gateways/plugnpay_test.rb +86 -0
- data/test/unit/gateways/psigate_test.rb +169 -0
- data/test/unit/gateways/psl_card_test.rb +64 -0
- data/test/unit/gateways/quickpay_test.rb +112 -0
- data/test/unit/gateways/realex_test.rb +151 -0
- data/test/unit/gateways/sage_bankcard_test.rb +162 -0
- data/test/unit/gateways/sage_pay_test.rb +139 -0
- data/test/unit/gateways/sage_virtual_check_test.rb +71 -0
- data/test/unit/gateways/secure_pay_au_test.rb +207 -0
- data/test/unit/gateways/secure_pay_tech_test.rb +44 -0
- data/test/unit/gateways/secure_pay_test.rb +87 -0
- data/test/unit/gateways/skip_jack_test.rb +133 -0
- data/test/unit/gateways/trans_first_test.rb +112 -0
- data/test/unit/gateways/trust_commerce_test.rb +90 -0
- data/test/unit/gateways/usa_epay_test.rb +128 -0
- data/test/unit/gateways/verifi_test.rb +96 -0
- data/test/unit/gateways/viaklix_test.rb +78 -0
- data/test/unit/gateways/wirecard_test.rb +250 -0
- data/test/unit/generators/test_gateway_generator.rb +46 -0
- data/test/unit/generators/test_generator_helper.rb +20 -0
- data/test/unit/generators/test_integration_generator.rb +53 -0
- data/test/unit/integrations/action_view_helper_test.rb +50 -0
- data/test/unit/integrations/bogus_module_test.rb +20 -0
- data/test/unit/integrations/chronopay_module_test.rb +13 -0
- data/test/unit/integrations/gestpay_module_test.rb +14 -0
- data/test/unit/integrations/helpers/bogus_helper_test.rb +28 -0
- data/test/unit/integrations/helpers/chronopay_helper_test.rb +67 -0
- data/test/unit/integrations/helpers/gestpay_helper_test.rb +100 -0
- data/test/unit/integrations/helpers/hi_trust_helper_test.rb +16 -0
- data/test/unit/integrations/helpers/nochex_helper_test.rb +53 -0
- data/test/unit/integrations/helpers/paypal_helper_test.rb +171 -0
- data/test/unit/integrations/helpers/quickpay_helper_test.rb +40 -0
- data/test/unit/integrations/helpers/two_checkout_helper_test.rb +92 -0
- data/test/unit/integrations/hi_trust_module_test.rb +13 -0
- data/test/unit/integrations/nochex_module_test.rb +13 -0
- data/test/unit/integrations/notifications/chronopay_notification_test.rb +66 -0
- data/test/unit/integrations/notifications/gestpay_notification_test.rb +60 -0
- data/test/unit/integrations/notifications/hi_trust_notification_test.rb +59 -0
- data/test/unit/integrations/notifications/nochex_notification_test.rb +51 -0
- data/test/unit/integrations/notifications/notification_test.rb +54 -0
- data/test/unit/integrations/notifications/paypal_notification_test.rb +85 -0
- data/test/unit/integrations/notifications/quickpay_notification_test.rb +69 -0
- data/test/unit/integrations/notifications/two_checkout_notification_test.rb +55 -0
- data/test/unit/integrations/paypal_module_test.rb +28 -0
- data/test/unit/integrations/quickpay_module_test.rb +9 -0
- data/test/unit/integrations/returns/chronopay_return_test.rb +11 -0
- data/test/unit/integrations/returns/gestpay_return_test.rb +10 -0
- data/test/unit/integrations/returns/hi_trust_return_test.rb +24 -0
- data/test/unit/integrations/returns/nochex_return_test.rb +10 -0
- data/test/unit/integrations/returns/paypal_return_test.rb +10 -0
- data/test/unit/integrations/returns/return_test.rb +11 -0
- data/test/unit/integrations/returns/two_checkout_return_test.rb +24 -0
- data/test/unit/integrations/two_checkout_module_test.rb +13 -0
- data/test/unit/post_data_test.rb +55 -0
- data/test/unit/posts_data_test.rb +48 -0
- data/test/unit/response_test.rb +28 -0
- data/test/unit/utils_test.rb +7 -0
- data/test/unit/validateable_test.rb +60 -0
- metadata +396 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemoteCardStreamTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
Base.mode = :test
|
|
6
|
+
|
|
7
|
+
@gateway = CardStreamGateway.new(fixtures(:card_stream))
|
|
8
|
+
|
|
9
|
+
@amex = credit_card('374245455400001',
|
|
10
|
+
:month => '12',
|
|
11
|
+
:year => '2009',
|
|
12
|
+
:verification_value => '4887',
|
|
13
|
+
:type => :american_express
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
@uk_maestro = credit_card('675940410531100173',
|
|
17
|
+
:month => '12',
|
|
18
|
+
:year => '2008',
|
|
19
|
+
:issue_number => '0',
|
|
20
|
+
:verification_value => '134',
|
|
21
|
+
:type => :switch
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
@solo = credit_card('676740340572345678',
|
|
25
|
+
:month => '12',
|
|
26
|
+
:year => '2008',
|
|
27
|
+
:issue_number => '1',
|
|
28
|
+
:verification_value => '773',
|
|
29
|
+
:type => :solo
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
@mastercard = credit_card('5301250070000191',
|
|
33
|
+
:month => '12',
|
|
34
|
+
:year => '2009',
|
|
35
|
+
:verification_value => '419',
|
|
36
|
+
:type => :master
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
@declined_card = credit_card('4000300011112220',
|
|
40
|
+
:month => '9',
|
|
41
|
+
:year => '2009'
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
@mastercard_options = {
|
|
45
|
+
:billing_address => {
|
|
46
|
+
:address1 => '25 The Larches',
|
|
47
|
+
:city => "Narborough",
|
|
48
|
+
:state => "Leicester",
|
|
49
|
+
:zip => 'LE10 2RT'
|
|
50
|
+
},
|
|
51
|
+
:order_id => generate_unique_id,
|
|
52
|
+
:description => 'Store purchase'
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@uk_maestro_options = {
|
|
56
|
+
:billing_address => {
|
|
57
|
+
:address1 => 'The Parkway',
|
|
58
|
+
:address2 => "Larches Approach",
|
|
59
|
+
:city => "Hull",
|
|
60
|
+
:state => "North Humberside",
|
|
61
|
+
:zip => 'HU7 9OP'
|
|
62
|
+
},
|
|
63
|
+
:order_id => generate_unique_id,
|
|
64
|
+
:description => 'Store purchase'
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@solo_options = {
|
|
68
|
+
:billing_address => {
|
|
69
|
+
:address1 => '5 Zigzag Road',
|
|
70
|
+
:city => 'Isleworth',
|
|
71
|
+
:state => 'Middlesex',
|
|
72
|
+
:zip => 'TW7 8FF'
|
|
73
|
+
},
|
|
74
|
+
:order_id => generate_unique_id,
|
|
75
|
+
:description => 'Store purchase'
|
|
76
|
+
}
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def test_successful_mastercard_purchase
|
|
80
|
+
assert response = @gateway.purchase(100, @mastercard, @mastercard_options)
|
|
81
|
+
assert_equal 'APPROVED', response.message
|
|
82
|
+
assert_success response
|
|
83
|
+
assert response.test?
|
|
84
|
+
assert !response.authorization.blank?
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def test_declined_mastercard_purchase
|
|
88
|
+
assert response = @gateway.purchase(10000, @mastercard, @mastercard_options)
|
|
89
|
+
assert_equal 'CARD DECLINED', response.message
|
|
90
|
+
assert_failure response
|
|
91
|
+
assert response.test?
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def test_expired_mastercard
|
|
95
|
+
@mastercard.year = 2005
|
|
96
|
+
assert response = @gateway.purchase(100, @mastercard, @mastercard_options)
|
|
97
|
+
assert_equal 'CARD EXPIRED', response.message
|
|
98
|
+
assert_failure response
|
|
99
|
+
assert response.test?
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def test_successful_maestro_purchase
|
|
103
|
+
assert response = @gateway.purchase(100, @uk_maestro, @uk_maestro_options)
|
|
104
|
+
assert_equal 'APPROVED', response.message
|
|
105
|
+
assert_success response
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def test_successful_solo_purchase
|
|
109
|
+
assert response = @gateway.purchase(100, @solo, @solo_options)
|
|
110
|
+
assert_equal 'APPROVED', response.message
|
|
111
|
+
assert_success response
|
|
112
|
+
assert response.test?
|
|
113
|
+
assert !response.authorization.blank?
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def test_successful_amex_purchase
|
|
117
|
+
assert response = @gateway.purchase(100, @amex, :order_id => generate_unique_id)
|
|
118
|
+
assert_equal 'APPROVED', response.message
|
|
119
|
+
assert_success response
|
|
120
|
+
assert response.test?
|
|
121
|
+
assert !response.authorization.blank?
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def test_maestro_missing_start_date_and_issue_date
|
|
125
|
+
@uk_maestro.issue_number = nil
|
|
126
|
+
assert response = @gateway.purchase(100, @uk_maestro, @uk_maestro_options)
|
|
127
|
+
assert_equal 'ISSUE NUMBER MISSING', response.message
|
|
128
|
+
assert_failure response
|
|
129
|
+
assert response.test?
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def test_invalid_login
|
|
133
|
+
gateway = CardStreamGateway.new(
|
|
134
|
+
:login => '',
|
|
135
|
+
:password => ''
|
|
136
|
+
)
|
|
137
|
+
assert response = gateway.purchase(100, @mastercard, @mastercard_options)
|
|
138
|
+
assert_equal 'MERCHANT ID MISSING', response.message
|
|
139
|
+
assert_failure response
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def test_unsupported_merchant_currency
|
|
143
|
+
assert response = @gateway.purchase(100, @mastercard, @mastercard_options.update(:currency => 'USD'))
|
|
144
|
+
assert_equal "ERROR 1052", response.message
|
|
145
|
+
assert_failure response
|
|
146
|
+
assert response.test?
|
|
147
|
+
end
|
|
148
|
+
end
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemoteCyberSourceTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
Base.gateway_mode = :test
|
|
6
|
+
|
|
7
|
+
@gateway = CyberSourceGateway.new(fixtures(:cyber_source))
|
|
8
|
+
|
|
9
|
+
@credit_card = credit_card('4111111111111111', :type => 'visa')
|
|
10
|
+
@declined_card = credit_card('801111111111111', :type => 'visa')
|
|
11
|
+
|
|
12
|
+
@amount = 100
|
|
13
|
+
|
|
14
|
+
@options = {
|
|
15
|
+
:billing_address => address,
|
|
16
|
+
|
|
17
|
+
:order_id => generate_unique_id,
|
|
18
|
+
:line_items => [
|
|
19
|
+
{
|
|
20
|
+
:declared_value => 100,
|
|
21
|
+
:quantity => 2,
|
|
22
|
+
:code => 'default',
|
|
23
|
+
:description => 'Giant Walrus',
|
|
24
|
+
:sku => 'WA323232323232323'
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
:declared_value => 100,
|
|
28
|
+
:quantity => 2,
|
|
29
|
+
:description => 'Marble Snowcone',
|
|
30
|
+
:sku => 'FAKE1232132113123'
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
:currency => 'USD',
|
|
34
|
+
:email => 'someguy1232@fakeemail.net',
|
|
35
|
+
:ignore_avs => 'true',
|
|
36
|
+
:ignore_cvv => 'true'
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def test_successful_authorization
|
|
42
|
+
assert response = @gateway.authorize(@amount, @credit_card, @options)
|
|
43
|
+
assert_equal 'Successful transaction', response.message
|
|
44
|
+
assert_success response
|
|
45
|
+
assert response.test?
|
|
46
|
+
assert !response.authorization.blank?
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def test_unsuccessful_authorization
|
|
50
|
+
assert response = @gateway.authorize(@amount, @declined_card, @options)
|
|
51
|
+
assert response.test?
|
|
52
|
+
assert_equal 'Invalid account number', response.message
|
|
53
|
+
assert_equal false, response.success?
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def test_successful_tax_calculation
|
|
57
|
+
assert response = @gateway.calculate_tax(@credit_card, @options)
|
|
58
|
+
assert_equal 'Successful transaction', response.message
|
|
59
|
+
assert response.params['totalTaxAmount']
|
|
60
|
+
assert_not_equal "0", response.params['totalTaxAmount']
|
|
61
|
+
assert_success response
|
|
62
|
+
assert response.test?
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def test_successful_tax_calculation_with_nexus
|
|
66
|
+
total_line_items_value = @options[:line_items].inject(0) do |sum, item|
|
|
67
|
+
sum += item[:declared_value] * item[:quantity]
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
canada_gst_rate = 0.05
|
|
71
|
+
ontario_pst_rate = 0.08
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
total_pst = total_line_items_value.to_f * ontario_pst_rate / 100
|
|
75
|
+
total_gst = total_line_items_value.to_f * canada_gst_rate / 100
|
|
76
|
+
total_tax = total_pst + total_gst
|
|
77
|
+
|
|
78
|
+
assert response = @gateway.calculate_tax(@credit_card, @options.merge(:nexus => 'ON'))
|
|
79
|
+
assert_equal 'Successful transaction', response.message
|
|
80
|
+
assert response.params['totalTaxAmount']
|
|
81
|
+
assert_equal total_pst, response.params['totalCountyTaxAmount'].to_f
|
|
82
|
+
assert_equal total_gst, response.params['totalStateTaxAmount'].to_f
|
|
83
|
+
assert_equal total_tax, response.params['totalTaxAmount'].to_f
|
|
84
|
+
assert_success response
|
|
85
|
+
assert response.test?
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def test_successful_purchase
|
|
89
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
90
|
+
assert_equal 'Successful transaction', response.message
|
|
91
|
+
assert_success response
|
|
92
|
+
assert response.test?
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def test_unsuccessful_purchase
|
|
96
|
+
assert response = @gateway.purchase(@amount, @declined_card, @options)
|
|
97
|
+
assert_equal 'Invalid account number', response.message
|
|
98
|
+
assert_failure response
|
|
99
|
+
assert response.test?
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def test_authorize_and_capture
|
|
103
|
+
assert auth = @gateway.authorize(@amount, @credit_card, @options)
|
|
104
|
+
assert_success auth
|
|
105
|
+
assert_equal 'Successful transaction', auth.message
|
|
106
|
+
|
|
107
|
+
assert capture = @gateway.capture(@amount, auth.authorization)
|
|
108
|
+
assert_success capture
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def test_successful_authorization_and_failed_capture
|
|
112
|
+
assert auth = @gateway.authorize(@amount, @credit_card, @options)
|
|
113
|
+
assert_success auth
|
|
114
|
+
assert_equal 'Successful transaction', auth.message
|
|
115
|
+
|
|
116
|
+
assert capture = @gateway.capture(@amount + 10, auth.authorization, @options)
|
|
117
|
+
assert_failure capture
|
|
118
|
+
assert_equal "The requested amount exceeds the originally authorized amount", capture.message
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def test_failed_capture_bad_auth_info
|
|
122
|
+
assert auth = @gateway.authorize(@amount, @credit_card, @options)
|
|
123
|
+
assert capture = @gateway.capture(@amount, "a;b;c", @options)
|
|
124
|
+
assert_failure capture
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def test_invalid_login
|
|
128
|
+
gateway = CyberSourceGateway.new( :login => '', :password => '' )
|
|
129
|
+
assert response = gateway.purchase(@amount, @credit_card, @options)
|
|
130
|
+
assert_match /wsse:InvalidSecurity/, response.message
|
|
131
|
+
assert_failure response
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def test_successful_credit
|
|
135
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
136
|
+
assert_equal 'Successful transaction', response.message
|
|
137
|
+
assert_success response
|
|
138
|
+
assert response.test?
|
|
139
|
+
assert response = @gateway.credit(@amount, response.authorization)
|
|
140
|
+
assert_equal 'Successful transaction', response.message
|
|
141
|
+
assert_success response
|
|
142
|
+
assert response.test?
|
|
143
|
+
end
|
|
144
|
+
end
|
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
# Author:: MoneySpyder, www.moneyspyder.co.uk
|
|
2
|
+
require 'test_helper'
|
|
3
|
+
|
|
4
|
+
class RemoteDataCashTest < Test::Unit::TestCase
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
# gateway to connect to Datacash
|
|
8
|
+
@gateway = DataCashGateway.new(fixtures(:data_cash))
|
|
9
|
+
|
|
10
|
+
@mastercard = CreditCard.new(
|
|
11
|
+
:number => '5473000000000007',
|
|
12
|
+
:month => 3,
|
|
13
|
+
:year => Date.today.year + 2,
|
|
14
|
+
:first_name => 'Mark',
|
|
15
|
+
:last_name => 'McBride',
|
|
16
|
+
:type => :master,
|
|
17
|
+
:verification_value => '547'
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
@mastercard_declined = CreditCard.new(
|
|
21
|
+
:number => '5473000000000106',
|
|
22
|
+
:month => 3,
|
|
23
|
+
:year => Date.today.year + 2,
|
|
24
|
+
:first_name => 'Mark',
|
|
25
|
+
:last_name => 'McBride',
|
|
26
|
+
:type => :master,
|
|
27
|
+
:verification_value => '547'
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
@visa_delta = CreditCard.new(
|
|
31
|
+
:number => '4539792100000003',
|
|
32
|
+
:month => 3,
|
|
33
|
+
:year => Date.today.year + 2,
|
|
34
|
+
:first_name => 'Mark',
|
|
35
|
+
:last_name => 'McBride',
|
|
36
|
+
:type => :visa,
|
|
37
|
+
:verification_value => '444'
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
@solo = CreditCard.new(
|
|
41
|
+
:first_name => 'Cody',
|
|
42
|
+
:last_name => 'Fauser',
|
|
43
|
+
:number => '633499100000000004',
|
|
44
|
+
:month => 3,
|
|
45
|
+
:year => Date.today.year + 2,
|
|
46
|
+
:type => :solo,
|
|
47
|
+
:issue_number => 5,
|
|
48
|
+
:start_month => 12,
|
|
49
|
+
:start_year => 2006,
|
|
50
|
+
:verification_value => 444
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
@address = {
|
|
54
|
+
:name => 'Mark McBride',
|
|
55
|
+
:address1 => 'Flat 12/3',
|
|
56
|
+
:address2 => '45 Main Road',
|
|
57
|
+
:city => 'Sometown',
|
|
58
|
+
:state => 'Somecounty',
|
|
59
|
+
:zip => 'A987AA',
|
|
60
|
+
:phone => '(555)555-5555'
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@params = {
|
|
64
|
+
:order_id => generate_unique_id,
|
|
65
|
+
:billing_address => @address
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
@amount = 198
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Testing that we can successfully make a purchase in a one step
|
|
72
|
+
# operation
|
|
73
|
+
def test_successful_purchase
|
|
74
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
75
|
+
assert_success response
|
|
76
|
+
assert response.test?
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
#the amount is changed to £1.99 - the DC test server won't check the
|
|
80
|
+
#address details - this is more a check on the passed ExtendedPolicy
|
|
81
|
+
def test_successful_purchase_without_address_check
|
|
82
|
+
response = @gateway.purchase(199, @mastercard, @params)
|
|
83
|
+
assert_success response
|
|
84
|
+
assert response.test?
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Note the Datacash test server regularly times out on switch requests
|
|
88
|
+
def test_successful_purchase_with_solo_card
|
|
89
|
+
response = @gateway.purchase(@amount, @solo, @params)
|
|
90
|
+
assert_success response
|
|
91
|
+
assert response.test?
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# this card number won't check the address details - testing extended
|
|
95
|
+
# policy
|
|
96
|
+
def test_successful_purchase_without_address_check2
|
|
97
|
+
@solo.number = '633499110000000003'
|
|
98
|
+
|
|
99
|
+
response = @gateway.purchase(@amount, @solo, @params)
|
|
100
|
+
assert_success response
|
|
101
|
+
assert response.test?
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# Testing purchase with request to set up recurring payment account
|
|
105
|
+
def test_successful_purchase_without_account_set_up_and_repeat_payments
|
|
106
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
107
|
+
assert_success response
|
|
108
|
+
assert response.authorization.to_s.split(';')[2].blank?
|
|
109
|
+
assert response.test?
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# Testing purchase with request to set up recurring payment account
|
|
113
|
+
def test_successful_purchase_with_account_set_up_and_repeat_payments
|
|
114
|
+
@params[:set_up_continuous_authority] = true
|
|
115
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
116
|
+
assert_success response
|
|
117
|
+
assert !response.authorization.to_s.split(';')[2].blank?
|
|
118
|
+
assert response.test?
|
|
119
|
+
|
|
120
|
+
#Make second payment on the continuous authorization that was set up in the first purchase
|
|
121
|
+
second_order_params = { :order_id => generate_unique_id }
|
|
122
|
+
purchase = @gateway.purchase(201, response.params['ca_reference'], second_order_params)
|
|
123
|
+
assert_success purchase
|
|
124
|
+
assert purchase.test?
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def test_successful_purchase_with_account_set_up_and_repeat_payments_with_visa_delta_card
|
|
128
|
+
@params[:set_up_continuous_authority] = true
|
|
129
|
+
response = @gateway.purchase(@amount, @visa_delta, @params)
|
|
130
|
+
assert_success response
|
|
131
|
+
assert !response.authorization.to_s.split(';')[2].blank?
|
|
132
|
+
assert response.test?
|
|
133
|
+
|
|
134
|
+
#Make second payment on the continuous authorization that was set up in the first purchase
|
|
135
|
+
second_order_params = { :order_id => generate_unique_id }
|
|
136
|
+
purchase = @gateway.purchase(201, response.params['ca_reference'], second_order_params)
|
|
137
|
+
assert_success purchase
|
|
138
|
+
assert purchase.test?
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
def test_purchase_with_account_set_up_for_repeat_payments_fails_for_solo_card
|
|
142
|
+
@params[:set_up_continuous_authority] = true
|
|
143
|
+
response = @gateway.purchase(@amount, @solo, @params)
|
|
144
|
+
assert_equal '92', response.params['status'] # Error code for CA not supported
|
|
145
|
+
assert_equal 'CA Not Supported', response.message
|
|
146
|
+
assert response.test?
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def test_successful_authorization_and_capture_with_account_set_up_and_second_purchase
|
|
150
|
+
#Authorize first payment
|
|
151
|
+
@params[:set_up_continuous_authority] = true
|
|
152
|
+
first_authorization = @gateway.authorize(@amount, @mastercard, @params)
|
|
153
|
+
assert_success first_authorization
|
|
154
|
+
assert !first_authorization.authorization.to_s.split(';')[2].blank?
|
|
155
|
+
assert first_authorization.test?
|
|
156
|
+
|
|
157
|
+
#Capture first payment
|
|
158
|
+
capture = @gateway.capture(@amount, first_authorization.authorization, @params)
|
|
159
|
+
assert_success capture
|
|
160
|
+
assert capture.test?
|
|
161
|
+
|
|
162
|
+
#Collect second purchase
|
|
163
|
+
second_order_params = { :order_id => generate_unique_id }
|
|
164
|
+
purchase = @gateway.purchase(201, first_authorization.authorization, second_order_params)
|
|
165
|
+
assert_success purchase
|
|
166
|
+
assert purchase.test?
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
def test_duplicate_order_id
|
|
170
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
171
|
+
assert_success response
|
|
172
|
+
|
|
173
|
+
duplicate_response = @gateway.purchase(@amount, @mastercard, @params)
|
|
174
|
+
assert_failure duplicate_response
|
|
175
|
+
assert_equal 'Duplicate reference', duplicate_response.message
|
|
176
|
+
assert duplicate_response.test?
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
def test_invalid_verification_number
|
|
180
|
+
@mastercard.verification_value = 123
|
|
181
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
182
|
+
assert_failure response
|
|
183
|
+
assert_equal 'CV2AVS DECLINED', response.message
|
|
184
|
+
assert response.test?
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
def test_invalid_expiry_month
|
|
188
|
+
@mastercard.month = 13
|
|
189
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
190
|
+
assert_failure response
|
|
191
|
+
assert_equal 'Expiry date invalid', response.message
|
|
192
|
+
assert response.test?
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
def test_invalid_expiry_year
|
|
196
|
+
@mastercard.year = 1999
|
|
197
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
198
|
+
assert_failure response
|
|
199
|
+
assert_equal 'Card has already expired', response.message
|
|
200
|
+
assert response.test?
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
def test_declined_card
|
|
204
|
+
response = @gateway.purchase(@amount, @mastercard_declined, @params)
|
|
205
|
+
assert_failure response
|
|
206
|
+
assert_equal 'DECLINED', response.message
|
|
207
|
+
assert response.test?
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
def test_successful_authorization_and_capture
|
|
211
|
+
authorization = @gateway.authorize(@amount, @mastercard, @params)
|
|
212
|
+
assert_success authorization
|
|
213
|
+
assert authorization.test?
|
|
214
|
+
|
|
215
|
+
capture = @gateway.capture(@amount, authorization.authorization, @params)
|
|
216
|
+
assert_success capture
|
|
217
|
+
assert capture.test?
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
def test_unsuccessful_capture
|
|
221
|
+
response = @gateway.capture(@amount, ';1234', @params)
|
|
222
|
+
assert_failure response
|
|
223
|
+
assert_equal 'AUTHCODE field required', response.message
|
|
224
|
+
assert response.test?
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
def test_successful_authorization_and_void
|
|
228
|
+
authorization = @gateway.authorize(@amount, @mastercard, @params)
|
|
229
|
+
assert_success authorization
|
|
230
|
+
assert authorization.test?
|
|
231
|
+
|
|
232
|
+
void = @gateway.void(authorization.authorization, @params)
|
|
233
|
+
assert_success void
|
|
234
|
+
assert void.test?
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
def test_successfully_purchase_and_void
|
|
238
|
+
purchase = @gateway.purchase(@amount, @mastercard, @params)
|
|
239
|
+
assert_success purchase
|
|
240
|
+
assert purchase.test?
|
|
241
|
+
|
|
242
|
+
void = @gateway.void(purchase.authorization, @params)
|
|
243
|
+
assert_success void
|
|
244
|
+
assert void.test?
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
def test_successful_refund
|
|
249
|
+
response = @gateway.credit(@amount, @mastercard, @params)
|
|
250
|
+
assert_success response
|
|
251
|
+
assert !response.params['datacash_reference'].blank?
|
|
252
|
+
assert !response.params['merchantreference'].blank?
|
|
253
|
+
|
|
254
|
+
assert response.test?
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
def test_successful_transaction_refund
|
|
258
|
+
purchase = @gateway.purchase(@amount, @mastercard, @params)
|
|
259
|
+
assert_success purchase
|
|
260
|
+
assert purchase.test?
|
|
261
|
+
|
|
262
|
+
refund = @gateway.credit(@amount, purchase.params['datacash_reference'])
|
|
263
|
+
assert_success refund
|
|
264
|
+
assert !refund.params['datacash_reference'].blank?
|
|
265
|
+
assert !refund.params['merchantreference'].blank?
|
|
266
|
+
|
|
267
|
+
assert refund.test?
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
def test_successful_transaction_refund_with_money_set_to_nil
|
|
271
|
+
purchase = @gateway.purchase(@amount, @mastercard, @params)
|
|
272
|
+
assert_success purchase
|
|
273
|
+
assert purchase.test?
|
|
274
|
+
|
|
275
|
+
refund = @gateway.credit(nil, purchase.params['datacash_reference'])
|
|
276
|
+
assert_success refund
|
|
277
|
+
assert refund.test?
|
|
278
|
+
end
|
|
279
|
+
|
|
280
|
+
def test_successful_transaction_refund_in_two_stages
|
|
281
|
+
purchase = @gateway.purchase(@amount, @mastercard, @params)
|
|
282
|
+
assert_success purchase
|
|
283
|
+
assert purchase.test?
|
|
284
|
+
|
|
285
|
+
first_partial_refund = @gateway.credit(100, purchase.params['datacash_reference'])
|
|
286
|
+
assert_success first_partial_refund
|
|
287
|
+
assert first_partial_refund.test?
|
|
288
|
+
|
|
289
|
+
second_partial_refund = @gateway.credit(98, purchase.params['datacash_reference'])
|
|
290
|
+
assert_success second_partial_refund
|
|
291
|
+
assert second_partial_refund.test?
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
def test_successful_partial_transaction_refund
|
|
295
|
+
purchase = @gateway.purchase(@amount, @mastercard, @params)
|
|
296
|
+
assert_success purchase
|
|
297
|
+
assert purchase.test?
|
|
298
|
+
|
|
299
|
+
partial_refund = @gateway.credit(100, purchase.params['datacash_reference'])
|
|
300
|
+
assert_success partial_refund
|
|
301
|
+
assert partial_refund.test?
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
def test_fail_to_refund_too_much
|
|
305
|
+
purchase = @gateway.purchase(@amount, @mastercard, @params)
|
|
306
|
+
assert_success purchase
|
|
307
|
+
assert purchase.test?
|
|
308
|
+
|
|
309
|
+
refund_too_much = @gateway.credit(500, purchase.params['datacash_reference'])
|
|
310
|
+
assert_failure refund_too_much
|
|
311
|
+
assert_equal 'Refund amount > orig 1.98', refund_too_much.message
|
|
312
|
+
assert refund_too_much.test?
|
|
313
|
+
end
|
|
314
|
+
|
|
315
|
+
def test_fail_to_refund_with_declined_purchase_reference
|
|
316
|
+
declined_purchase = @gateway.purchase(@amount, @mastercard_declined, @params)
|
|
317
|
+
assert_failure declined_purchase
|
|
318
|
+
assert declined_purchase.test?
|
|
319
|
+
|
|
320
|
+
refund = @gateway.credit(@amount, declined_purchase.params['datacash_reference'])
|
|
321
|
+
assert_failure refund
|
|
322
|
+
assert_equal 'Cannot refund transaction', refund.message
|
|
323
|
+
assert refund.test?
|
|
324
|
+
end
|
|
325
|
+
|
|
326
|
+
def test_fail_to_refund_purchase_which_is_already_refunded
|
|
327
|
+
purchase = @gateway.purchase(@amount, @mastercard, @params)
|
|
328
|
+
assert_success purchase
|
|
329
|
+
assert purchase.test?
|
|
330
|
+
|
|
331
|
+
first_refund = @gateway.credit(nil, purchase.params['datacash_reference'])
|
|
332
|
+
assert_success first_refund
|
|
333
|
+
assert first_refund.test?
|
|
334
|
+
|
|
335
|
+
second_refund = @gateway.credit(@amount, purchase.params['datacash_reference'])
|
|
336
|
+
assert_failure second_refund
|
|
337
|
+
assert_equal '1.98 > remaining funds 0.00', second_refund.message
|
|
338
|
+
assert second_refund.test?
|
|
339
|
+
end
|
|
340
|
+
|
|
341
|
+
# Check short merchant references are reformatted
|
|
342
|
+
def test_merchant_reference_that_is_too_short
|
|
343
|
+
@params[:order_id] = @params[:order_id].first(5)
|
|
344
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
345
|
+
assert_success response
|
|
346
|
+
assert response.test?
|
|
347
|
+
end
|
|
348
|
+
|
|
349
|
+
# Check long merchant references are reformatted
|
|
350
|
+
def test_merchant_reference_that_is_too_long
|
|
351
|
+
@params[:order_id] = "#{@params[:order_id]}1234356"
|
|
352
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
353
|
+
assert_success response
|
|
354
|
+
assert response.test?
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
end
|