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,115 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class MonerisRemoteTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
Base.mode = :test
|
|
6
|
+
|
|
7
|
+
@gateway = MonerisUsaGateway.new(fixtures(:moneris_usa))
|
|
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
|
+
@in_30_days = (Time.now + 30*24*60*60).strftime("%Y/%m/%d")
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def test_successful_purchase
|
|
19
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
20
|
+
assert_success response
|
|
21
|
+
assert_match 'Approved', response.message
|
|
22
|
+
assert_false response.authorization.blank?
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def test_successful_authorization
|
|
26
|
+
response = @gateway.authorize(@amount, @credit_card, @options)
|
|
27
|
+
assert_success response
|
|
28
|
+
assert_false response.authorization.blank?
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def test_failed_authorization
|
|
32
|
+
response = @gateway.authorize(105, @credit_card, @options)
|
|
33
|
+
assert_failure response
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_successful_authorization_and_capture
|
|
37
|
+
response = @gateway.authorize(@amount, @credit_card, @options)
|
|
38
|
+
assert_success response
|
|
39
|
+
assert response.authorization
|
|
40
|
+
|
|
41
|
+
response = @gateway.capture(@amount, response.authorization)
|
|
42
|
+
assert_success response
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def test_successful_authorization_and_capture_and_void
|
|
46
|
+
response = @gateway.authorize(@amount, @credit_card, @options)
|
|
47
|
+
assert_success response
|
|
48
|
+
assert response.authorization
|
|
49
|
+
|
|
50
|
+
response = @gateway.capture(@amount, response.authorization)
|
|
51
|
+
assert_success response
|
|
52
|
+
assert response.authorization
|
|
53
|
+
|
|
54
|
+
void = @gateway.void(response.authorization)
|
|
55
|
+
assert_success void
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def test_successful_purchase_and_void
|
|
59
|
+
purchase = @gateway.purchase(@amount, @credit_card, @options)
|
|
60
|
+
assert_success purchase
|
|
61
|
+
|
|
62
|
+
void = @gateway.void(purchase.authorization)
|
|
63
|
+
assert_success void
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def test_failed_purchase_and_void
|
|
67
|
+
purchase = @gateway.purchase(101, @credit_card, @options)
|
|
68
|
+
assert_failure purchase
|
|
69
|
+
|
|
70
|
+
void = @gateway.void(purchase.authorization)
|
|
71
|
+
assert_failure void
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def test_successful_purchase_and_credit
|
|
75
|
+
purchase = @gateway.purchase(@amount, @credit_card, @options)
|
|
76
|
+
assert_success purchase
|
|
77
|
+
|
|
78
|
+
credit = @gateway.credit(@amount, purchase.authorization)
|
|
79
|
+
assert_success credit
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def test_failed_purchase_from_error
|
|
83
|
+
assert response = @gateway.purchase(101, @credit_card, @options)
|
|
84
|
+
assert_failure response
|
|
85
|
+
assert_match /EXCEEDS LIMIT/i, response.message
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def test_successful_recurring_purchase
|
|
89
|
+
assert response = @gateway.recurring_purchase(@amount, @credit_card, :month, 1, 6, @in_30_days, true, @options)
|
|
90
|
+
assert_success response
|
|
91
|
+
assert_match /Approved [0-9]+ recurring transaction successfully registered/, response.message
|
|
92
|
+
assert_equal '1.00', response.params['trans_amount']
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def test_successful_recurring_purchase_not_starting_now
|
|
96
|
+
assert response = @gateway.recurring_purchase(@amount, @credit_card, :month, 1, 6, @in_30_days, false, @options)
|
|
97
|
+
assert_success response
|
|
98
|
+
assert_equal 'Recurring transaction successfully registered', response.message
|
|
99
|
+
assert_nil response.params['trans_amount']
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def test_successful_recurring_purchase_differing_recurring_amount
|
|
103
|
+
assert response = @gateway.recurring_purchase(@amount, @credit_card, :month, 1, 6, @in_30_days, true, @options.merge(:recur_amount => 2000))
|
|
104
|
+
assert_success response
|
|
105
|
+
assert_match /Approved [0-9]+ recurring transaction successfully registered/, response.message
|
|
106
|
+
assert_equal '1.00', response.params['trans_amount']
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def test_failed_recurring_purchase
|
|
110
|
+
assert response = @gateway.recurring_purchase(101, @credit_card, :month, 1, 6, @in_30_days, true, @options)
|
|
111
|
+
assert_failure response
|
|
112
|
+
assert_match /EXCEEDS LIMIT/i, response.message
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
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
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemoteOgoneTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@gateway = OgoneGateway.new(fixtures(:ogone))
|
|
7
|
+
@amount = 100
|
|
8
|
+
@credit_card = credit_card('4000100011112224')
|
|
9
|
+
@declined_card = credit_card('1111111111111111')
|
|
10
|
+
@options = {
|
|
11
|
+
:order_id => generate_unique_id[0...30],
|
|
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 OgoneGateway::SUCCESS_MESSAGE, response.message
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_successful_purchase_without_order_id
|
|
24
|
+
@options.delete(:order_id)
|
|
25
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
26
|
+
assert_success response
|
|
27
|
+
assert_equal OgoneGateway::SUCCESS_MESSAGE, response.message
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_unsuccessful_purchase
|
|
31
|
+
assert response = @gateway.purchase(@amount, @declined_card, @options)
|
|
32
|
+
assert_failure response
|
|
33
|
+
assert_equal 'no brand', response.message
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_authorize_and_capture
|
|
37
|
+
assert auth = @gateway.authorize(@amount, @credit_card, @options)
|
|
38
|
+
assert_success auth
|
|
39
|
+
assert_equal OgoneGateway::SUCCESS_MESSAGE, auth.message
|
|
40
|
+
assert auth.authorization
|
|
41
|
+
assert capture = @gateway.capture(@amount, auth.authorization)
|
|
42
|
+
assert_success capture
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def test_unsuccessful_capture
|
|
46
|
+
assert response = @gateway.capture(@amount, '')
|
|
47
|
+
assert_failure response
|
|
48
|
+
assert_equal 'no card no, no exp date, no brand', response.message
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def test_successful_void
|
|
52
|
+
assert auth = @gateway.authorize(@amount, @credit_card, @options)
|
|
53
|
+
assert_success auth
|
|
54
|
+
assert auth.authorization
|
|
55
|
+
assert void = @gateway.void(auth.authorization)
|
|
56
|
+
assert_equal OgoneGateway::SUCCESS_MESSAGE, auth.message
|
|
57
|
+
assert_success void
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def test_successful_referenced_credit
|
|
61
|
+
assert purchase = @gateway.purchase(@amount, @credit_card, @options)
|
|
62
|
+
assert_success purchase
|
|
63
|
+
assert credit = @gateway.credit(@amount, purchase.authorization, @options)
|
|
64
|
+
assert_success credit
|
|
65
|
+
assert credit.authorization
|
|
66
|
+
assert_equal OgoneGateway::SUCCESS_MESSAGE, credit.message
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_unsuccessful_referenced_credit
|
|
70
|
+
assert purchase = @gateway.purchase(@amount, @credit_card, @options)
|
|
71
|
+
assert_success purchase
|
|
72
|
+
assert credit = @gateway.credit(@amount+1, purchase.authorization, @options) # too much refund requested
|
|
73
|
+
assert_failure credit
|
|
74
|
+
assert credit.authorization
|
|
75
|
+
assert_equal 'Overflow in refunds requests/1/1', credit.message
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def test_successful_unreferenced_credit
|
|
79
|
+
assert credit = @gateway.credit(@amount, @credit_card, @options)
|
|
80
|
+
assert_success credit
|
|
81
|
+
assert credit.authorization
|
|
82
|
+
assert_equal OgoneGateway::SUCCESS_MESSAGE, credit.message
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def test_reference_transactions
|
|
86
|
+
# Setting an alias
|
|
87
|
+
assert response = @gateway.purchase(@amount, credit_card('4000100011112224'), @options.merge(:store => "awesomeman", :order_id=>Time.now.to_i.to_s+"1"))
|
|
88
|
+
assert_success response
|
|
89
|
+
# Updating an alias
|
|
90
|
+
assert response = @gateway.purchase(@amount, credit_card('4111111111111111'), @options.merge(:store => "awesomeman", :order_id=>Time.now.to_i.to_s+"2"))
|
|
91
|
+
assert_success response
|
|
92
|
+
# Using an alias (i.e. don't provide the credit card)
|
|
93
|
+
assert response = @gateway.purchase(@amount, "awesomeman", @options.merge(:order_id=>Time.now.to_i.to_s+"3"))
|
|
94
|
+
assert_success response
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def test_invalid_login
|
|
98
|
+
gateway = OgoneGateway.new(
|
|
99
|
+
:login => '',
|
|
100
|
+
:user => '',
|
|
101
|
+
:password => ''
|
|
102
|
+
)
|
|
103
|
+
assert response = gateway.purchase(@amount, @credit_card, @options)
|
|
104
|
+
assert_failure response
|
|
105
|
+
assert_equal 'no pspid', response.message
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
end
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class PayJunctionTest < Test::Unit::TestCase
|
|
4
|
+
include ActiveMerchant::Billing
|
|
5
|
+
|
|
6
|
+
cattr_accessor :current_invoice
|
|
7
|
+
|
|
8
|
+
AMOUNT = 250
|
|
9
|
+
|
|
10
|
+
def setup
|
|
11
|
+
@gateway = PayJunctionGateway.new(fixtures(:pay_junction))
|
|
12
|
+
|
|
13
|
+
@credit_card = credit_card('4444333322221111', :verification_value => '123')
|
|
14
|
+
|
|
15
|
+
@valid_verification_value = '123'
|
|
16
|
+
@invalid_verification_value = '1234'
|
|
17
|
+
|
|
18
|
+
@valid_address = {
|
|
19
|
+
:address1 => '123 Test St.',
|
|
20
|
+
:address2 => nil,
|
|
21
|
+
:city => 'Somewhere',
|
|
22
|
+
:state => 'CA',
|
|
23
|
+
:zip => '90001'
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@invalid_address = {
|
|
27
|
+
:address1 => '187 Apple Tree Lane.',
|
|
28
|
+
:address2 => nil,
|
|
29
|
+
:city => 'Woodside',
|
|
30
|
+
:state => 'CA',
|
|
31
|
+
:zip => '94062'
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@options = { :billing_address => @valid_address, :order_id => generate_unique_id }
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_successful_purchase
|
|
38
|
+
assert response = @gateway.purchase(AMOUNT, @credit_card, @options)
|
|
39
|
+
assert_equal PayJunctionGateway::SUCCESS_MESSAGE, response.message
|
|
40
|
+
assert_equal 'capture', response.params["posture"], 'Should be captured funds'
|
|
41
|
+
assert_equal 'charge', response.params["transaction_action"]
|
|
42
|
+
assert_success response
|
|
43
|
+
assert response.test?
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_successful_purchase_with_cvv
|
|
47
|
+
@credit_card.verification_value = @valid_verification_value
|
|
48
|
+
assert response = @gateway.purchase(AMOUNT, @credit_card, @options)
|
|
49
|
+
|
|
50
|
+
assert_equal PayJunctionGateway::SUCCESS_MESSAGE, response.message
|
|
51
|
+
assert_equal 'capture', response.params["posture"], 'Should be captured funds'
|
|
52
|
+
assert_equal 'charge', response.params["transaction_action"]
|
|
53
|
+
|
|
54
|
+
assert_success response
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def test_successful_authorize
|
|
58
|
+
assert response = @gateway.authorize( AMOUNT, @credit_card, @options)
|
|
59
|
+
|
|
60
|
+
assert_equal PayJunctionGateway::SUCCESS_MESSAGE, response.message
|
|
61
|
+
assert_equal 'hold', response.params["posture"], 'Should be a held charge'
|
|
62
|
+
assert_equal 'charge', response.params["transaction_action"]
|
|
63
|
+
|
|
64
|
+
assert_success response
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def test_successful_capture
|
|
68
|
+
auth = @gateway.authorize(AMOUNT, @credit_card, @options)
|
|
69
|
+
assert_success auth
|
|
70
|
+
|
|
71
|
+
response = @gateway.capture(AMOUNT, auth.authorization, @options)
|
|
72
|
+
assert_success response
|
|
73
|
+
assert_equal 'capture', response.params["posture"], 'Should be a capture'
|
|
74
|
+
assert_equal auth.authorization, response.authorization,
|
|
75
|
+
"Should maintain transaction ID across request"
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def test_successful_credit
|
|
79
|
+
purchase = @gateway.purchase(AMOUNT, @credit_card, @options)
|
|
80
|
+
assert_success purchase
|
|
81
|
+
|
|
82
|
+
assert response = @gateway.credit(success_price, purchase.authorization)
|
|
83
|
+
assert_equal 'refund', response.params["transaction_action"]
|
|
84
|
+
|
|
85
|
+
assert_success response
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def test_successful_void
|
|
89
|
+
order_id = generate_unique_id
|
|
90
|
+
purchase = @gateway.purchase(AMOUNT, @credit_card, @options)
|
|
91
|
+
assert_success purchase
|
|
92
|
+
|
|
93
|
+
assert response = @gateway.void(AMOUNT, purchase.authorization, :order_id => order_id)
|
|
94
|
+
assert_success response
|
|
95
|
+
assert_equal 'void', response.params["posture"], 'Should be a capture'
|
|
96
|
+
assert_equal purchase.authorization, response.authorization,
|
|
97
|
+
"Should maintain transaction ID across request"
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def test_successful_instant_purchase
|
|
101
|
+
# this takes advatange of the PayJunction feature where another
|
|
102
|
+
# transaction can be executed if you have the transaction ID of a
|
|
103
|
+
# previous successful transaction.
|
|
104
|
+
|
|
105
|
+
purchase = @gateway.purchase( AMOUNT, @credit_card, @options)
|
|
106
|
+
assert_success purchase
|
|
107
|
+
|
|
108
|
+
assert response = @gateway.purchase(AMOUNT, purchase.authorization, :order_id => generate_unique_id)
|
|
109
|
+
|
|
110
|
+
assert_equal PayJunctionGateway::SUCCESS_MESSAGE, response.message
|
|
111
|
+
assert_equal 'capture', response.params["posture"], 'Should be captured funds'
|
|
112
|
+
assert_equal 'charge', response.params["transaction_action"]
|
|
113
|
+
assert_not_equal purchase.authorization, response.authorization,
|
|
114
|
+
'Should have recieved new transaction ID'
|
|
115
|
+
|
|
116
|
+
assert_success response
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def test_successful_recurring
|
|
120
|
+
assert response = @gateway.recurring(AMOUNT, @credit_card,
|
|
121
|
+
:periodicity => :monthly,
|
|
122
|
+
:payments => 12,
|
|
123
|
+
:order_id => generate_unique_id
|
|
124
|
+
)
|
|
125
|
+
|
|
126
|
+
assert_equal PayJunctionGateway::SUCCESS_MESSAGE, response.message
|
|
127
|
+
assert_equal 'charge', response.params["transaction_action"]
|
|
128
|
+
|
|
129
|
+
assert_success response
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def test_should_send_invoice
|
|
133
|
+
response = @gateway.purchase(AMOUNT, @credit_card, @options)
|
|
134
|
+
assert_success response
|
|
135
|
+
|
|
136
|
+
assert_equal @options[:order_id], response.params["invoice_number"], 'Should have set invoice'
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
private
|
|
140
|
+
def success_price
|
|
141
|
+
200 + rand(200)
|
|
142
|
+
end
|
|
143
|
+
end
|