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 File.join(File.dirname(__FILE__), "test_generator_helper.rb")
|
|
2
|
+
|
|
3
|
+
class TestGatewayGenerator < Test::Unit::TestCase
|
|
4
|
+
include RubiGen::GeneratorTestHelper
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
bare_setup
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def teardown
|
|
11
|
+
bare_teardown
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Some generator-related assertions:
|
|
15
|
+
# assert_generated_file(name, &block) # block passed the file contents
|
|
16
|
+
# assert_directory_exists(name)
|
|
17
|
+
# assert_generated_class(name, &block)
|
|
18
|
+
# assert_generated_module(name, &block)
|
|
19
|
+
# assert_generated_test_for(name, &block)
|
|
20
|
+
# The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
|
|
21
|
+
# assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
|
|
22
|
+
#
|
|
23
|
+
# Other helper methods are:
|
|
24
|
+
# app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
|
|
25
|
+
# bare_setup - place this in setup method to create the APP_ROOT folder for each test
|
|
26
|
+
# bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
|
|
27
|
+
|
|
28
|
+
def test_generator_without_options
|
|
29
|
+
name = 'miracle'
|
|
30
|
+
|
|
31
|
+
run_generator('gateway', [ name ], sources)
|
|
32
|
+
assert_generated_file(GatewayGenerator::LIB_DIR + "#{name}.rb")
|
|
33
|
+
assert_generated_file(GatewayGenerator::UNIT_TEST_DIR + "#{name}_test.rb")
|
|
34
|
+
assert_generated_file(GatewayGenerator::REMOTE_TEST_DIR + "remote_#{name}_test.rb")
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
private
|
|
38
|
+
def sources
|
|
39
|
+
[RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
|
|
40
|
+
]
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def generator_path
|
|
44
|
+
"generators"
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'fileutils'
|
|
3
|
+
|
|
4
|
+
# Must set before requiring generator libs.
|
|
5
|
+
TMP_ROOT = File.dirname(__FILE__) + "/tmp" unless defined?(TMP_ROOT)
|
|
6
|
+
PROJECT_NAME = "myproject" unless defined?(PROJECT_NAME)
|
|
7
|
+
app_root = File.join(TMP_ROOT, PROJECT_NAME)
|
|
8
|
+
if defined?(APP_ROOT)
|
|
9
|
+
APP_ROOT.replace(app_root)
|
|
10
|
+
else
|
|
11
|
+
APP_ROOT = app_root
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
begin
|
|
15
|
+
require 'rubigen'
|
|
16
|
+
rescue LoadError
|
|
17
|
+
require 'rubygems'
|
|
18
|
+
require 'rubigen'
|
|
19
|
+
end
|
|
20
|
+
require 'rubigen/helpers/generator_test_helper'
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
|
|
2
|
+
|
|
3
|
+
class TestIntegrationGenerator < Test::Unit::TestCase
|
|
4
|
+
include RubiGen::GeneratorTestHelper
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
bare_setup
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def teardown
|
|
11
|
+
bare_teardown
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Some generator-related assertions:
|
|
15
|
+
# assert_generated_file(name, &block) # block passed the file contents
|
|
16
|
+
# assert_directory_exists(name)
|
|
17
|
+
# assert_generated_class(name, &block)
|
|
18
|
+
# assert_generated_module(name, &block)
|
|
19
|
+
# assert_generated_test_for(name, &block)
|
|
20
|
+
# The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
|
|
21
|
+
# assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
|
|
22
|
+
#
|
|
23
|
+
# Other helper methods are:
|
|
24
|
+
# app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
|
|
25
|
+
# bare_setup - place this in setup method to create the APP_ROOT folder for each test
|
|
26
|
+
# bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
|
|
27
|
+
|
|
28
|
+
def test_generator_without_options
|
|
29
|
+
name = 'miracle'
|
|
30
|
+
|
|
31
|
+
run_generator('integration', [ name ], sources)
|
|
32
|
+
|
|
33
|
+
lib_dir = IntegrationGenerator::BASE_DIR + name
|
|
34
|
+
test_dir = IntegrationGenerator::TEST_DIR
|
|
35
|
+
assert_generated_file("#{lib_dir}.rb")
|
|
36
|
+
assert_generated_file(lib_dir + "/helper.rb")
|
|
37
|
+
assert_generated_file(lib_dir + "/notification.rb")
|
|
38
|
+
|
|
39
|
+
assert_generated_file(test_dir + "#{name}_module_test.rb")
|
|
40
|
+
assert_generated_file(test_dir + "helpers/#{name}_helper_test.rb")
|
|
41
|
+
assert_generated_file(test_dir + "notifications/#{name}_notification_test.rb")
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
private
|
|
45
|
+
def sources
|
|
46
|
+
[RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
|
|
47
|
+
]
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def generator_path
|
|
51
|
+
"generators"
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class ActionViewHelperTest < Test::Unit::TestCase
|
|
4
|
+
include ActiveMerchant::Billing::Integrations::ActionViewHelper
|
|
5
|
+
include ActionView::Helpers::FormHelper
|
|
6
|
+
include ActionView::Helpers::FormTagHelper
|
|
7
|
+
include ActionView::Helpers::UrlHelper
|
|
8
|
+
include ActionView::Helpers::TagHelper
|
|
9
|
+
include ActionView::Helpers::TextHelper
|
|
10
|
+
|
|
11
|
+
attr_accessor :output_buffer
|
|
12
|
+
|
|
13
|
+
def setup
|
|
14
|
+
@controller = Class.new do
|
|
15
|
+
attr_reader :url_for_options
|
|
16
|
+
def url_for(options, *parameters_for_method_reference)
|
|
17
|
+
@url_for_options = options
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
@controller = @controller.new
|
|
21
|
+
@output_buffer = ''
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def test_basic_payment_service
|
|
26
|
+
_erbout = ''
|
|
27
|
+
|
|
28
|
+
payment_service_for('order-1','test', :service => :bogus){}
|
|
29
|
+
|
|
30
|
+
expected = [
|
|
31
|
+
'<form action="http://www.bogus.com" method="post">',
|
|
32
|
+
'<input id="order" name="order" type="hidden" value="order-1" />',
|
|
33
|
+
'<input id="account" name="account" type="hidden" value="test" />',
|
|
34
|
+
"</form>"
|
|
35
|
+
]
|
|
36
|
+
|
|
37
|
+
_erbout.each_line do |line|
|
|
38
|
+
assert expected.include?(line.chomp), "Failed to match #{line}"
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_payment_service_no_block_given
|
|
43
|
+
assert_raise(ArgumentError){ payment_service_for }
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
protected
|
|
47
|
+
def protect_against_forgery?
|
|
48
|
+
false
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class BogusModuleTest < Test::Unit::TestCase
|
|
4
|
+
include ActiveMerchant::Billing::Integrations
|
|
5
|
+
|
|
6
|
+
def test_notification_method
|
|
7
|
+
assert_instance_of Bogus::Notification, Bogus.notification('name=cody')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_service_url
|
|
11
|
+
new = 'http://www.unbogus.com'
|
|
12
|
+
assert_equal 'http://www.bogus.com', Bogus.service_url
|
|
13
|
+
Bogus.service_url = new
|
|
14
|
+
assert_equal new, Bogus.service_url
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_return_method
|
|
18
|
+
assert_instance_of Bogus::Return, Bogus.return('name=cody')
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class ChronopayModuleTest < Test::Unit::TestCase
|
|
4
|
+
include ActiveMerchant::Billing::Integrations
|
|
5
|
+
|
|
6
|
+
def test_notification_method
|
|
7
|
+
assert_instance_of Chronopay::Notification, Chronopay.notification('name=cody')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_return_method
|
|
11
|
+
assert_instance_of Chronopay::Return, Chronopay.return('name=cody')
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class GestpayModuleTest < Test::Unit::TestCase
|
|
4
|
+
include ActiveMerchant::Billing::Integrations
|
|
5
|
+
|
|
6
|
+
def test_notification_method
|
|
7
|
+
Gestpay::Notification.any_instance.expects(:ssl_get).returns('#decryptstring#a=9000000&b=PAY1_UICCODE=242*P1*PAY1_AMOUNT=1234.56*P1*PAY1_TRANSACTIONRESULT=OK*P1*PAY1_BANKTRANSACTIONID=ABCD1234*P1*PAY1_SHOPTRANSACTIONID=1000#/decryptstring#')
|
|
8
|
+
assert_instance_of Gestpay::Notification, Gestpay.notification('a=900000&b=F7DEB36478FD84760F9134F23C922697272D57DE6D4518EB9B4D468B769D9A3A8071B6EB160B35CB412FC1820C7CC12D17B3141855B1ED55468613702A2E213DDE9DE5B0209E13C416448AE833525959F05693172D7F0656')
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_return_method
|
|
12
|
+
assert_instance_of Gestpay::Return, Gestpay.return('name=cody')
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class BogusHelperTest < Test::Unit::TestCase
|
|
4
|
+
include ActiveMerchant::Billing::Integrations
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
@helper = Bogus::Helper.new('order-500','cfauser', :amount => 500, :currency => 'CAD')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_basic_helper_fields
|
|
11
|
+
assert_field 'order', 'order-500'
|
|
12
|
+
assert_field 'account', 'cfauser'
|
|
13
|
+
assert_field 'amount', '500'
|
|
14
|
+
assert_field 'currency', 'CAD'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_customer_fields
|
|
18
|
+
@helper.customer :first_name => 'Cody', :last_name => 'Fauser'
|
|
19
|
+
assert_field 'first_name', 'Cody'
|
|
20
|
+
assert_field 'last_name', 'Fauser'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_setting_unknown_field
|
|
24
|
+
fields = @helper.fields.dup
|
|
25
|
+
@helper.space_shuttle :name => 'Rockety'
|
|
26
|
+
assert_equal fields, @helper.fields
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class ChronopayHelperTest < Test::Unit::TestCase
|
|
4
|
+
include ActiveMerchant::Billing::Integrations
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
@helper = Chronopay::Helper.new('order-500','003176-0001-0001', :amount => 500, :currency => 'CAD')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_basic_helper_fields
|
|
11
|
+
assert_field 'cs1', 'order-500'
|
|
12
|
+
assert_field 'product_id', '003176-0001-0001'
|
|
13
|
+
assert_field 'product_price', '500'
|
|
14
|
+
assert_field 'product_price_currency', 'CAD'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_customer_fields
|
|
18
|
+
@helper.customer :first_name => 'Cody', :last_name => 'Fauser'
|
|
19
|
+
assert_field 'f_name', 'Cody'
|
|
20
|
+
assert_field 's_name', 'Fauser'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_address_mapping
|
|
24
|
+
@helper.billing_address :country => 'CAN',
|
|
25
|
+
:address1 => '1 My Street',
|
|
26
|
+
:city => 'Ottawa',
|
|
27
|
+
:state => 'On',
|
|
28
|
+
:zip => '90210'
|
|
29
|
+
|
|
30
|
+
assert_field 'country', 'CAN'
|
|
31
|
+
assert_field 'street', '1 My Street'
|
|
32
|
+
assert_field 'state', 'On'
|
|
33
|
+
assert_field 'zip', '90210'
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_country_code_mapping
|
|
37
|
+
@helper.billing_address :country => 'CA'
|
|
38
|
+
assert_field 'country', 'CAN'
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def test_province_code_mapping_non_us
|
|
42
|
+
@helper.billing_address :country => 'DE', :state => 'Berlin'
|
|
43
|
+
assert_field 'country', 'DEU'
|
|
44
|
+
assert_field 'state', 'XX'
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def test_state_code_mapping_us
|
|
48
|
+
@helper.billing_address :country => 'US', :state => 'CA'
|
|
49
|
+
assert_field 'country', 'USA'
|
|
50
|
+
assert_field 'state', 'CA'
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def test_unknown_mapping
|
|
54
|
+
assert_nothing_raised do
|
|
55
|
+
@helper.company_address :address => '500 Dwemthy Fox Road'
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def test_setting_invalid_address_field
|
|
60
|
+
fields = @helper.fields.dup
|
|
61
|
+
@helper.billing_address :street => 'My Street'
|
|
62
|
+
|
|
63
|
+
# Will still set the state code to 'XX'
|
|
64
|
+
fields['state'] = 'XX'
|
|
65
|
+
assert_equal fields, @helper.fields
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class GestpayHelperTest < Test::Unit::TestCase
|
|
4
|
+
include ActiveMerchant::Billing::Integrations
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
@helper = Gestpay::Helper.new('order-500','1234567', :amount => '5.00', :currency => 'EUR')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_basic_helper_fields
|
|
11
|
+
assert_field 'ShopLogin', '1234567'
|
|
12
|
+
assert_field 'PAY1_AMOUNT', '5.00'
|
|
13
|
+
assert_field 'PAY1_SHOPTRANSACTIONID', 'order-500'
|
|
14
|
+
assert_field 'PAY1_UICCODE', '242'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_italian_currency
|
|
18
|
+
@helper = Gestpay::Helper.new('order-500','1234567', :amount => '5.00', :currency => 'ITL')
|
|
19
|
+
assert_field 'PAY1_UICCODE', '18'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_invalid_currency
|
|
23
|
+
assert_raise(StandardError) do
|
|
24
|
+
Gestpay::Helper.new('order-500','1234567', :amount => '5.00', :currency => 'CAD')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_customer_fields
|
|
29
|
+
@helper.customer :first_name => 'Cody', :last_name => 'Fauser', :email => 'cody@example.com'
|
|
30
|
+
assert_field 'PAY1_CHNAME', 'Cody Fauser'
|
|
31
|
+
assert_field 'PAY1_CHEMAIL', 'cody@example.com'
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_get_encryption_string
|
|
35
|
+
@helper.expects(:ssl_get).returns(encrypted_string_response)
|
|
36
|
+
assert_equal encrypted_string, @helper.send(:get_encrypted_string)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_get_encryption_string_fails
|
|
40
|
+
@helper.expects(:ssl_get).returns('#error#1132-Not accepted call: shop is not in active state#/error#\r\n')
|
|
41
|
+
|
|
42
|
+
assert_raise(StandardError) do
|
|
43
|
+
@helper.send(:get_encrypted_string)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def test_get_encryption_string_returns_empty_response
|
|
48
|
+
@helper.expects(:ssl_get).returns('')
|
|
49
|
+
|
|
50
|
+
assert_raise(StandardError) do
|
|
51
|
+
@helper.send(:get_encrypted_string)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def test_form_fields
|
|
56
|
+
@helper.expects(:ssl_get).returns(encrypted_string_response)
|
|
57
|
+
assert_equal '1234567', @helper.form_fields['a']
|
|
58
|
+
assert_equal encrypted_string, @helper.form_fields['b']
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Doesn't do any address mapping
|
|
62
|
+
def test_address_mapping
|
|
63
|
+
assert_nothing_raised do
|
|
64
|
+
@helper.billing_address :address1 => '1 My Street',
|
|
65
|
+
:address2 => '',
|
|
66
|
+
:city => 'Leeds',
|
|
67
|
+
:state => 'Yorkshire',
|
|
68
|
+
:zip => 'LS2 7EE',
|
|
69
|
+
:country => 'CA'
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def test_unknown_address_mapping
|
|
74
|
+
total_fields = @helper.fields.size
|
|
75
|
+
@helper.billing_address :farm => 'CA'
|
|
76
|
+
assert_equal total_fields, @helper.fields.size
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def test_unknown_mapping
|
|
80
|
+
assert_nothing_raised do
|
|
81
|
+
@helper.company_address :address => '500 Dwemthy Fox Road'
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def test_setting_invalid_address_field
|
|
86
|
+
fields = @helper.fields.dup
|
|
87
|
+
@helper.billing_address :street => 'My Street'
|
|
88
|
+
assert_equal fields, @helper.fields
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
private
|
|
92
|
+
|
|
93
|
+
def encrypted_string_response
|
|
94
|
+
'#cryptstring#F7DEB36478FD84760F9134F23C922697272D57DE6D4518EB9B4D468B769D9A3A8071B6EB160B35CB412FC1820C7CC12D17B3141855B1ED55468613702A2E213DDE9DE5B0209E13C416448AE833525959F05693172D7F0656#/cryptstring#'
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def encrypted_string
|
|
98
|
+
'F7DEB36478FD84760F9134F23C922697272D57DE6D4518EB9B4D468B769D9A3A8071B6EB160B35CB412FC1820C7CC12D17B3141855B1ED55468613702A2E213DDE9DE5B0209E13C416448AE833525959F05693172D7F0656'
|
|
99
|
+
end
|
|
100
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class HiTrustHelperTest < Test::Unit::TestCase
|
|
4
|
+
include ActiveMerchant::Billing::Integrations
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
@helper = HiTrust::Helper.new('order-500','cody@example.com', :amount => 500, :currency => 'USD')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_basic_helper_fields
|
|
11
|
+
assert_field 'storeid', 'cody@example.com'
|
|
12
|
+
assert_field 'amount', '500'
|
|
13
|
+
assert_field 'ordernumber', 'order-500'
|
|
14
|
+
assert_field 'currency', 'USD'
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class NochexHelperTest < Test::Unit::TestCase
|
|
4
|
+
include ActiveMerchant::Billing::Integrations
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
@helper = Nochex::Helper.new('order-500','cody@example.com', :amount => 500, :currency => 'GBP')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_basic_helper_fields
|
|
11
|
+
assert_field 'email', 'cody@example.com'
|
|
12
|
+
|
|
13
|
+
# Nochex requires 2 decimal places on the amount
|
|
14
|
+
assert_field 'amount', '5.00'
|
|
15
|
+
assert_field 'ordernumber', 'order-500'
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def test_customer_fields
|
|
19
|
+
@helper.customer :first_name => 'Cody', :last_name => 'Fauser', :email => 'cody@example.com'
|
|
20
|
+
assert_field 'firstname', 'Cody'
|
|
21
|
+
assert_field 'lastname', 'Fauser'
|
|
22
|
+
assert_field 'email_address_sender', 'cody@example.com'
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def test_address_mapping
|
|
26
|
+
@helper.billing_address :address1 => '1 My Street',
|
|
27
|
+
:city => 'Leeds',
|
|
28
|
+
:state => 'Yorkshire',
|
|
29
|
+
:zip => 'LS2 7EE'
|
|
30
|
+
|
|
31
|
+
assert_field 'firstline', '1 My Street'
|
|
32
|
+
assert_field 'town', 'Leeds'
|
|
33
|
+
assert_field 'county', 'Yorkshire'
|
|
34
|
+
assert_field 'postcode', 'LS2 7EE'
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_unknown_address_mapping
|
|
38
|
+
@helper.billing_address :country => 'CA'
|
|
39
|
+
assert_equal 3, @helper.fields.size
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_unknown_mapping
|
|
43
|
+
assert_nothing_raised do
|
|
44
|
+
@helper.company_address :address => '500 Dwemthy Fox Road'
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def test_setting_invalid_address_field
|
|
49
|
+
fields = @helper.fields.dup
|
|
50
|
+
@helper.billing_address :street => 'My Street'
|
|
51
|
+
assert_equal fields, @helper.fields
|
|
52
|
+
end
|
|
53
|
+
end
|