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,136 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemotePaymentExpressTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@gateway = PaymentExpressGateway.new(fixtures(:payment_express))
|
|
7
|
+
|
|
8
|
+
@credit_card = credit_card('4111111111111111')
|
|
9
|
+
|
|
10
|
+
@options = {
|
|
11
|
+
:order_id => generate_unique_id,
|
|
12
|
+
:billing_address => address,
|
|
13
|
+
:email => 'cody@example.com',
|
|
14
|
+
:description => 'Store purchase'
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@amount = 100
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_successful_purchase
|
|
21
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
22
|
+
assert_equal "APPROVED", response.message
|
|
23
|
+
assert_success response
|
|
24
|
+
assert_not_nil response.authorization
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_successful_purchase_with_reference_id
|
|
28
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
29
|
+
assert_equal "APPROVED", response.message
|
|
30
|
+
assert_success response
|
|
31
|
+
assert_not_nil response.authorization
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_declined_purchase
|
|
35
|
+
assert response = @gateway.purchase(176, @credit_card, @options)
|
|
36
|
+
assert_equal 'DECLINED', response.message
|
|
37
|
+
assert_failure response
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_successful_authorization
|
|
41
|
+
assert response = @gateway.authorize(@amount, @credit_card, @options)
|
|
42
|
+
assert_equal "APPROVED", response.message
|
|
43
|
+
assert_success response
|
|
44
|
+
assert_not_nil response.authorization
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def test_authorize_and_capture
|
|
48
|
+
assert auth = @gateway.authorize(@amount, @credit_card, @options)
|
|
49
|
+
assert_success auth
|
|
50
|
+
assert_equal 'APPROVED', auth.message
|
|
51
|
+
assert auth.authorization
|
|
52
|
+
assert capture = @gateway.capture(@amount, auth.authorization)
|
|
53
|
+
assert_success capture
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def test_purchase_and_credit
|
|
57
|
+
amount = 10000
|
|
58
|
+
assert purchase = @gateway.purchase(amount, @credit_card, @options)
|
|
59
|
+
assert_success purchase
|
|
60
|
+
assert_equal 'APPROVED', purchase.message
|
|
61
|
+
assert !purchase.authorization.blank?
|
|
62
|
+
assert credit = @gateway.credit(amount, purchase.authorization, :description => "Giving a refund")
|
|
63
|
+
assert_success credit
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def test_failed_capture
|
|
67
|
+
assert response = @gateway.capture(@amount, '999')
|
|
68
|
+
assert_failure response
|
|
69
|
+
assert_equal 'IVL DPSTXNREF', response.message
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def test_invalid_login
|
|
73
|
+
gateway = PaymentExpressGateway.new(
|
|
74
|
+
:login => '',
|
|
75
|
+
:password => ''
|
|
76
|
+
)
|
|
77
|
+
assert response = gateway.purchase(@amount, @credit_card, @options)
|
|
78
|
+
assert_equal 'Invalid Credentials', response.message
|
|
79
|
+
assert_failure response
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def test_store_credit_card
|
|
83
|
+
assert response = @gateway.store(@credit_card)
|
|
84
|
+
assert_success response
|
|
85
|
+
assert_equal "APPROVED", response.message
|
|
86
|
+
assert !response.token.blank?
|
|
87
|
+
assert_not_nil response.token
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def test_store_with_custom_token
|
|
91
|
+
token = Time.now.to_i.to_s #hehe
|
|
92
|
+
assert response = @gateway.store(@credit_card, :billing_id => token)
|
|
93
|
+
assert_success response
|
|
94
|
+
assert_equal "APPROVED", response.message
|
|
95
|
+
assert !response.token.blank?
|
|
96
|
+
assert_not_nil response.token
|
|
97
|
+
assert_equal token, response.token
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def test_store_invalid_credit_card
|
|
101
|
+
original_number = @credit_card.number
|
|
102
|
+
@credit_card.number = 2
|
|
103
|
+
|
|
104
|
+
assert response = @gateway.store(@credit_card)
|
|
105
|
+
assert_failure response
|
|
106
|
+
ensure
|
|
107
|
+
@credit_card.number = original_number
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def test_store_and_charge
|
|
111
|
+
assert response = @gateway.store(@credit_card)
|
|
112
|
+
assert_success response
|
|
113
|
+
assert_equal "APPROVED", response.message
|
|
114
|
+
assert (token = response.token)
|
|
115
|
+
|
|
116
|
+
assert purchase = @gateway.purchase( @amount, token)
|
|
117
|
+
assert_equal "APPROVED", purchase.message
|
|
118
|
+
assert_success purchase
|
|
119
|
+
assert_not_nil purchase.authorization
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
def test_store_and_authorize_and_capture
|
|
123
|
+
assert response = @gateway.store(@credit_card)
|
|
124
|
+
assert_success response
|
|
125
|
+
assert_equal "APPROVED", response.message
|
|
126
|
+
assert (token = response.token)
|
|
127
|
+
|
|
128
|
+
assert auth = @gateway.authorize(@amount, token, @options)
|
|
129
|
+
assert_success auth
|
|
130
|
+
assert_equal 'APPROVED', auth.message
|
|
131
|
+
assert auth.authorization
|
|
132
|
+
assert capture = @gateway.capture(@amount, auth.authorization)
|
|
133
|
+
assert_success capture
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class PaypalExpressTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
Base.gateway_mode = :test
|
|
6
|
+
|
|
7
|
+
@gateway = PaypalExpressGateway.new(fixtures(:paypal_certificate))
|
|
8
|
+
|
|
9
|
+
@options = {
|
|
10
|
+
:order_id => '230000',
|
|
11
|
+
:email => 'buyer@jadedpallet.com',
|
|
12
|
+
:billing_address => { :name => 'Fred Brooks',
|
|
13
|
+
:address1 => '1234 Penny Lane',
|
|
14
|
+
:city => 'Jonsetown',
|
|
15
|
+
:state => 'NC',
|
|
16
|
+
:country => 'US',
|
|
17
|
+
:zip => '23456'
|
|
18
|
+
} ,
|
|
19
|
+
:description => 'Stuff that you purchased, yo!',
|
|
20
|
+
:ip => '10.0.0.1',
|
|
21
|
+
:return_url => 'http://example.com/return',
|
|
22
|
+
:cancel_return_url => 'http://example.com/cancel'
|
|
23
|
+
}
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_set_express_authorization
|
|
27
|
+
@options.update(
|
|
28
|
+
:return_url => 'http://example.com',
|
|
29
|
+
:cancel_return_url => 'http://example.com',
|
|
30
|
+
:email => 'Buyer1@paypal.com'
|
|
31
|
+
)
|
|
32
|
+
response = @gateway.setup_authorization(500, @options)
|
|
33
|
+
assert response.success?
|
|
34
|
+
assert response.test?
|
|
35
|
+
assert !response.params['token'].blank?
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def test_set_express_purchase
|
|
39
|
+
@options.update(
|
|
40
|
+
:return_url => 'http://example.com',
|
|
41
|
+
:cancel_return_url => 'http://example.com',
|
|
42
|
+
:email => 'Buyer1@paypal.com'
|
|
43
|
+
)
|
|
44
|
+
response = @gateway.setup_purchase(500, @options)
|
|
45
|
+
assert response.success?
|
|
46
|
+
assert response.test?
|
|
47
|
+
assert !response.params['token'].blank?
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class PaypalTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
Base.gateway_mode = :test
|
|
6
|
+
|
|
7
|
+
@gateway = PaypalGateway.new(fixtures(:paypal_certificate))
|
|
8
|
+
|
|
9
|
+
@creditcard = CreditCard.new(
|
|
10
|
+
:type => "visa",
|
|
11
|
+
:number => "4381258770269608", # Use a generated CC from the paypal Sandbox
|
|
12
|
+
:verification_value => "000",
|
|
13
|
+
:month => 1,
|
|
14
|
+
:year => Time.now.year + 1,
|
|
15
|
+
:first_name => 'Fred',
|
|
16
|
+
:last_name => 'Brooks'
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
@params = {
|
|
20
|
+
:order_id => generate_unique_id,
|
|
21
|
+
:email => 'buyer@jadedpallet.com',
|
|
22
|
+
:billing_address => { :name => 'Fred Brooks',
|
|
23
|
+
:address1 => '1234 Penny Lane',
|
|
24
|
+
:city => 'Jonsetown',
|
|
25
|
+
:state => 'NC',
|
|
26
|
+
:country => 'US',
|
|
27
|
+
:zip => '23456'
|
|
28
|
+
} ,
|
|
29
|
+
:description => 'Stuff that you purchased, yo!',
|
|
30
|
+
:ip => '10.0.0.1'
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@amount = 100
|
|
34
|
+
# test re-authorization, auth-id must be more than 3 days old.
|
|
35
|
+
# each auth-id can only be reauthorized and tested once.
|
|
36
|
+
# leave it commented if you don't want to test reauthorization.
|
|
37
|
+
#
|
|
38
|
+
#@three_days_old_auth_id = "9J780651TU4465545"
|
|
39
|
+
#@three_days_old_auth_id2 = "62503445A3738160X"
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_successful_purchase
|
|
43
|
+
response = @gateway.purchase(@amount, @creditcard, @params)
|
|
44
|
+
assert_success response
|
|
45
|
+
assert response.params['transaction_id']
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def test_successful_purchase_with_api_signature
|
|
49
|
+
gateway = PaypalGateway.new(fixtures(:paypal_signature))
|
|
50
|
+
response = gateway.purchase(@amount, @creditcard, @params)
|
|
51
|
+
assert_success response
|
|
52
|
+
assert response.params['transaction_id']
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def test_failed_purchase
|
|
56
|
+
@creditcard.number = '234234234234'
|
|
57
|
+
response = @gateway.purchase(@amount, @creditcard, @params)
|
|
58
|
+
assert_failure response
|
|
59
|
+
assert_nil response.params['transaction_id']
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def test_successful_authorization
|
|
63
|
+
response = @gateway.authorize(@amount, @creditcard, @params)
|
|
64
|
+
assert_success response
|
|
65
|
+
assert response.params['transaction_id']
|
|
66
|
+
assert_equal '1.00', response.params['amount']
|
|
67
|
+
assert_equal 'USD', response.params['amount_currency_id']
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def test_failed_authorization
|
|
71
|
+
@creditcard.number = '234234234234'
|
|
72
|
+
response = @gateway.authorize(@amount, @creditcard, @params)
|
|
73
|
+
assert_failure response
|
|
74
|
+
assert_nil response.params['transaction_id']
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def test_successful_reauthorization
|
|
78
|
+
return if not @three_days_old_auth_id
|
|
79
|
+
auth = @gateway.reauthorize(1000, @three_days_old_auth_id)
|
|
80
|
+
assert_success auth
|
|
81
|
+
assert auth.authorization
|
|
82
|
+
|
|
83
|
+
response = @gateway.capture(1000, auth.authorization)
|
|
84
|
+
assert_success response
|
|
85
|
+
assert response.params['transaction_id']
|
|
86
|
+
assert_equal '10.00', response.params['gross_amount']
|
|
87
|
+
assert_equal 'USD', response.params['gross_amount_currency_id']
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def test_failed_reauthorization
|
|
91
|
+
return if not @three_days_old_auth_id2 # was authed for $10, attempt $20
|
|
92
|
+
auth = @gateway.reauthorize(2000, @three_days_old_auth_id2)
|
|
93
|
+
assert_false auth?
|
|
94
|
+
assert !auth.authorization
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def test_successful_capture
|
|
98
|
+
auth = @gateway.authorize(@amount, @creditcard, @params)
|
|
99
|
+
assert_success auth
|
|
100
|
+
response = @gateway.capture(@amount, auth.authorization)
|
|
101
|
+
assert_success response
|
|
102
|
+
assert response.params['transaction_id']
|
|
103
|
+
assert_equal '1.00', response.params['gross_amount']
|
|
104
|
+
assert_equal 'USD', response.params['gross_amount_currency_id']
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def test_successful_voiding
|
|
108
|
+
auth = @gateway.authorize(@amount, @creditcard, @params)
|
|
109
|
+
assert_success auth
|
|
110
|
+
response = @gateway.void(auth.authorization)
|
|
111
|
+
assert_success response
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def test_purchase_and_full_credit
|
|
115
|
+
purchase = @gateway.purchase(@amount, @creditcard, @params)
|
|
116
|
+
assert_success purchase
|
|
117
|
+
|
|
118
|
+
credit = @gateway.credit(@amount, purchase.authorization, :note => 'Sorry')
|
|
119
|
+
assert_success credit
|
|
120
|
+
assert credit.test?
|
|
121
|
+
assert_equal 'USD', credit.params['net_refund_amount_currency_id']
|
|
122
|
+
assert_equal '0.67', credit.params['net_refund_amount']
|
|
123
|
+
assert_equal 'USD', credit.params['gross_refund_amount_currency_id']
|
|
124
|
+
assert_equal '1.00', credit.params['gross_refund_amount']
|
|
125
|
+
assert_equal 'USD', credit.params['fee_refund_amount_currency_id']
|
|
126
|
+
assert_equal '0.33', credit.params['fee_refund_amount']
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def test_failed_voiding
|
|
130
|
+
response = @gateway.void('foo')
|
|
131
|
+
assert_failure response
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def test_successful_transfer
|
|
135
|
+
response = @gateway.purchase(@amount, @creditcard, @params)
|
|
136
|
+
assert_success response
|
|
137
|
+
|
|
138
|
+
response = @gateway.transfer(@amount, 'joe@example.com', :subject => 'Your money', :note => 'Thanks for taking care of that')
|
|
139
|
+
assert_success response
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def test_failed_transfer
|
|
143
|
+
# paypal allows a max transfer of $10,000
|
|
144
|
+
response = @gateway.transfer(1000001, 'joe@example.com')
|
|
145
|
+
assert_failure response
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
def test_successful_multiple_transfer
|
|
149
|
+
response = @gateway.purchase(900, @creditcard, @params)
|
|
150
|
+
assert_success response
|
|
151
|
+
|
|
152
|
+
response = @gateway.transfer([@amount, 'joe@example.com'],
|
|
153
|
+
[600, 'jane@example.com', {:note => 'Thanks for taking care of that'}],
|
|
154
|
+
:subject => 'Your money')
|
|
155
|
+
assert_success response
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
def test_failed_multiple_transfer
|
|
159
|
+
response = @gateway.purchase(25100, @creditcard, @params)
|
|
160
|
+
assert_success response
|
|
161
|
+
|
|
162
|
+
# You can only include up to 250 recipients
|
|
163
|
+
recipients = (1..251).collect {|i| [100, "person#{i}@example.com"]}
|
|
164
|
+
response = @gateway.transfer(*recipients)
|
|
165
|
+
assert_failure response
|
|
166
|
+
end
|
|
167
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class PlugnpayTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
@gateway = PlugnpayGateway.new(fixtures(:plugnpay))
|
|
6
|
+
@good_credit_card = credit_card('4242424242424242')
|
|
7
|
+
@bad_credit_card = credit_card('1234123412341234')
|
|
8
|
+
@options = {
|
|
9
|
+
:billing_address => address,
|
|
10
|
+
:description => 'Store purchaes'
|
|
11
|
+
}
|
|
12
|
+
@amount = 100
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_bad_credit_card
|
|
17
|
+
assert response = @gateway.authorize(@amount, @bad_credit_card, @options)
|
|
18
|
+
assert_failure response
|
|
19
|
+
assert_equal 'Invalid Credit Card No.', response.message
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_good_credit_card
|
|
23
|
+
assert response = @gateway.authorize(@amount, @good_credit_card, @options)
|
|
24
|
+
assert_success response
|
|
25
|
+
assert !response.authorization.blank?
|
|
26
|
+
assert_equal 'Success', response.message
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def test_purchase_transaction
|
|
30
|
+
assert response = @gateway.purchase(@amount, @good_credit_card, @options)
|
|
31
|
+
assert_success response
|
|
32
|
+
assert !response.authorization.blank?
|
|
33
|
+
assert_equal 'Success', response.message
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Capture, and Void require that you Whitelist your IP address.
|
|
37
|
+
# In the gateway admin tool, you must add your IP address to the allowed addresses and uncheck "Remote client" under the
|
|
38
|
+
# "Auth Transactions" section of the "Security Requirements" area in the test account Security Administration Area.
|
|
39
|
+
def test_authorization_and_capture
|
|
40
|
+
assert authorization = @gateway.authorize(@amount, @good_credit_card, @options)
|
|
41
|
+
assert_success authorization
|
|
42
|
+
|
|
43
|
+
assert capture = @gateway.capture(@amount, authorization.authorization)
|
|
44
|
+
assert_success capture
|
|
45
|
+
assert_equal 'Success', capture.message
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def test_authorization_and_void
|
|
49
|
+
assert authorization = @gateway.authorize(@amount, @good_credit_card, @options)
|
|
50
|
+
assert_success authorization
|
|
51
|
+
|
|
52
|
+
assert void = @gateway.void(authorization.authorization)
|
|
53
|
+
assert_success void
|
|
54
|
+
assert_equal 'Success', void.message
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def test_purchase_and_credit
|
|
58
|
+
assert purchase = @gateway.purchase(@amount, @good_credit_card, @options)
|
|
59
|
+
assert_success purchase
|
|
60
|
+
|
|
61
|
+
assert credit = @gateway.credit(@amount, purchase.authorization)
|
|
62
|
+
assert_success credit
|
|
63
|
+
assert_equal 'Success', credit.message
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def test_credit_with_no_previous_transaction
|
|
67
|
+
assert credit = @gateway.credit(@amount, @good_credit_card, @options)
|
|
68
|
+
|
|
69
|
+
assert_success credit
|
|
70
|
+
assert_equal 'Success', credit.message
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
# Some of the standard tests have been removed at Protx test
|
|
4
|
+
# server is pants and accepts anything and says Status=OK. (shift)
|
|
5
|
+
# The tests for American Express will only pass if your account is
|
|
6
|
+
# American express enabled.
|
|
7
|
+
class RemoteProtxTest < Test::Unit::TestCase
|
|
8
|
+
# set to true to run the tests in the simulated environment
|
|
9
|
+
ProtxGateway.simulate = false
|
|
10
|
+
|
|
11
|
+
def setup
|
|
12
|
+
@gateway = ProtxGateway.new(fixtures(:protx))
|
|
13
|
+
|
|
14
|
+
@amex = CreditCard.new(
|
|
15
|
+
:number => '374200000000004',
|
|
16
|
+
:month => 12,
|
|
17
|
+
:year => next_year,
|
|
18
|
+
:verification_value => 4887,
|
|
19
|
+
:first_name => 'Tekin',
|
|
20
|
+
:last_name => 'Suleyman',
|
|
21
|
+
:type => 'american_express'
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
@maestro = CreditCard.new(
|
|
25
|
+
:number => '5641820000000005',
|
|
26
|
+
:month => 12,
|
|
27
|
+
:year => next_year,
|
|
28
|
+
:issue_number => '01',
|
|
29
|
+
:start_month => 12,
|
|
30
|
+
:start_year => next_year - 2,
|
|
31
|
+
:verification_value => 123,
|
|
32
|
+
:first_name => 'Tekin',
|
|
33
|
+
:last_name => 'Suleyman',
|
|
34
|
+
:type => 'maestro'
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
@visa = CreditCard.new(
|
|
38
|
+
:number => '4929000000006',
|
|
39
|
+
:month => 6,
|
|
40
|
+
:year => next_year,
|
|
41
|
+
:verification_value => 123,
|
|
42
|
+
:first_name => 'Tekin',
|
|
43
|
+
:last_name => 'Suleyman',
|
|
44
|
+
:type => 'visa'
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
@solo = CreditCard.new(
|
|
48
|
+
:number => '6334900000000005',
|
|
49
|
+
:month => 6,
|
|
50
|
+
:year => next_year,
|
|
51
|
+
:issue_number => 1,
|
|
52
|
+
:start_month => 12,
|
|
53
|
+
:start_year => next_year - 2,
|
|
54
|
+
:verification_value => 227,
|
|
55
|
+
:first_name => 'Tekin',
|
|
56
|
+
:last_name => 'Suleyman',
|
|
57
|
+
:type => 'solo'
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
@mastercard = CreditCard.new(
|
|
61
|
+
:number => '5404000000000001',
|
|
62
|
+
:month => 12,
|
|
63
|
+
:year => next_year,
|
|
64
|
+
:verification_value => 419,
|
|
65
|
+
:first_name => 'Tekin',
|
|
66
|
+
:last_name => 'Suleyman',
|
|
67
|
+
:type => 'master'
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
@electron = CreditCard.new(
|
|
71
|
+
:number => '4917300000000008',
|
|
72
|
+
:month => 12,
|
|
73
|
+
:year => next_year,
|
|
74
|
+
:verification_value => 123,
|
|
75
|
+
:first_name => 'Tekin',
|
|
76
|
+
:last_name => 'Suleyman',
|
|
77
|
+
:type => 'electron'
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
@declined_card = CreditCard.new(
|
|
81
|
+
:number => '4111111111111111',
|
|
82
|
+
:month => 9,
|
|
83
|
+
:year => next_year,
|
|
84
|
+
:first_name => 'Tekin',
|
|
85
|
+
:last_name => 'Suleyman',
|
|
86
|
+
:type => 'visa'
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
@options = {
|
|
90
|
+
:billing_address => {
|
|
91
|
+
:name => 'Tekin Suleyman',
|
|
92
|
+
:address1 => 'Flat 10 Lapwing Court',
|
|
93
|
+
:address2 => 'West Didsbury',
|
|
94
|
+
:city => "Manchester",
|
|
95
|
+
:county => 'Greater Manchester',
|
|
96
|
+
:country => 'GB',
|
|
97
|
+
:zip => 'M20 2PS'
|
|
98
|
+
},
|
|
99
|
+
:shipping_address => {
|
|
100
|
+
:name => 'Tekin Suleyman',
|
|
101
|
+
:address1 => '120 Grosvenor St',
|
|
102
|
+
:city => "Manchester",
|
|
103
|
+
:county => 'Greater Manchester',
|
|
104
|
+
:country => 'GB',
|
|
105
|
+
:zip => 'M1 7QW'
|
|
106
|
+
},
|
|
107
|
+
:order_id => generate_unique_id,
|
|
108
|
+
:description => 'Store purchase',
|
|
109
|
+
:ip => '86.150.65.37',
|
|
110
|
+
:email => 'tekin@tekin.co.uk',
|
|
111
|
+
:phone => '0161 123 4567'
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
@amount = 100
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def test_successful_mastercard_purchase
|
|
118
|
+
assert response = @gateway.purchase(@amount, @mastercard, @options)
|
|
119
|
+
assert_success response
|
|
120
|
+
|
|
121
|
+
assert response.test?
|
|
122
|
+
assert !response.authorization.blank?
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def test_unsuccessful_purchase
|
|
126
|
+
assert response = @gateway.purchase(@amount, @declined_card, @options)
|
|
127
|
+
assert_failure response
|
|
128
|
+
|
|
129
|
+
assert response.test?
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def test_successful_authorization_and_capture
|
|
133
|
+
assert auth = @gateway.authorize(@amount, @mastercard, @options)
|
|
134
|
+
assert_success auth
|
|
135
|
+
|
|
136
|
+
assert capture = @gateway.capture(@amount, auth.authorization)
|
|
137
|
+
assert_success capture
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def test_successful_authorization_and_void
|
|
141
|
+
assert auth = @gateway.authorize(@amount, @mastercard, @options)
|
|
142
|
+
assert_success auth
|
|
143
|
+
|
|
144
|
+
assert abort = @gateway.void(auth.authorization)
|
|
145
|
+
assert_success abort
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
def test_successful_purchase_and_void
|
|
149
|
+
assert purchase = @gateway.purchase(@amount, @mastercard, @options)
|
|
150
|
+
assert_success purchase
|
|
151
|
+
|
|
152
|
+
assert void = @gateway.void(purchase.authorization)
|
|
153
|
+
assert_success void
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def test_successful_purchase_and_credit
|
|
157
|
+
assert purchase = @gateway.purchase(@amount, @mastercard, @options)
|
|
158
|
+
assert_success purchase
|
|
159
|
+
|
|
160
|
+
assert credit = @gateway.credit(@amount, purchase.authorization,
|
|
161
|
+
:description => 'Crediting trx',
|
|
162
|
+
:order_id => generate_unique_id
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
assert_success credit
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
def test_successful_visa_purchase
|
|
169
|
+
assert response = @gateway.purchase(@amount, @visa, @options)
|
|
170
|
+
assert_success response
|
|
171
|
+
assert response.test?
|
|
172
|
+
assert !response.authorization.blank?
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
def test_successful_maestro_purchase
|
|
176
|
+
assert response = @gateway.purchase(@amount, @maestro, @options)
|
|
177
|
+
assert_success response
|
|
178
|
+
assert response.test?
|
|
179
|
+
assert !response.authorization.blank?
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
def test_successful_solo_purchase
|
|
183
|
+
assert response = @gateway.purchase(@amount, @solo, @options)
|
|
184
|
+
assert_success response
|
|
185
|
+
assert response.test?
|
|
186
|
+
assert !response.authorization.blank?
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
def test_successful_amex_purchase
|
|
190
|
+
assert response = @gateway.purchase(@amount, @amex, @options)
|
|
191
|
+
assert_success response
|
|
192
|
+
assert response.test?
|
|
193
|
+
assert !response.authorization.blank?
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
def test_successful_electron_purchase
|
|
197
|
+
assert response = @gateway.purchase(@amount, @electron, @options)
|
|
198
|
+
assert_success response
|
|
199
|
+
assert response.test?
|
|
200
|
+
assert !response.authorization.blank?
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
def test_invalid_login
|
|
204
|
+
message = ProtxGateway.simulate ? 'VSP Simulator cannot find your vendor name. Ensure you have have supplied a Vendor field with your VSP Vendor name assigned to it.' : '3034 : The Vendor or VendorName value is required.'
|
|
205
|
+
|
|
206
|
+
gateway = ProtxGateway.new(
|
|
207
|
+
:login => ''
|
|
208
|
+
)
|
|
209
|
+
assert response = gateway.purchase(@amount, @mastercard, @options)
|
|
210
|
+
assert_equal message, response.message
|
|
211
|
+
assert_failure response
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
private
|
|
215
|
+
|
|
216
|
+
def next_year
|
|
217
|
+
Date.today.year + 1
|
|
218
|
+
end
|
|
219
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class PsigateRemoteTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
Base.mode = :test
|
|
7
|
+
@gateway = PsigateGateway.new(fixtures(:psigate))
|
|
8
|
+
|
|
9
|
+
@amount = 2400
|
|
10
|
+
@creditcard = credit_card('4242424242424242')
|
|
11
|
+
@options = {
|
|
12
|
+
:order_id => generate_unique_id,
|
|
13
|
+
:billing_address => address,
|
|
14
|
+
:email => 'jack@example.com'
|
|
15
|
+
}
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def test_successful_authorization
|
|
19
|
+
assert response = @gateway.authorize(@amount, @creditcard, @options)
|
|
20
|
+
assert_success response
|
|
21
|
+
assert_equal @options[:order_id], response.authorization
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def test_successful_purchase
|
|
25
|
+
assert response = @gateway.purchase(@amount, @creditcard, @options)
|
|
26
|
+
assert_success response
|
|
27
|
+
assert_equal @options[:order_id], response.authorization
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_successful_authorization_and_capture
|
|
31
|
+
assert authorization = @gateway.authorize(@amount, @creditcard, @options)
|
|
32
|
+
assert_success authorization
|
|
33
|
+
|
|
34
|
+
assert capture = @gateway.capture(@amount, authorization.authorization)
|
|
35
|
+
assert_success capture
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def test_successful_purchase_and_credit
|
|
39
|
+
assert purchase = @gateway.purchase(@amount, @creditcard, @options)
|
|
40
|
+
assert_success purchase
|
|
41
|
+
|
|
42
|
+
assert credit = @gateway.credit(@amount, purchase.authorization)
|
|
43
|
+
assert_success credit
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_failed_purchase
|
|
47
|
+
assert response = @gateway.purchase(@amount, @creditcard, @options.update(:test_result => 'D'))
|
|
48
|
+
assert_failure response
|
|
49
|
+
end
|
|
50
|
+
end
|