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,145 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class AuthorizeNetTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
Base.mode = :test
|
|
6
|
+
|
|
7
|
+
@gateway = AuthorizeNetGateway.new(fixtures(:authorize_net))
|
|
8
|
+
@amount = 100
|
|
9
|
+
@credit_card = credit_card('4242424242424242')
|
|
10
|
+
@options = {
|
|
11
|
+
:order_id => generate_unique_id,
|
|
12
|
+
:billing_address => address,
|
|
13
|
+
:description => 'Store purchase'
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@recurring_options = {
|
|
17
|
+
:amount => 100,
|
|
18
|
+
:subscription_name => 'Test Subscription 1',
|
|
19
|
+
:credit_card => @credit_card,
|
|
20
|
+
:billing_address => address.merge(:first_name => 'Jim', :last_name => 'Smith'),
|
|
21
|
+
:interval => {
|
|
22
|
+
:length => 1,
|
|
23
|
+
:unit => :months
|
|
24
|
+
},
|
|
25
|
+
:duration => {
|
|
26
|
+
:start_date => Date.today,
|
|
27
|
+
:occurrences => 1
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def test_successful_purchase
|
|
33
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
34
|
+
assert_success response
|
|
35
|
+
assert response.test?
|
|
36
|
+
assert_equal 'This transaction has been approved', response.message
|
|
37
|
+
assert response.authorization
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_expired_credit_card
|
|
41
|
+
@credit_card.year = 2004
|
|
42
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
43
|
+
assert_failure response
|
|
44
|
+
assert response.test?
|
|
45
|
+
assert_equal 'The credit card has expired', response.message
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def test_forced_test_mode_purchase
|
|
49
|
+
gateway = AuthorizeNetGateway.new(fixtures(:authorize_net).update(:test => true))
|
|
50
|
+
assert response = gateway.purchase(@amount, @credit_card, @options)
|
|
51
|
+
assert_success response
|
|
52
|
+
assert response.test?
|
|
53
|
+
assert_match(/TESTMODE/, response.message)
|
|
54
|
+
assert response.authorization
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def test_successful_authorization
|
|
58
|
+
assert response = @gateway.authorize(@amount, @credit_card, @options)
|
|
59
|
+
assert_success response
|
|
60
|
+
assert_equal 'This transaction has been approved', response.message
|
|
61
|
+
assert response.authorization
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def test_authorization_and_capture
|
|
65
|
+
assert authorization = @gateway.authorize(@amount, @credit_card, @options)
|
|
66
|
+
assert_success authorization
|
|
67
|
+
|
|
68
|
+
assert capture = @gateway.capture(@amount, authorization.authorization)
|
|
69
|
+
assert_success capture
|
|
70
|
+
assert_equal 'This transaction has been approved', capture.message
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def test_authorization_and_void
|
|
74
|
+
assert authorization = @gateway.authorize(@amount, @credit_card, @options)
|
|
75
|
+
assert_success authorization
|
|
76
|
+
|
|
77
|
+
assert void = @gateway.void(authorization.authorization)
|
|
78
|
+
assert_success void
|
|
79
|
+
assert_equal 'This transaction has been approved', void.message
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def test_bad_login
|
|
83
|
+
gateway = AuthorizeNetGateway.new(
|
|
84
|
+
:login => 'X',
|
|
85
|
+
:password => 'Y'
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
assert response = gateway.purchase(@amount, @credit_card)
|
|
89
|
+
|
|
90
|
+
assert_equal Response, response.class
|
|
91
|
+
assert_equal ["avs_result_code",
|
|
92
|
+
"card_code",
|
|
93
|
+
"response_code",
|
|
94
|
+
"response_reason_code",
|
|
95
|
+
"response_reason_text",
|
|
96
|
+
"transaction_id"], response.params.keys.sort
|
|
97
|
+
|
|
98
|
+
assert_match(/The merchant login ID or password is invalid/, response.message)
|
|
99
|
+
|
|
100
|
+
assert_equal false, response.success?
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def test_using_test_request
|
|
104
|
+
gateway = AuthorizeNetGateway.new(
|
|
105
|
+
:login => 'X',
|
|
106
|
+
:password => 'Y'
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
assert response = gateway.purchase(@amount, @credit_card)
|
|
110
|
+
|
|
111
|
+
assert_equal Response, response.class
|
|
112
|
+
assert_equal ["avs_result_code",
|
|
113
|
+
"card_code",
|
|
114
|
+
"response_code",
|
|
115
|
+
"response_reason_code",
|
|
116
|
+
"response_reason_text",
|
|
117
|
+
"transaction_id"], response.params.keys.sort
|
|
118
|
+
|
|
119
|
+
assert_match(/The merchant login ID or password is invalid/, response.message)
|
|
120
|
+
|
|
121
|
+
assert_equal false, response.success?
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def test_successful_recurring
|
|
125
|
+
assert response = @gateway.recurring(@amount, @credit_card, @recurring_options)
|
|
126
|
+
assert_success response
|
|
127
|
+
assert response.test?
|
|
128
|
+
|
|
129
|
+
subscription_id = response.authorization
|
|
130
|
+
|
|
131
|
+
assert response = @gateway.update_recurring(:subscription_id => subscription_id, :amount => @amount * 2)
|
|
132
|
+
assert_success response
|
|
133
|
+
|
|
134
|
+
assert response = @gateway.cancel_recurring(subscription_id)
|
|
135
|
+
assert_success response
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
def test_recurring_should_fail_expired_credit_card
|
|
139
|
+
@credit_card.year = 2004
|
|
140
|
+
assert response = @gateway.recurring(@amount, @credit_card, @recurring_options)
|
|
141
|
+
assert_failure response
|
|
142
|
+
assert response.test?
|
|
143
|
+
assert_equal 'E00018', response.params['code']
|
|
144
|
+
end
|
|
145
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemoteBeanstreamInteracTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@gateway = BeanstreamInteracGateway.new(fixtures(:beanstream_interac))
|
|
7
|
+
|
|
8
|
+
@amount = 100
|
|
9
|
+
|
|
10
|
+
@options = {
|
|
11
|
+
:order_id => generate_unique_id,
|
|
12
|
+
:billing_address => {
|
|
13
|
+
:name => 'xiaobo zzz',
|
|
14
|
+
:phone => '555-555-5555',
|
|
15
|
+
:address1 => '1234 Levesque St.',
|
|
16
|
+
:address2 => 'Apt B',
|
|
17
|
+
:city => 'Montreal',
|
|
18
|
+
:state => 'QC',
|
|
19
|
+
:country => 'CA',
|
|
20
|
+
:zip => 'H2C1X8'
|
|
21
|
+
},
|
|
22
|
+
:email => 'xiaobozzz@example.com',
|
|
23
|
+
:subtotal => 800,
|
|
24
|
+
:shipping => 100,
|
|
25
|
+
:tax1 => 100,
|
|
26
|
+
:tax2 => 100,
|
|
27
|
+
:custom => 'reference one'
|
|
28
|
+
}
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def test_successful_purchase
|
|
32
|
+
assert response = @gateway.purchase(@amount, @options)
|
|
33
|
+
assert_success response
|
|
34
|
+
assert_equal "R", response.params["responseType"]
|
|
35
|
+
assert_false response.redirect.blank?
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def test_failed_confirmation
|
|
39
|
+
assert response = @gateway.confirm("")
|
|
40
|
+
assert_failure response
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def test_invalid_login
|
|
44
|
+
gateway = BeanstreamInteracGateway.new(
|
|
45
|
+
:merchant_id => '',
|
|
46
|
+
:login => '',
|
|
47
|
+
:password => ''
|
|
48
|
+
)
|
|
49
|
+
assert response = gateway.purchase(@amount, @options)
|
|
50
|
+
assert_failure response
|
|
51
|
+
assert_equal 'Invalid merchant id (merchant_id = 0)', response.message
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
# This test suite assumes that you have enabled username/password transaction validation in your Beanstream account.
|
|
4
|
+
# You will experience some test failures if username/password validation transaction validation is not enabled.
|
|
5
|
+
class RemoteBeanstreamTest < Test::Unit::TestCase
|
|
6
|
+
|
|
7
|
+
def setup
|
|
8
|
+
@gateway = BeanstreamGateway.new(fixtures(:beanstream))
|
|
9
|
+
|
|
10
|
+
# Beanstream test cards. Cards require a CVV of 123, which is the default of the credit card helper
|
|
11
|
+
@visa = credit_card('4030000010001234')
|
|
12
|
+
@declined_visa = credit_card('4003050500040005')
|
|
13
|
+
|
|
14
|
+
@mastercard = credit_card('5100000010001004')
|
|
15
|
+
@declined_mastercard = credit_card('5100000020002000')
|
|
16
|
+
|
|
17
|
+
@amex = credit_card('371100001000131')
|
|
18
|
+
@declined_amex = credit_card('342400001000180')
|
|
19
|
+
|
|
20
|
+
# Canadian EFT
|
|
21
|
+
@check = check(
|
|
22
|
+
:institution_number => '001',
|
|
23
|
+
:transit_number => '26729'
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
@amount = 1500
|
|
27
|
+
|
|
28
|
+
@options = {
|
|
29
|
+
:order_id => generate_unique_id,
|
|
30
|
+
:billing_address => {
|
|
31
|
+
:name => 'xiaobo zzz',
|
|
32
|
+
:phone => '555-555-5555',
|
|
33
|
+
:address1 => '1234 Levesque St.',
|
|
34
|
+
:address2 => 'Apt B',
|
|
35
|
+
:city => 'Montreal',
|
|
36
|
+
:state => 'QC',
|
|
37
|
+
:country => 'CA',
|
|
38
|
+
:zip => 'H2C1X8'
|
|
39
|
+
},
|
|
40
|
+
:email => 'xiaobozzz@example.com',
|
|
41
|
+
:subtotal => 800,
|
|
42
|
+
:shipping => 100,
|
|
43
|
+
:tax1 => 100,
|
|
44
|
+
:tax2 => 100,
|
|
45
|
+
:custom => 'reference one'
|
|
46
|
+
}
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def test_successful_visa_purchase
|
|
50
|
+
assert response = @gateway.purchase(@amount, @visa, @options)
|
|
51
|
+
assert_success response
|
|
52
|
+
assert_false response.authorization.blank?
|
|
53
|
+
assert_equal "Approved", response.message
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def test_unsuccessful_visa_purchase
|
|
57
|
+
assert response = @gateway.purchase(@amount, @declined_visa, @options)
|
|
58
|
+
assert_failure response
|
|
59
|
+
assert_equal 'DECLINE', response.message
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def test_successful_mastercard_purchase
|
|
63
|
+
assert response = @gateway.purchase(@amount, @mastercard, @options)
|
|
64
|
+
assert_success response
|
|
65
|
+
assert_false response.authorization.blank?
|
|
66
|
+
assert_equal "Approved", response.message
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_unsuccessful_mastercard_purchase
|
|
70
|
+
assert response = @gateway.purchase(@amount, @declined_mastercard, @options)
|
|
71
|
+
assert_failure response
|
|
72
|
+
assert_equal 'DECLINE', response.message
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def test_successful_amex_purchase
|
|
76
|
+
assert response = @gateway.purchase(@amount, @amex, @options)
|
|
77
|
+
assert_success response
|
|
78
|
+
assert_false response.authorization.blank?
|
|
79
|
+
assert_equal "Approved", response.message
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def test_unsuccessful_amex_purchase
|
|
83
|
+
assert response = @gateway.purchase(@amount, @declined_amex, @options)
|
|
84
|
+
assert_failure response
|
|
85
|
+
assert_equal 'DECLINE', response.message
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def test_authorize_and_capture
|
|
89
|
+
assert auth = @gateway.authorize(@amount, @visa, @options)
|
|
90
|
+
assert_success auth
|
|
91
|
+
assert_equal "Approved", auth.message
|
|
92
|
+
assert_false auth.authorization.blank?
|
|
93
|
+
|
|
94
|
+
assert capture = @gateway.capture(@amount, auth.authorization)
|
|
95
|
+
assert_success capture
|
|
96
|
+
assert_false capture.authorization.blank?
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def test_failed_capture
|
|
100
|
+
assert response = @gateway.capture(@amount, '')
|
|
101
|
+
assert_failure response
|
|
102
|
+
assert_no_match %r{You are not authorized}, response.message, "You need to enable username/password validation"
|
|
103
|
+
assert_match %r{Missing or invalid adjustment id.}, response.message
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def test_successful_purchase_and_void
|
|
107
|
+
assert purchase = @gateway.purchase(@amount, @visa, @options)
|
|
108
|
+
assert_success purchase
|
|
109
|
+
|
|
110
|
+
assert void = @gateway.void(purchase.authorization)
|
|
111
|
+
assert_success void
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def test_successful_purchase_and_credit_and_void_credit
|
|
115
|
+
assert purchase = @gateway.purchase(@amount, @visa, @options)
|
|
116
|
+
assert_success purchase
|
|
117
|
+
|
|
118
|
+
assert credit = @gateway.credit(@amount, purchase.authorization)
|
|
119
|
+
assert_success purchase
|
|
120
|
+
|
|
121
|
+
assert void = @gateway.void(credit.authorization)
|
|
122
|
+
assert_success void
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def test_successful_check_purchase
|
|
126
|
+
assert response = @gateway.purchase(@amount, @check, @options)
|
|
127
|
+
assert_success response
|
|
128
|
+
assert response.test?
|
|
129
|
+
assert_false response.authorization.blank?
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def test_successful_check_purchase_and_credit
|
|
133
|
+
assert purchase = @gateway.purchase(@amount, @check, @options)
|
|
134
|
+
assert_success purchase
|
|
135
|
+
|
|
136
|
+
assert credit = @gateway.credit(@amount, purchase.authorization)
|
|
137
|
+
assert_success credit
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def test_invalid_login
|
|
141
|
+
gateway = BeanstreamGateway.new(
|
|
142
|
+
:merchant_id => '',
|
|
143
|
+
:login => '',
|
|
144
|
+
:password => ''
|
|
145
|
+
)
|
|
146
|
+
assert response = gateway.purchase(@amount, @visa, @options)
|
|
147
|
+
assert_failure response
|
|
148
|
+
assert_equal 'Invalid merchant id (merchant_id = 0)', response.message
|
|
149
|
+
end
|
|
150
|
+
end
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemoteBraintreeTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
@gateway = BraintreeGateway.new(fixtures(:braintree))
|
|
6
|
+
|
|
7
|
+
@amount = rand(10000) + 1001
|
|
8
|
+
@credit_card = credit_card('4111111111111111')
|
|
9
|
+
@check = check()
|
|
10
|
+
@declined_amount = rand(99)
|
|
11
|
+
@options = { :order_id => generate_unique_id,
|
|
12
|
+
:billing_address => address
|
|
13
|
+
}
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_successful_purchase
|
|
17
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
18
|
+
assert_equal 'This transaction has been approved', response.message
|
|
19
|
+
assert_success response
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_successful_purchase_with_old_naming
|
|
23
|
+
gateway = BrainTreeGateway.new(fixtures(:braintree))
|
|
24
|
+
assert response = gateway.purchase(@amount, @credit_card, @options)
|
|
25
|
+
assert_equal 'This transaction has been approved', response.message
|
|
26
|
+
assert_success response
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def test_successful_purchase_with_echeck
|
|
30
|
+
check = ActiveMerchant::Billing::Check.new(
|
|
31
|
+
:name => 'Fredd Bloggs',
|
|
32
|
+
:routing_number => '111000025', # Valid ABA # - Bank of America, TX
|
|
33
|
+
:account_number => '999999999999',
|
|
34
|
+
:account_holder_type => 'personal',
|
|
35
|
+
:account_type => 'checking'
|
|
36
|
+
)
|
|
37
|
+
assert response = @gateway.purchase(@amount, @check, @options)
|
|
38
|
+
assert_equal 'This transaction has been approved', response.message
|
|
39
|
+
assert_success response
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_successful_add_to_vault
|
|
43
|
+
@options[:store] = true
|
|
44
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
45
|
+
assert_equal 'This transaction has been approved', response.message
|
|
46
|
+
assert_success response
|
|
47
|
+
assert_not_nil response.params["customer_vault_id"]
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def test_successful_add_to_vault_with_store_method
|
|
51
|
+
assert response = @gateway.store(@credit_card)
|
|
52
|
+
assert_equal 'Customer Added', response.message
|
|
53
|
+
assert_success response
|
|
54
|
+
assert_not_nil response.params["customer_vault_id"]
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def test_successful_add_to_vault_and_use
|
|
58
|
+
@options[:store] = true
|
|
59
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
60
|
+
assert_equal 'This transaction has been approved', response.message
|
|
61
|
+
assert_success response
|
|
62
|
+
assert_not_nil customer_id = response.params["customer_vault_id"]
|
|
63
|
+
|
|
64
|
+
assert second_response = @gateway.purchase(@amount*2, customer_id, @options)
|
|
65
|
+
assert_equal 'This transaction has been approved', second_response.message
|
|
66
|
+
assert second_response.success?
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_add_to_vault_with_custom_vault_id
|
|
70
|
+
@options[:store] = rand(100000)+10001
|
|
71
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
72
|
+
assert_equal 'This transaction has been approved', response.message
|
|
73
|
+
assert_success response
|
|
74
|
+
assert_equal @options[:store], response.params["customer_vault_id"].to_i
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def test_add_to_vault_with_custom_vault_id_with_store_method
|
|
78
|
+
@options[:billing_id] = rand(100000)+10001
|
|
79
|
+
assert response = @gateway.store(@credit_card, @options.dup)
|
|
80
|
+
assert_equal 'Customer Added', response.message
|
|
81
|
+
assert_success response
|
|
82
|
+
assert_equal @options[:billing_id], response.params["customer_vault_id"].to_i
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def test_add_to_vault_with_store_and_check
|
|
86
|
+
assert response = @gateway.store(@check, @options)
|
|
87
|
+
assert_equal 'Customer Added', response.message
|
|
88
|
+
assert_success response
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def test_update_vault
|
|
92
|
+
test_add_to_vault_with_custom_vault_id
|
|
93
|
+
@credit_card = credit_card('4111111111111111', :month => 10)
|
|
94
|
+
assert response = @gateway.update(@options[:store], @credit_card)
|
|
95
|
+
assert_success response
|
|
96
|
+
assert_equal 'Customer Update Successful', response.message
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def test_delete_from_vault
|
|
100
|
+
test_add_to_vault_with_custom_vault_id
|
|
101
|
+
assert response = @gateway.delete(@options[:store])
|
|
102
|
+
assert_success response
|
|
103
|
+
assert_equal 'Customer Deleted', response.message
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def test_delete_from_vault_with_unstore_method
|
|
107
|
+
test_add_to_vault_with_custom_vault_id
|
|
108
|
+
assert response = @gateway.unstore(@options[:store])
|
|
109
|
+
assert_success response
|
|
110
|
+
assert_equal 'Customer Deleted', response.message
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def test_declined_purchase
|
|
114
|
+
assert response = @gateway.purchase(@declined_amount, @credit_card, @options)
|
|
115
|
+
assert_equal 'This transaction has been declined', response.message
|
|
116
|
+
assert_failure response
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def test_authorize_and_capture
|
|
120
|
+
assert auth = @gateway.authorize(@amount, @credit_card, @options)
|
|
121
|
+
assert_success auth
|
|
122
|
+
assert_equal 'This transaction has been approved', auth.message
|
|
123
|
+
assert auth.authorization
|
|
124
|
+
assert capture = @gateway.capture(@amount, auth.authorization)
|
|
125
|
+
assert_equal 'This transaction has been approved', capture.message
|
|
126
|
+
assert_success capture
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def test_authorize_and_void
|
|
130
|
+
assert auth = @gateway.authorize(@amount, @credit_card, @options)
|
|
131
|
+
assert_success auth
|
|
132
|
+
assert_equal 'This transaction has been approved', auth.message
|
|
133
|
+
assert auth.authorization
|
|
134
|
+
assert void = @gateway.void(auth.authorization)
|
|
135
|
+
assert_equal 'Transaction Void Successful', void.message
|
|
136
|
+
assert_success void
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
def test_failed_capture
|
|
140
|
+
assert response = @gateway.capture(@amount, '')
|
|
141
|
+
assert_failure response
|
|
142
|
+
assert response.message.match(/Invalid Transaction ID \/ Object ID specified:/)
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
def test_invalid_login
|
|
146
|
+
gateway = BraintreeGateway.new(
|
|
147
|
+
:login => '',
|
|
148
|
+
:password => ''
|
|
149
|
+
)
|
|
150
|
+
assert response = gateway.purchase(@amount, @credit_card, @options)
|
|
151
|
+
assert_equal 'Invalid Username', response.message
|
|
152
|
+
assert_failure response
|
|
153
|
+
end
|
|
154
|
+
end
|