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,46 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemoveUsaEpayTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
Base.gateway_mode = :test
|
|
6
|
+
@gateway = UsaEpayGateway.new(fixtures(:usa_epay))
|
|
7
|
+
@creditcard = credit_card('4000100011112224')
|
|
8
|
+
@declined_card = credit_card('4000300011112220')
|
|
9
|
+
@options = { :billing_address => address }
|
|
10
|
+
@amount = 100
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def test_successful_purchase
|
|
14
|
+
assert response = @gateway.purchase(@amount, @creditcard, @options)
|
|
15
|
+
assert_equal 'Success', response.message
|
|
16
|
+
assert_success response
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_unsuccessful_purchase
|
|
20
|
+
assert response = @gateway.purchase(@amount, @declined_card, @options)
|
|
21
|
+
assert_equal 'Card Declined', response.message
|
|
22
|
+
assert_failure response
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def test_authorize_and_capture
|
|
26
|
+
assert auth = @gateway.authorize(@amount, @creditcard, @options)
|
|
27
|
+
assert_success auth
|
|
28
|
+
assert_equal 'Success', auth.message
|
|
29
|
+
assert auth.authorization
|
|
30
|
+
assert capture = @gateway.capture(@amount, auth.authorization)
|
|
31
|
+
assert_success capture
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_failed_capture
|
|
35
|
+
assert response = @gateway.capture(@amount, '')
|
|
36
|
+
assert_failure response
|
|
37
|
+
assert_equal 'Unable to find original transaciton.', response.message
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_invalid_key
|
|
41
|
+
gateway = UsaEpayGateway.new(:login => '')
|
|
42
|
+
assert response = gateway.purchase(@amount, @creditcard, @options)
|
|
43
|
+
assert_equal 'Specified source key not found.', response.message
|
|
44
|
+
assert_failure response
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class VerifiTest < Test::Unit::TestCase
|
|
4
|
+
include ActiveMerchant::Billing
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
@gateway = VerifiGateway.new(fixtures(:verify))
|
|
8
|
+
|
|
9
|
+
@credit_card = credit_card('4111111111111111')
|
|
10
|
+
|
|
11
|
+
# Replace with your login and password for the Verifi test environment
|
|
12
|
+
@options = {
|
|
13
|
+
:order_id => '37',
|
|
14
|
+
:email => "test@example.com",
|
|
15
|
+
:billing_address => address
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@amount = 100
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_successful_purchase
|
|
22
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
23
|
+
assert_success response
|
|
24
|
+
assert_equal 'Transaction was Approved', response.message
|
|
25
|
+
assert !response.authorization.blank?
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_unsuccessful_purchase
|
|
29
|
+
@credit_card.number = 'invalid'
|
|
30
|
+
|
|
31
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
32
|
+
assert_failure response
|
|
33
|
+
assert_equal 'Transaction was Rejected by Gateway', response.message
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# FOR SOME REASON Verify DOESN'T MIND EXPIRED CARDS
|
|
37
|
+
# I talked to support and they said that they are loose on expiration dates being expired.
|
|
38
|
+
def test_expired_credit_card
|
|
39
|
+
@credit_card.year = (Time.now.year - 3)
|
|
40
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
41
|
+
assert_success response
|
|
42
|
+
assert_equal 'Transaction was Approved', response.message
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def test_successful_authorization
|
|
46
|
+
assert response = @gateway.authorize(@amount, @credit_card, @options)
|
|
47
|
+
assert_success response
|
|
48
|
+
assert_equal 'Transaction was Approved', response.message
|
|
49
|
+
assert response.authorization
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def test_authorization_and_capture
|
|
53
|
+
assert authorization = @gateway.authorize(@amount, @credit_card, @options)
|
|
54
|
+
assert_success authorization
|
|
55
|
+
assert authorization
|
|
56
|
+
assert capture = @gateway.capture(@amount, authorization.authorization, @options)
|
|
57
|
+
assert_success capture
|
|
58
|
+
assert_equal 'Transaction was Approved', capture.message
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def test_authorization_and_void
|
|
62
|
+
assert authorization = @gateway.authorize(@amount, @credit_card, @options)
|
|
63
|
+
assert_success authorization
|
|
64
|
+
assert authorization
|
|
65
|
+
assert void = @gateway.void(authorization.authorization, @options)
|
|
66
|
+
assert_success void
|
|
67
|
+
assert_equal 'Transaction was Approved', void.message
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# Credits are not enabled on test accounts, so this should always fail
|
|
71
|
+
def test_credit
|
|
72
|
+
assert response = @gateway.credit(@amount, @credit_card, @options)
|
|
73
|
+
assert_match /Credits are not enabled/, response.params['responsetext']
|
|
74
|
+
assert_failure response
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def test_authorization_and_void
|
|
78
|
+
assert authorization = @gateway.authorize(@amount, @credit_card, @options)
|
|
79
|
+
assert_success authorization
|
|
80
|
+
assert void = @gateway.void(authorization.authorization, @options)
|
|
81
|
+
assert_success void
|
|
82
|
+
assert_equal 'Transaction was Approved', void.message
|
|
83
|
+
assert_match /Transaction Void Successful/, void.params['responsetext']
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def test_purchase_and_credit
|
|
87
|
+
assert purchase = @gateway.purchase(@amount, @credit_card, @options)
|
|
88
|
+
assert_success purchase
|
|
89
|
+
|
|
90
|
+
assert credit = @gateway.credit(@amount, purchase.authorization, @options)
|
|
91
|
+
assert_success credit
|
|
92
|
+
assert_equal 'Transaction was Approved', credit.message
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def test_bad_login
|
|
96
|
+
gateway = VerifiGateway.new(
|
|
97
|
+
:login => 'X',
|
|
98
|
+
:password => 'Y'
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
assert response = gateway.purchase(@amount, @credit_card, @options)
|
|
102
|
+
assert_equal 'Transaction was Rejected by Gateway', response.message
|
|
103
|
+
assert_equal 'Authentication Failed', response.params['responsetext']
|
|
104
|
+
|
|
105
|
+
assert_failure response
|
|
106
|
+
end
|
|
107
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemoteViaklixTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
@gateway = ViaklixGateway.new(fixtures(:viaklix))
|
|
6
|
+
|
|
7
|
+
@credit_card = credit_card
|
|
8
|
+
@bad_credit_card = credit_card('invalid')
|
|
9
|
+
|
|
10
|
+
@options = {
|
|
11
|
+
:order_id => '#1000.1',
|
|
12
|
+
:email => "paul@domain.com",
|
|
13
|
+
:description => 'Test Transaction',
|
|
14
|
+
:billing_address => address
|
|
15
|
+
}
|
|
16
|
+
@amount = 100
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_successful_purchase
|
|
20
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
21
|
+
|
|
22
|
+
assert_success response
|
|
23
|
+
assert response.test?
|
|
24
|
+
assert_equal 'APPROVED', response.message
|
|
25
|
+
assert response.authorization
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_failed_purchase
|
|
29
|
+
assert response = @gateway.purchase(@amount, @bad_credit_card, @options)
|
|
30
|
+
|
|
31
|
+
assert_failure response
|
|
32
|
+
assert response.test?
|
|
33
|
+
assert_equal 'The Credit Card Number supplied in the authorization request appears invalid.', response.message
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_credit
|
|
37
|
+
assert purchase = @gateway.purchase(@amount, @credit_card, @options)
|
|
38
|
+
assert_success purchase
|
|
39
|
+
|
|
40
|
+
assert credit = @gateway.credit(@amount, @credit_card)
|
|
41
|
+
assert_success credit
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../test_helper')
|
|
2
|
+
|
|
3
|
+
class RemoteWirecardTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
test_account = fixtures(:wirecard)
|
|
8
|
+
test_account[:signature] = test_account[:login]
|
|
9
|
+
@gateway = WirecardGateway.new(test_account)
|
|
10
|
+
|
|
11
|
+
@amount = 100
|
|
12
|
+
@credit_card = credit_card('4200000000000000')
|
|
13
|
+
@declined_card = credit_card('4000300011112220')
|
|
14
|
+
|
|
15
|
+
@options = {
|
|
16
|
+
:order_id => 1,
|
|
17
|
+
:billing_address => address,
|
|
18
|
+
:description => 'Wirecard remote test purchase',
|
|
19
|
+
:email => 'soleone@example.com'
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@german_address = {
|
|
23
|
+
:name => 'Jim Deutsch',
|
|
24
|
+
:address1 => '1234 Meine Street',
|
|
25
|
+
:company => 'Widgets Inc',
|
|
26
|
+
:city => 'Koblenz',
|
|
27
|
+
:state => 'Rheinland-Pfalz',
|
|
28
|
+
:zip => '56070',
|
|
29
|
+
:country => 'DE',
|
|
30
|
+
:phone => '0261 12345 23',
|
|
31
|
+
:fax => '0261 12345 23-4'
|
|
32
|
+
}
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Success tested
|
|
36
|
+
def test_successful_authorization
|
|
37
|
+
assert response = @gateway.authorize(@amount, @credit_card, @options)
|
|
38
|
+
assert_success response
|
|
39
|
+
assert response.test?
|
|
40
|
+
assert response.message[/THIS IS A DEMO/]
|
|
41
|
+
assert response.authorization
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_successful_authorize_and_capture
|
|
45
|
+
amount = @amount
|
|
46
|
+
assert auth = @gateway.authorize(amount, @credit_card, @options)
|
|
47
|
+
assert_success auth
|
|
48
|
+
assert auth.message[/THIS IS A DEMO/]
|
|
49
|
+
assert auth.authorization
|
|
50
|
+
assert capture = @gateway.capture(amount, auth.authorization, @options)
|
|
51
|
+
assert_success capture
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def test_successful_purchase
|
|
55
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
56
|
+
# puts response.message
|
|
57
|
+
assert_success response
|
|
58
|
+
assert response.message[/THIS IS A DEMO/]
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def test_successful_purchase_with_german_address_german_state_and_german_phone
|
|
62
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options.merge(:billing_address => @german_address))
|
|
63
|
+
|
|
64
|
+
assert_success response
|
|
65
|
+
assert response.message[/THIS IS A DEMO/]
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def test_successful_purchase_with_german_address_no_state_and_invalid_phone
|
|
69
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options.merge(:billing_address => @german_address.merge({:state => nil, :phone => '1234'})))
|
|
70
|
+
|
|
71
|
+
assert_success response
|
|
72
|
+
assert response.message[/THIS IS A DEMO/]
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def test_successful_purchase_with_german_address_and_valid_phone
|
|
76
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options.merge(:billing_address => @german_address.merge({:phone => '+049-261-1234-123'})))
|
|
77
|
+
|
|
78
|
+
assert_success response
|
|
79
|
+
assert response.message[/THIS IS A DEMO/]
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# Failure tested
|
|
83
|
+
|
|
84
|
+
def test_wrong_creditcard_authorization
|
|
85
|
+
assert response = @gateway.authorize(@amount, @declined_card, @options)
|
|
86
|
+
assert_failure response
|
|
87
|
+
assert response.test?
|
|
88
|
+
assert response.message[/credit card number not allowed in demo mode/i]
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def test_wrong_creditcard_purchase
|
|
92
|
+
assert response = @gateway.purchase(@amount, @declined_card, @options)
|
|
93
|
+
assert response.test?
|
|
94
|
+
assert_failure response
|
|
95
|
+
assert response.message[ /Credit card number not allowed in demo mode/ ], "Got wrong response message"
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def test_unauthorized_capture
|
|
99
|
+
assert response = @gateway.capture(@amount, "1234567890123456789012")
|
|
100
|
+
assert_failure response
|
|
101
|
+
assert_equal "Could not find referenced transaction for GuWID 1234567890123456789012.", response.message
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def test_invalid_login
|
|
105
|
+
gateway = WirecardGateway.new(:login => '', :password => '', :signature => '')
|
|
106
|
+
assert response = gateway.purchase(@amount, @credit_card, @options)
|
|
107
|
+
assert_failure response
|
|
108
|
+
assert response.message[ /wrong credentials/ ]
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemoteGestpayIntegrationTest < Test::Unit::TestCase
|
|
4
|
+
include ActiveMerchant::Billing::Integrations
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
# Your Gestpay ShopLogin
|
|
8
|
+
@shop_login = 'SHOPLOGIN'
|
|
9
|
+
|
|
10
|
+
@helper = Gestpay::Helper.new('order-500', @shop_login, :amount => '5.00', :currency => 'EUR')
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def test_get_encryption_string
|
|
14
|
+
# Extra fields don't work yet
|
|
15
|
+
# @helper.customer :first_name => 'Cody', :last_name => 'Fauser', :email => 'codyfauser@gmail.com'
|
|
16
|
+
response = @helper.send(:get_encrypted_string)
|
|
17
|
+
assert !response.blank?
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_get_encryption_string_fails
|
|
21
|
+
@helper = Gestpay::Helper.new('order-500','99999999', :amount => '5.00', :currency => 'EUR')
|
|
22
|
+
assert_raise(StandardError) do
|
|
23
|
+
assert @helper.send(:get_encrypted_string).blank?
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_unknown_shop_for_decryption_request
|
|
28
|
+
assert_raise(StandardError) do
|
|
29
|
+
Gestpay::Notification.new(raw_query_string)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
private
|
|
34
|
+
def raw_query_string
|
|
35
|
+
"a=900000&b=F7DEB36478FD84760F9134F23C922697272D57DE6D4518EB9B4D468B769D9A3A8071B6EB160B35CB412FC1820C7CC12D17B3141855B1ED55468613702A2E213DDE9DE5B0209E13C416448AE833525959F05693172D7F0656"
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemotePaypalIntegrationTest < Test::Unit::TestCase
|
|
4
|
+
include ActiveMerchant::Billing::Integrations
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
@paypal = Paypal::Notification.new('')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def tear_down
|
|
11
|
+
ActiveMerchant::Billing::Base.integration_mode = :test
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_raw
|
|
15
|
+
assert_equal "https://www.sandbox.paypal.com/cgi-bin/webscr", Paypal.service_url
|
|
16
|
+
assert_nothing_raised do
|
|
17
|
+
assert_equal false, @paypal.acknowledge
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_valid_sender_always_true
|
|
22
|
+
ActiveMerchant::Billing::Base.integration_mode = :production
|
|
23
|
+
assert @paypal.valid_sender?(nil)
|
|
24
|
+
assert @paypal.valid_sender?('127.0.0.1')
|
|
25
|
+
end
|
|
26
|
+
end
|
data/test/test_helper.rb
ADDED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
|
3
|
+
|
|
4
|
+
require 'active_merchant'
|
|
5
|
+
require 'rubygems'
|
|
6
|
+
require 'money'
|
|
7
|
+
require 'test/unit'
|
|
8
|
+
require 'mocha'
|
|
9
|
+
require 'yaml'
|
|
10
|
+
|
|
11
|
+
begin
|
|
12
|
+
gem 'actionpack'
|
|
13
|
+
rescue LoadError
|
|
14
|
+
raise StandardError, "The view tests need ActionPack installed as gem to run"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
require 'action_controller'
|
|
18
|
+
require 'action_controller/test_process'
|
|
19
|
+
require 'active_merchant/billing/integrations/action_view_helper'
|
|
20
|
+
|
|
21
|
+
ActiveMerchant::Billing::Base.mode = :test
|
|
22
|
+
|
|
23
|
+
# Test gateways
|
|
24
|
+
class SimpleTestGateway < ActiveMerchant::Billing::Gateway
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
class SubclassGateway < SimpleTestGateway
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
module ActiveMerchant
|
|
32
|
+
module Assertions
|
|
33
|
+
def assert_field(field, value)
|
|
34
|
+
clean_backtrace do
|
|
35
|
+
assert_equal value, @helper.fields[field]
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Allows the testing of you to check for negative assertions:
|
|
40
|
+
#
|
|
41
|
+
# # Instead of
|
|
42
|
+
# assert !something_that_is_false
|
|
43
|
+
#
|
|
44
|
+
# # Do this
|
|
45
|
+
# assert_false something_that_should_be_false
|
|
46
|
+
#
|
|
47
|
+
# An optional +msg+ parameter is available to help you debug.
|
|
48
|
+
def assert_false(boolean, message = nil)
|
|
49
|
+
message = build_message message, '<?> is not false or nil.', boolean
|
|
50
|
+
|
|
51
|
+
clean_backtrace do
|
|
52
|
+
assert_block message do
|
|
53
|
+
not boolean
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# A handy little assertion to check for a successful response:
|
|
59
|
+
#
|
|
60
|
+
# # Instead of
|
|
61
|
+
# assert_success response
|
|
62
|
+
#
|
|
63
|
+
# # DRY that up with
|
|
64
|
+
# assert_success response
|
|
65
|
+
#
|
|
66
|
+
# A message will automatically show the inspection of the response
|
|
67
|
+
# object if things go afoul.
|
|
68
|
+
def assert_success(response)
|
|
69
|
+
clean_backtrace do
|
|
70
|
+
assert response.success?, "Response failed: #{response.inspect}"
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# The negative of +assert_success+
|
|
75
|
+
def assert_failure(response)
|
|
76
|
+
clean_backtrace do
|
|
77
|
+
assert_false response.success?, "Response expected to fail: #{response.inspect}"
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def assert_valid(validateable)
|
|
82
|
+
clean_backtrace do
|
|
83
|
+
assert validateable.valid?, "Expected to be valid"
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def assert_not_valid(validateable)
|
|
88
|
+
clean_backtrace do
|
|
89
|
+
assert_false validateable.valid?, "Expected to not be valid"
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
private
|
|
94
|
+
def clean_backtrace(&block)
|
|
95
|
+
yield
|
|
96
|
+
rescue Test::Unit::AssertionFailedError => e
|
|
97
|
+
path = File.expand_path(__FILE__)
|
|
98
|
+
raise Test::Unit::AssertionFailedError, e.message, e.backtrace.reject { |line| File.expand_path(line) =~ /#{path}/ }
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
module Fixtures
|
|
103
|
+
HOME_DIR = RUBY_PLATFORM =~ /mswin32/ ? ENV['HOMEPATH'] : ENV['HOME'] unless defined?(HOME_DIR)
|
|
104
|
+
LOCAL_CREDENTIALS = File.join(HOME_DIR.to_s, '.active_merchant/fixtures.yml') unless defined?(LOCAL_CREDENTIALS)
|
|
105
|
+
DEFAULT_CREDENTIALS = File.join(File.dirname(__FILE__), 'fixtures.yml') unless defined?(DEFAULT_CREDENTIALS)
|
|
106
|
+
|
|
107
|
+
private
|
|
108
|
+
def credit_card(number = '4242424242424242', options = {})
|
|
109
|
+
defaults = {
|
|
110
|
+
:number => number,
|
|
111
|
+
:month => 9,
|
|
112
|
+
:year => Time.now.year + 1,
|
|
113
|
+
:first_name => 'Longbob',
|
|
114
|
+
:last_name => 'Longsen',
|
|
115
|
+
:verification_value => '123',
|
|
116
|
+
:type => 'visa'
|
|
117
|
+
}.update(options)
|
|
118
|
+
|
|
119
|
+
Billing::CreditCard.new(defaults)
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
def check(options = {})
|
|
123
|
+
defaults = {
|
|
124
|
+
:name => 'Jim Smith',
|
|
125
|
+
:routing_number => '244183602',
|
|
126
|
+
:account_number => '15378535',
|
|
127
|
+
:account_holder_type => 'personal',
|
|
128
|
+
:account_type => 'checking',
|
|
129
|
+
:number => '1'
|
|
130
|
+
}.update(options)
|
|
131
|
+
|
|
132
|
+
Billing::Check.new(defaults)
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
def address(options = {})
|
|
136
|
+
{
|
|
137
|
+
:name => 'Jim Smith',
|
|
138
|
+
:address1 => '1234 My Street',
|
|
139
|
+
:address2 => 'Apt 1',
|
|
140
|
+
:company => 'Widgets Inc',
|
|
141
|
+
:city => 'Ottawa',
|
|
142
|
+
:state => 'ON',
|
|
143
|
+
:zip => 'K1C2N6',
|
|
144
|
+
:country => 'CA',
|
|
145
|
+
:phone => '(555)555-5555',
|
|
146
|
+
:fax => '(555)555-6666'
|
|
147
|
+
}.update(options)
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def all_fixtures
|
|
151
|
+
@@fixtures ||= load_fixtures
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
def fixtures(key)
|
|
155
|
+
data = all_fixtures[key] || raise(StandardError, "No fixture data was found for '#{key}'")
|
|
156
|
+
|
|
157
|
+
data.dup
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
def load_fixtures
|
|
161
|
+
file = File.exists?(LOCAL_CREDENTIALS) ? LOCAL_CREDENTIALS : DEFAULT_CREDENTIALS
|
|
162
|
+
yaml_data = YAML.load(File.read(file))
|
|
163
|
+
symbolize_keys(yaml_data)
|
|
164
|
+
|
|
165
|
+
yaml_data
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
def symbolize_keys(hash)
|
|
169
|
+
return unless hash.is_a?(Hash)
|
|
170
|
+
|
|
171
|
+
hash.symbolize_keys!
|
|
172
|
+
hash.each{|k,v| symbolize_keys(v)}
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
Test::Unit::TestCase.class_eval do
|
|
178
|
+
include ActiveMerchant::Billing
|
|
179
|
+
include ActiveMerchant::Assertions
|
|
180
|
+
include ActiveMerchant::Utils
|
|
181
|
+
include ActiveMerchant::Fixtures
|
|
182
|
+
end
|