tomriley-active_merchant 1.4.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +442 -0
- data/CONTRIBUTERS +102 -0
- data/MIT-LICENSE +20 -0
- data/README +134 -0
- data/Rakefile +153 -0
- data/active_merchant.gemspec +15 -0
- data/gem-public_cert.pem +20 -0
- data/init.rb +4 -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 +28 -0
- data/lib/active_merchant/billing/gateway.rb +158 -0
- data/lib/active_merchant/billing/gateways/authorize_net.rb +646 -0
- data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +702 -0
- data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +233 -0
- data/lib/active_merchant/billing/gateways/beanstream.rb +102 -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/eway.rb +272 -0
- data/lib/active_merchant/billing/gateways/exact.rb +222 -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/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 +205 -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/pay_junction.rb +392 -0
- data/lib/active_merchant/billing/gateways/pay_secure.rb +120 -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.rb +236 -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/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.rb +108 -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/protx.rb +349 -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/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.rb +146 -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 +165 -0
- data/lib/active_merchant/billing/gateways/wirecard.rb +318 -0
- data/lib/active_merchant/billing/gateways.rb +3 -0
- data/lib/active_merchant/billing/integrations/action_view_helper.rb +79 -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/bogus.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/chronopay.rb +22 -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/gestpay.rb +26 -0
- data/lib/active_merchant/billing/integrations/helper.rb +93 -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/hi_trust.rb +26 -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/nochex.rb +87 -0
- data/lib/active_merchant/billing/integrations/notification.rb +62 -0
- data/lib/active_merchant/billing/integrations/paypal/helper.rb +118 -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/paypal.rb +40 -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/quickpay.rb +18 -0
- data/lib/active_merchant/billing/integrations/return.rb +35 -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/integrations/two_checkout.rb +23 -0
- data/lib/active_merchant/billing/integrations.rb +22 -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/active_merchant.rb +60 -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 +330 -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_eway_test.rb +74 -0
- data/test/remote/gateways/remote_exact_test.rb +60 -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_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 +82 -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_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 +167 -0
- data/test/remote/gateways/remote_plugnpay_test.rb +72 -0
- data/test/remote/gateways/remote_protx_test.rb +219 -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_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 +170 -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 +21 -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/eway_test.rb +118 -0
- data/test/unit/gateways/exact_test.rb +156 -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/modern_payments_cim_test.rb +171 -0
- data/test/unit/gateways/moneris_test.rb +158 -0
- data/test/unit/gateways/net_registry_test.rb +416 -0
- data/test/unit/gateways/netbilling_test.rb +54 -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 +520 -0
- data/test/unit/gateways/plugnpay_test.rb +86 -0
- data/test/unit/gateways/protx_test.rb +139 -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_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 +162 -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 +364 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
#
|
|
2
|
+
# In order for this test to pass, a valid store number and PEM file
|
|
3
|
+
# are required. Unfortunately, with LinkPoint YOU CAN'T JUST USE ANY
|
|
4
|
+
# OLD STORE NUMBER. Also, you can't just generate your own PEM file.
|
|
5
|
+
# You'll need to use a special PEM file provided by LinkPoint.
|
|
6
|
+
#
|
|
7
|
+
# Go to http://www.linkpoint.com/support/sup_teststore.asp to set up
|
|
8
|
+
# a test account. Once you receive your test account you can get your
|
|
9
|
+
# pem file by clicking the Support link on the navigation menu and then
|
|
10
|
+
# clicking the Download Center link.
|
|
11
|
+
#
|
|
12
|
+
# You will also want to change your test account's fraud settings
|
|
13
|
+
# while running these tests. Click the admin link at the top of
|
|
14
|
+
# LinkPoint Central. Then click "set lockout times" under Fraud Settings
|
|
15
|
+
# You will want to set Duplicate lockout time to 0 so that you can run
|
|
16
|
+
# the tests more than once without triggering this fraud detection.
|
|
17
|
+
#
|
|
18
|
+
# The LinkPoint staging server will also return different responses based
|
|
19
|
+
# on the cent amount of the purhcase. Complete details can be found at
|
|
20
|
+
require 'test_helper'
|
|
21
|
+
|
|
22
|
+
# http://sgserror.com/staging.php
|
|
23
|
+
class LinkpointTest < Test::Unit::TestCase
|
|
24
|
+
def setup
|
|
25
|
+
Base.mode = :test
|
|
26
|
+
|
|
27
|
+
@gateway = LinkpointGateway.new(fixtures(:linkpoint))
|
|
28
|
+
|
|
29
|
+
# Test credit card numbers
|
|
30
|
+
# American Express: 371111111111111
|
|
31
|
+
# Discover: 6011-1111-1111-1111
|
|
32
|
+
# JCB: 311111111111111
|
|
33
|
+
# MasterCard: 5111-1111-1111-1111
|
|
34
|
+
# MasterCard: 5419-8400-0000-0003
|
|
35
|
+
# Visa: 4111-1111-1111-1111
|
|
36
|
+
|
|
37
|
+
@amount = 100
|
|
38
|
+
@credit_card = credit_card('4111111111111111')
|
|
39
|
+
@options = { :order_id => generate_unique_id, :billing_address => address }
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_successful_authorization
|
|
43
|
+
assert response = @gateway.authorize(1000, @credit_card, @options)
|
|
44
|
+
|
|
45
|
+
assert_instance_of Response, response
|
|
46
|
+
assert_success response
|
|
47
|
+
assert_equal "APPROVED", response.params["approved"]
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def test_successful_authorization_and_capture
|
|
51
|
+
assert authorization = @gateway.authorize(@amount, @credit_card, @options)
|
|
52
|
+
assert_success authorization
|
|
53
|
+
assert authorization.test?
|
|
54
|
+
|
|
55
|
+
assert capture = @gateway.capture(@amount, authorization.authorization)
|
|
56
|
+
assert_success capture
|
|
57
|
+
assert_equal 'ACCEPTED', capture.message
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def test_successful_purchase_without_cvv2_code
|
|
61
|
+
@credit_card.verification_value = nil
|
|
62
|
+
|
|
63
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
64
|
+
assert_success response
|
|
65
|
+
assert_equal "APPROVED", response.params["approved"]
|
|
66
|
+
assert_equal 'NNN', response.params["avs"]
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_successful_purchase_with_cvv2_code
|
|
70
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
71
|
+
assert_success response
|
|
72
|
+
assert_equal "APPROVED", response.params["approved"]
|
|
73
|
+
assert_equal 'NNNM', response.params["avs"]
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def test_successful_purchase_and_void
|
|
77
|
+
purchase = @gateway.purchase(@amount, @credit_card, @options)
|
|
78
|
+
assert_success purchase
|
|
79
|
+
|
|
80
|
+
assert void = @gateway.void(purchase.authorization)
|
|
81
|
+
assert_success void
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def test_successfull_purchase_and_credit
|
|
85
|
+
assert purchase = @gateway.purchase(2400, @credit_card, @options)
|
|
86
|
+
assert_success purchase
|
|
87
|
+
|
|
88
|
+
assert credit = @gateway.credit(2400, purchase.authorization)
|
|
89
|
+
assert_success credit
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def test_successful_recurring_payment
|
|
94
|
+
assert response = @gateway.recurring(2400, @credit_card,
|
|
95
|
+
:order_id => generate_unique_id,
|
|
96
|
+
:installments => 12,
|
|
97
|
+
:startdate => "immediate",
|
|
98
|
+
:periodicity => :monthly,
|
|
99
|
+
:billing_address => address
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
assert_success response
|
|
103
|
+
assert_equal "APPROVED", response.params["approved"]
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def test_declined_purchase_with_invalid_credit_card
|
|
107
|
+
@credit_card.number = '1111111111111111'
|
|
108
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
109
|
+
assert_failure response
|
|
110
|
+
assert_equal "DECLINED", response.params["approved"]
|
|
111
|
+
end
|
|
112
|
+
end
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemoteMerchantESolutionTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
Base.gateway_mode = :test
|
|
8
|
+
|
|
9
|
+
@gateway = MerchantESolutionsGateway.new(fixtures(:merchant_esolutions))
|
|
10
|
+
|
|
11
|
+
@amount = 100
|
|
12
|
+
@credit_card = credit_card('4111111111111111')
|
|
13
|
+
@declined_card = credit_card('4111111111111112')
|
|
14
|
+
|
|
15
|
+
@options = {
|
|
16
|
+
:billing_address => {
|
|
17
|
+
:name => 'John Doe',
|
|
18
|
+
:address1 => '123 State Street',
|
|
19
|
+
:address2 => 'Apartment 1',
|
|
20
|
+
:city => 'Nowhere',
|
|
21
|
+
:state => 'MT',
|
|
22
|
+
:country => 'US',
|
|
23
|
+
:zip => '55555',
|
|
24
|
+
:phone => '555-555-5555'
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def test_successful_purchase
|
|
30
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
31
|
+
assert_success response
|
|
32
|
+
assert_equal 'This transaction has been approved', response.message
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_unsuccessful_purchase
|
|
36
|
+
assert response = @gateway.purchase(@amount, @declined_card, @options)
|
|
37
|
+
assert_failure response
|
|
38
|
+
assert_equal 'Card No. Error', response.message
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def test_authorize_and_capture
|
|
42
|
+
amount = @amount
|
|
43
|
+
assert auth = @gateway.authorize(amount, @credit_card, @options)
|
|
44
|
+
assert_success auth
|
|
45
|
+
assert_equal 'This transaction has been approved', auth.message
|
|
46
|
+
assert auth.authorization
|
|
47
|
+
sleep 15 # I have found that it is best to wait a few seconds to capture an authorized transaction
|
|
48
|
+
assert capture = @gateway.capture(amount, auth.authorization)
|
|
49
|
+
assert_success capture
|
|
50
|
+
assert_equal 'This transaction has been approved', capture.message
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def test_failed_capture
|
|
54
|
+
assert response = @gateway.capture(@amount, '')
|
|
55
|
+
assert_failure response
|
|
56
|
+
assert_equal 'Invalid Transaction ID', response.message
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def test_store_purchase_unstore
|
|
60
|
+
assert store = @gateway.store(@credit_card)
|
|
61
|
+
assert_success store
|
|
62
|
+
assert_equal 'This transaction has been approved', store.message
|
|
63
|
+
assert purchase = @gateway.purchase(@amount, store.authorization, @options)
|
|
64
|
+
assert_success purchase
|
|
65
|
+
assert_equal 'This transaction has been approved', purchase.message
|
|
66
|
+
assert unstore = @gateway.unstore(store.authorization)
|
|
67
|
+
assert_success unstore
|
|
68
|
+
assert_equal 'This transaction has been approved', unstore.message
|
|
69
|
+
assert purchase_after_unstore = @gateway.purchase(@amount, store.authorization, @options)
|
|
70
|
+
assert_failure purchase_after_unstore
|
|
71
|
+
assert_equal 'Invalid Card ID', purchase_after_unstore.message
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def test_authorize_and_void
|
|
75
|
+
assert auth = @gateway.authorize(@amount, @credit_card, @options)
|
|
76
|
+
assert_success auth
|
|
77
|
+
assert_equal 'This transaction has been approved', auth.message
|
|
78
|
+
assert auth.authorization
|
|
79
|
+
assert void = @gateway.void(auth.authorization)
|
|
80
|
+
assert_success void
|
|
81
|
+
assert_equal 'This transaction has been approved', void.message
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def test_unsuccessful_unstore
|
|
85
|
+
assert unstore = @gateway.unstore('')
|
|
86
|
+
assert_failure unstore
|
|
87
|
+
assert_equal 'Invalid Card ID', unstore.message
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def test_unsuccessful_void
|
|
91
|
+
assert void = @gateway.void('')
|
|
92
|
+
assert_failure void
|
|
93
|
+
assert_equal 'Invalid Transaction ID', void.message
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def test_successful_avs_check
|
|
97
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
98
|
+
assert_equal 'Y', response.avs_result['code']
|
|
99
|
+
assert_equal 'Street address and 5-digit postal code match.', response.avs_result['message']
|
|
100
|
+
assert_equal 'Y', response.avs_result['street_match']
|
|
101
|
+
assert_equal 'Y', response.avs_result['postal_match']
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def test_unsuccessful_avs_check_with_bad_street_address
|
|
105
|
+
options = {
|
|
106
|
+
:billing_address => {
|
|
107
|
+
:name => 'John Doe',
|
|
108
|
+
:address1 => '124 State Street',
|
|
109
|
+
:address2 => 'Apartment 1',
|
|
110
|
+
:city => 'Nowhere',
|
|
111
|
+
:state => 'MT',
|
|
112
|
+
:country => 'US',
|
|
113
|
+
:zip => '55555',
|
|
114
|
+
:phone => '555-555-5555'
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
assert response = @gateway.purchase(@amount, @credit_card, options)
|
|
118
|
+
assert_equal 'Z', response.avs_result['code']
|
|
119
|
+
assert_equal 'Street address does not match, but 5-digit postal code matches.', response.avs_result['message']
|
|
120
|
+
assert_equal 'N', response.avs_result['street_match']
|
|
121
|
+
assert_equal 'Y', response.avs_result['postal_match']
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def test_unsuccessful_avs_check_with_bad_zip
|
|
125
|
+
options = {
|
|
126
|
+
:billing_address => {
|
|
127
|
+
:name => 'John Doe',
|
|
128
|
+
:address1 => '123 State Street',
|
|
129
|
+
:address2 => 'Apartment 1',
|
|
130
|
+
:city => 'Nowhere',
|
|
131
|
+
:state => 'MT',
|
|
132
|
+
:country => 'US',
|
|
133
|
+
:zip => '55554',
|
|
134
|
+
:phone => '555-555-5555'
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
assert response = @gateway.purchase(@amount, @credit_card, options)
|
|
138
|
+
assert_equal 'A', response.avs_result['code']
|
|
139
|
+
assert_equal 'Street address matches, but 5-digit and 9-digit postal code do not match.', response.avs_result['message']
|
|
140
|
+
assert_equal 'Y', response.avs_result['street_match']
|
|
141
|
+
assert_equal 'N', response.avs_result['postal_match']
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def test_successful_cvv_check
|
|
145
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
146
|
+
assert_equal 'M', response.cvv_result['code']
|
|
147
|
+
assert_equal 'Match', response.cvv_result['message']
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def test_unsuccessful_cvv_check
|
|
151
|
+
credit_card = ActiveMerchant::Billing::CreditCard.new({
|
|
152
|
+
:first_name => 'John',
|
|
153
|
+
:last_name => 'Doe',
|
|
154
|
+
:number => '4111111111111111',
|
|
155
|
+
:month => '11',
|
|
156
|
+
:year => (Time.now.year + 1).to_s,
|
|
157
|
+
:verification_value => '555'
|
|
158
|
+
})
|
|
159
|
+
assert response = @gateway.purchase(@amount, credit_card, @options)
|
|
160
|
+
assert_equal 'N', response.cvv_result['code']
|
|
161
|
+
assert_equal 'No Match', response.cvv_result['message']
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
def test_invalid_login
|
|
165
|
+
gateway = MerchantESolutionsGateway.new(
|
|
166
|
+
:login => '',
|
|
167
|
+
:password => ''
|
|
168
|
+
)
|
|
169
|
+
assert response = gateway.purchase(@amount, @credit_card, @options)
|
|
170
|
+
assert_failure response
|
|
171
|
+
assert_equal 'Invalid ID or Key', response.message
|
|
172
|
+
end
|
|
173
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemoteModernPaymentsCimTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
@gateway = ModernPaymentsCimGateway.new(fixtures(:modern_payments))
|
|
8
|
+
|
|
9
|
+
@amount = 100
|
|
10
|
+
@credit_card = credit_card('4111111111111111')
|
|
11
|
+
@declined_card = credit_card('4000000000000000')
|
|
12
|
+
|
|
13
|
+
@options = {
|
|
14
|
+
:billing_address => address,
|
|
15
|
+
:customer => 'JIMSMITH2000'
|
|
16
|
+
}
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_successful_create_customer
|
|
20
|
+
response = @gateway.create_customer(@options)
|
|
21
|
+
assert_success response
|
|
22
|
+
assert !response.params["create_customer_result"].blank?
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def test_successful_modify_customer_credit_card
|
|
26
|
+
customer = @gateway.create_customer(@options)
|
|
27
|
+
assert_success customer
|
|
28
|
+
|
|
29
|
+
customer_id = customer.params["create_customer_result"]
|
|
30
|
+
|
|
31
|
+
credit_card = @gateway.modify_customer_credit_card(customer_id, @credit_card)
|
|
32
|
+
assert_success credit_card
|
|
33
|
+
assert !credit_card.params["modify_customer_credit_card_result"].blank?
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_succsessful_authorize_credit_card_payment
|
|
37
|
+
customer = @gateway.create_customer(@options)
|
|
38
|
+
assert_success customer
|
|
39
|
+
|
|
40
|
+
customer_id = customer.params["create_customer_result"]
|
|
41
|
+
|
|
42
|
+
credit_card = @gateway.modify_customer_credit_card(customer_id, @credit_card)
|
|
43
|
+
assert_success credit_card
|
|
44
|
+
|
|
45
|
+
payment = @gateway.authorize_credit_card_payment(customer_id, @amount)
|
|
46
|
+
assert_success payment
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def test_invalid_login
|
|
50
|
+
gateway = ModernPaymentsCimGateway.new(
|
|
51
|
+
:login => '',
|
|
52
|
+
:password => ''
|
|
53
|
+
)
|
|
54
|
+
assert response = gateway.create_customer(@options)
|
|
55
|
+
assert_failure response
|
|
56
|
+
assert_equal ModernPaymentsCimGateway::ERROR_MESSAGE, response.message
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemoteModernPaymentTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
@gateway = ModernPaymentsGateway.new(fixtures(:modern_payments))
|
|
8
|
+
|
|
9
|
+
@amount = 100
|
|
10
|
+
@credit_card = credit_card('4111111111111111')
|
|
11
|
+
@declined_card = credit_card('4000000000000000')
|
|
12
|
+
|
|
13
|
+
@options = {
|
|
14
|
+
:order_id => '1',
|
|
15
|
+
:billing_address => address,
|
|
16
|
+
:description => 'Store Purchase'
|
|
17
|
+
}
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_successful_purchase
|
|
21
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
22
|
+
assert_success response
|
|
23
|
+
assert_match /RESPONSECODE=A/, response.params["auth_string"]
|
|
24
|
+
assert_equal ModernPaymentsCimGateway::SUCCESS_MESSAGE, response.message
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_unsuccessful_purchase
|
|
28
|
+
assert response = @gateway.purchase(@amount, @declined_card, @options)
|
|
29
|
+
assert_success response
|
|
30
|
+
assert_match /RESPONSECODE=D/, response.params["auth_string"]
|
|
31
|
+
assert_equal ModernPaymentsCimGateway::SUCCESS_MESSAGE, response.message
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_invalid_login
|
|
35
|
+
gateway = ModernPaymentsGateway.new(
|
|
36
|
+
:login => '',
|
|
37
|
+
:password => ''
|
|
38
|
+
)
|
|
39
|
+
assert response = gateway.purchase(@amount, @credit_card, @options)
|
|
40
|
+
assert_failure response
|
|
41
|
+
assert_equal ModernPaymentsCimGateway::ERROR_MESSAGE, response.message
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class MonerisRemoteTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
Base.mode = :test
|
|
6
|
+
|
|
7
|
+
@gateway = MonerisGateway.new(fixtures(:moneris))
|
|
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
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_successful_purchase
|
|
18
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
19
|
+
assert_success response
|
|
20
|
+
assert_equal 'Approved', response.message
|
|
21
|
+
assert_false response.authorization.blank?
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def test_successful_authorization
|
|
25
|
+
response = @gateway.authorize(@amount, @credit_card, @options)
|
|
26
|
+
assert_success response
|
|
27
|
+
assert_false response.authorization.blank?
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_failed_authorization
|
|
31
|
+
response = @gateway.authorize(105, @credit_card, @options)
|
|
32
|
+
assert_failure response
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_successful_authorization_and_capture
|
|
36
|
+
response = @gateway.authorize(@amount, @credit_card, @options)
|
|
37
|
+
assert_success response
|
|
38
|
+
assert response.authorization
|
|
39
|
+
|
|
40
|
+
response = @gateway.capture(@amount, response.authorization)
|
|
41
|
+
assert_success response
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_successful_authorization_and_void
|
|
45
|
+
response = @gateway.authorize(@amount, @credit_card, @options)
|
|
46
|
+
assert_success response
|
|
47
|
+
assert response.authorization
|
|
48
|
+
|
|
49
|
+
void = @gateway.void(response.authorization)
|
|
50
|
+
assert_success void
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def test_successful_purchase_and_void
|
|
54
|
+
purchase = @gateway.purchase(@amount, @credit_card, @options)
|
|
55
|
+
assert_success purchase
|
|
56
|
+
|
|
57
|
+
void = @gateway.void(purchase.authorization)
|
|
58
|
+
assert_success void
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def test_failed_purchase_and_void
|
|
62
|
+
purchase = @gateway.purchase(101, @credit_card, @options)
|
|
63
|
+
assert_failure purchase
|
|
64
|
+
|
|
65
|
+
void = @gateway.void(purchase.authorization)
|
|
66
|
+
assert_failure void
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_successful_purchase_and_credit
|
|
70
|
+
purchase = @gateway.purchase(@amount, @credit_card, @options)
|
|
71
|
+
assert_success purchase
|
|
72
|
+
|
|
73
|
+
credit = @gateway.credit(@amount, purchase.authorization)
|
|
74
|
+
assert_success credit
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def test_failed_purchase_from_error
|
|
78
|
+
assert response = @gateway.purchase(150, @credit_card, @options)
|
|
79
|
+
assert_failure response
|
|
80
|
+
assert_equal 'Declined', response.message
|
|
81
|
+
end
|
|
82
|
+
end
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
require 'test_helper'
|
|
3
|
+
|
|
4
|
+
# To run these tests, set the variables at the top of the class
|
|
5
|
+
# definition.
|
|
6
|
+
#
|
|
7
|
+
# Note that NetRegistry does not provide any sort of test
|
|
8
|
+
# server/account, so you'll probably want to refund any uncredited
|
|
9
|
+
# purchases through the NetRegistry console at www.netregistry.com .
|
|
10
|
+
# All purchases made in these tests are $1, so hopefully you won't be
|
|
11
|
+
# sent broke if you forget...
|
|
12
|
+
class NetRegistryTest < Test::Unit::TestCase
|
|
13
|
+
|
|
14
|
+
def setup
|
|
15
|
+
@gateway = NetRegistryGateway.new(fixtures(:net_registry))
|
|
16
|
+
|
|
17
|
+
@amount = 100
|
|
18
|
+
@valid_creditcard = credit_card
|
|
19
|
+
@invalid_creditcard = credit_card('41111111111111111')
|
|
20
|
+
@expired_creditcard = credit_card('4111111111111111', :year => '2000')
|
|
21
|
+
@invalid_month_creditcard = credit_card('4111111111111111', :month => '13')
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def test_successful_purchase_and_credit
|
|
25
|
+
response = @gateway.purchase(@amount, @valid_creditcard)
|
|
26
|
+
assert_equal 'approved', response.params['status']
|
|
27
|
+
assert_success response
|
|
28
|
+
assert_match(/\A\d{16}\z/, response.authorization)
|
|
29
|
+
|
|
30
|
+
response = @gateway.credit(@amount, response.authorization)
|
|
31
|
+
assert_equal 'approved', response.params['status']
|
|
32
|
+
assert_success response
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# #authorize and #capture haven't been tested because the author's
|
|
36
|
+
# account hasn't been setup to support these methods (see the
|
|
37
|
+
# documentation for the NetRegistry gateway class). There is no
|
|
38
|
+
# mention of a #void transaction in NetRegistry's documentation,
|
|
39
|
+
# either.
|
|
40
|
+
if ENV['TEST_AUTHORIZE_AND_CAPTURE']
|
|
41
|
+
def test_successful_authorization_and_capture
|
|
42
|
+
response = @gateway.authorize(@amount, @valid_creditcard)
|
|
43
|
+
assert_success response
|
|
44
|
+
assert_equal 'approved', response.params['status']
|
|
45
|
+
assert_match(/\A\d{6}\z/, response.authorization)
|
|
46
|
+
|
|
47
|
+
response = @gateway.capture(@amount,
|
|
48
|
+
response.authorization,
|
|
49
|
+
:credit_card => @valid_creditcard)
|
|
50
|
+
assert_success response
|
|
51
|
+
assert_equal 'approved', response.params['status']
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def test_purchase_with_invalid_credit_card
|
|
56
|
+
response = @gateway.purchase(@amount, @invalid_creditcard)
|
|
57
|
+
assert_equal 'declined', response.params['status']
|
|
58
|
+
assert_equal 'INVALID CARD', response.message
|
|
59
|
+
assert_failure response
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def test_purchase_with_expired_credit_card
|
|
63
|
+
response = @gateway.purchase(@amount, @expired_creditcard)
|
|
64
|
+
assert_equal 'failed', response.params['status']
|
|
65
|
+
assert_equal 'CARD EXPIRED', response.message
|
|
66
|
+
assert_failure response
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_purchase_with_invalid_month
|
|
70
|
+
response = @gateway.purchase(@amount, @invalid_month_creditcard)
|
|
71
|
+
assert_equal 'failed', response.params['status']
|
|
72
|
+
assert_equal 'Invalid month', response.message
|
|
73
|
+
assert_failure response
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def test_bad_login
|
|
77
|
+
gateway = NetRegistryGateway.new(
|
|
78
|
+
:login => 'bad-login',
|
|
79
|
+
:password => 'bad-login'
|
|
80
|
+
)
|
|
81
|
+
response = gateway.purchase(@amount, @valid_creditcard)
|
|
82
|
+
assert_equal 'failed', response.params['status']
|
|
83
|
+
assert_failure response
|
|
84
|
+
end
|
|
85
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemoteNetbillingTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@gateway = NetbillingGateway.new(fixtures(:netbilling))
|
|
7
|
+
|
|
8
|
+
@credit_card = credit_card('4444111111111119',
|
|
9
|
+
:month => '9',
|
|
10
|
+
:year => '2009',
|
|
11
|
+
:verification_value => nil
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
@address = { :address1 => '1600 Amphitheatre Parkway',
|
|
15
|
+
:city => 'Mountain View',
|
|
16
|
+
:state => 'CA',
|
|
17
|
+
:country => 'US',
|
|
18
|
+
:zip => '94043',
|
|
19
|
+
:phone => '650-253-0001'
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@options = {
|
|
23
|
+
:billing_address => @address,
|
|
24
|
+
:description => 'Internet purchase'
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@amount = 100
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_successful_purchase
|
|
31
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
32
|
+
assert_success response
|
|
33
|
+
assert_false response.authorization.blank?
|
|
34
|
+
assert_equal NetbillingGateway::SUCCESS_MESSAGE, response.message
|
|
35
|
+
assert response.test?
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def test_unsuccessful_purchase
|
|
39
|
+
@credit_card.year = '2006'
|
|
40
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
41
|
+
assert_equal 'CARD EXPIRED', response.message
|
|
42
|
+
assert_failure response
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def test_authorize_and_capture
|
|
46
|
+
amount = @amount
|
|
47
|
+
assert auth = @gateway.authorize(amount, @credit_card, @options)
|
|
48
|
+
assert_success auth
|
|
49
|
+
assert_equal NetbillingGateway::SUCCESS_MESSAGE, auth.message
|
|
50
|
+
assert auth.authorization
|
|
51
|
+
assert capture = @gateway.capture(amount, auth.authorization)
|
|
52
|
+
assert_success capture
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def test_failed_capture
|
|
56
|
+
assert response = @gateway.capture(@amount, '1111')
|
|
57
|
+
assert_failure response
|
|
58
|
+
assert_equal NetbillingGateway::FAILURE_MESSAGE, response.message
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def test_invalid_login
|
|
62
|
+
gateway = NetbillingGateway.new(
|
|
63
|
+
:login => '',
|
|
64
|
+
:password => ''
|
|
65
|
+
)
|
|
66
|
+
assert response = gateway.purchase(@amount, @credit_card, @options)
|
|
67
|
+
assert_equal NetbillingGateway::FAILURE_MESSAGE, response.message
|
|
68
|
+
assert_failure response
|
|
69
|
+
end
|
|
70
|
+
end
|