ghazel-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 +473 -0
- data/CONTRIBUTORS +126 -0
- data/MIT-LICENSE +20 -0
- data/README +135 -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 +736 -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/jetpay.rb +270 -0
- data/lib/active_merchant/billing/gateways/linkpoint.rb +449 -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 +205 -0
- data/lib/active_merchant/billing/gateways/net_registry.rb +189 -0
- data/lib/active_merchant/billing/gateways/netbilling.rb +168 -0
- data/lib/active_merchant/billing/gateways/ogone.rb +279 -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 +326 -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/paypal_express_recurring.rb +310 -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 +116 -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/sallie_mae.rb +144 -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 +452 -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 +355 -0
- data/test/remote/gateways/remote_authorize_net_cim_test.rb +460 -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_jetpay_test.rb +103 -0
- data/test/remote/gateways/remote_linkpoint_test.rb +121 -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 +82 -0
- data/test/remote/gateways/remote_net_registry_test.rb +85 -0
- data/test/remote/gateways/remote_netbilling_test.rb +70 -0
- data/test/remote/gateways/remote_ogone_test.rb +115 -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 +191 -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_sallie_mae_test.rb +51 -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 +676 -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/jetpay_test.rb +185 -0
- data/test/unit/gateways/linkpoint_test.rb +184 -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 +158 -0
- data/test/unit/gateways/net_registry_test.rb +416 -0
- data/test/unit/gateways/netbilling_test.rb +54 -0
- data/test/unit/gateways/ogone_test.rb +319 -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 +196 -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/sallie_mae_test.rb +53 -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 +213 -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 +368 -0
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class WirecardTest < Test::Unit::TestCase
|
|
4
|
+
TEST_AUTHORIZATION_GUWID = 'C822580121385121429927'
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
@gateway = WirecardGateway.new(:login => '', :password => '', :signature => '')
|
|
8
|
+
@credit_card = credit_card('4200000000000000')
|
|
9
|
+
@declined_card = credit_card('4000300011112220')
|
|
10
|
+
@unsupported_card = credit_card('4200000000000000', :type => :maestro)
|
|
11
|
+
|
|
12
|
+
@amount = 111
|
|
13
|
+
|
|
14
|
+
@options = {
|
|
15
|
+
:order_id => '1',
|
|
16
|
+
:billing_address => address,
|
|
17
|
+
:description => 'Wirecard Purchase',
|
|
18
|
+
:email => 'soleone@example.com'
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@address_without_state = {
|
|
22
|
+
:name => 'Jim Smith',
|
|
23
|
+
:address1 => '1234 My Street',
|
|
24
|
+
:company => 'Widgets Inc',
|
|
25
|
+
:city => 'Ottawa',
|
|
26
|
+
:zip => 'K12 P2A',
|
|
27
|
+
:country => 'CA',
|
|
28
|
+
:state => nil,
|
|
29
|
+
}
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def test_successful_authorization
|
|
33
|
+
@gateway.expects(:ssl_post).returns(successful_authorization_response)
|
|
34
|
+
assert response = @gateway.authorize(@amount, @credit_card, @options)
|
|
35
|
+
assert_instance_of Response, response
|
|
36
|
+
|
|
37
|
+
assert_success response
|
|
38
|
+
assert response.test?
|
|
39
|
+
assert_equal TEST_AUTHORIZATION_GUWID, response.authorization
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_wrong_credit_card_authorization
|
|
43
|
+
@gateway.expects(:ssl_post).returns(wrong_creditcard_authorization_response)
|
|
44
|
+
assert response = @gateway.authorize(@amount, @declined_card, @options)
|
|
45
|
+
assert_instance_of Response, response
|
|
46
|
+
|
|
47
|
+
assert_failure response
|
|
48
|
+
assert response.test?
|
|
49
|
+
assert_false response.authorization
|
|
50
|
+
assert response.message[/credit card number not allowed in demo mode/i]
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def test_successful_authorization_and_capture
|
|
54
|
+
@gateway.expects(:ssl_post).returns(successful_authorization_response)
|
|
55
|
+
assert response = @gateway.authorize(@amount, @credit_card, @options)
|
|
56
|
+
assert_success response
|
|
57
|
+
assert_equal TEST_AUTHORIZATION_GUWID, response.authorization
|
|
58
|
+
|
|
59
|
+
@gateway.expects(:ssl_post).returns(successful_capture_response)
|
|
60
|
+
assert response = @gateway.capture(@amount, response.authorization, @options)
|
|
61
|
+
assert_success response
|
|
62
|
+
assert response.test?
|
|
63
|
+
assert response.message[/this is a demo/i]
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def test_unauthorized_capture
|
|
67
|
+
@gateway.expects(:ssl_post).returns(unauthorized_capture_response)
|
|
68
|
+
assert response = @gateway.capture(@amount, "1234567890123456789012", @options)
|
|
69
|
+
|
|
70
|
+
assert_failure response
|
|
71
|
+
assert response.message["Could not find referenced transaction for GuWID 1234567890123456789012."]
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def test_doesnt_raise_an_error_if_no_state_is_provided_in_address
|
|
75
|
+
options = @options.merge(:billing_address => @address_without_state)
|
|
76
|
+
@gateway.expects(:ssl_post).returns(unauthorized_capture_response)
|
|
77
|
+
assert_nothing_raised do
|
|
78
|
+
@gateway.authorize(@amount, @credit_card, options)
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
private
|
|
83
|
+
|
|
84
|
+
# Authorization success
|
|
85
|
+
def successful_authorization_response
|
|
86
|
+
<<-XML
|
|
87
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
88
|
+
<WIRECARD_BXML xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xsi:noNamespaceSchemaLocation="wirecard.xsd">
|
|
89
|
+
<W_RESPONSE>
|
|
90
|
+
<W_JOB>
|
|
91
|
+
<JobID>test dummy data</JobID>
|
|
92
|
+
<FNC_CC_AUTHORIZATION>
|
|
93
|
+
<FunctionID>Wirecard remote test purchase</FunctionID>
|
|
94
|
+
<CC_TRANSACTION>
|
|
95
|
+
<TransactionID>1</TransactionID>
|
|
96
|
+
<PROCESSING_STATUS>
|
|
97
|
+
<GuWID>C822580121385121429927</GuWID>
|
|
98
|
+
<AuthorizationCode>709678</AuthorizationCode>
|
|
99
|
+
<Info>THIS IS A DEMO TRANSACTION USING CREDIT CARD NUMBER 420000****0000. NO REAL MONEY WILL BE TRANSFERED.</Info>
|
|
100
|
+
<StatusType>INFO</StatusType>
|
|
101
|
+
<FunctionResult>ACK</FunctionResult>
|
|
102
|
+
<TimeStamp>2008-06-19 06:53:33</TimeStamp>
|
|
103
|
+
</PROCESSING_STATUS>
|
|
104
|
+
</CC_TRANSACTION>
|
|
105
|
+
</FNC_CC_AUTHORIZATION>
|
|
106
|
+
</W_JOB>
|
|
107
|
+
</W_RESPONSE>
|
|
108
|
+
</WIRECARD_BXML>
|
|
109
|
+
XML
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# Authorization failure
|
|
113
|
+
# TODO: replace with real xml string here (current way seems to complicated)
|
|
114
|
+
def wrong_creditcard_authorization_response
|
|
115
|
+
error = <<-XML
|
|
116
|
+
<ERROR>
|
|
117
|
+
<Type>DATA_ERROR</Type>
|
|
118
|
+
<Number>24997</Number>
|
|
119
|
+
<Message>Credit card number not allowed in demo mode.</Message>
|
|
120
|
+
<Advice>Only demo card number '4200000000000000' is allowed for VISA in demo mode.</Advice>
|
|
121
|
+
</ERROR>
|
|
122
|
+
XML
|
|
123
|
+
result_node = '</FunctionResult>'
|
|
124
|
+
auth = 'AuthorizationCode'
|
|
125
|
+
successful_authorization_response.gsub('ACK', 'NOK') \
|
|
126
|
+
.gsub(result_node, result_node + error) \
|
|
127
|
+
.gsub(/<#{auth}>\w+<\/#{auth}>/, "<#{auth}><\/#{auth}>") \
|
|
128
|
+
.gsub(/<Info>.+<\/Info>/, '')
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
# Capture success
|
|
132
|
+
def successful_capture_response
|
|
133
|
+
<<-XML
|
|
134
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
135
|
+
<WIRECARD_BXML xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xsi:noNamespaceSchemaLocation="wirecard.xsd">
|
|
136
|
+
<W_RESPONSE>
|
|
137
|
+
<W_JOB>
|
|
138
|
+
<JobID>test dummy data</JobID>
|
|
139
|
+
<FNC_CC_CAPTURE_AUTHORIZATION>
|
|
140
|
+
<FunctionID>Wirecard remote test purchase</FunctionID>
|
|
141
|
+
<CC_TRANSACTION>
|
|
142
|
+
<TransactionID>1</TransactionID>
|
|
143
|
+
<PROCESSING_STATUS>
|
|
144
|
+
<GuWID>C833707121385268439116</GuWID>
|
|
145
|
+
<AuthorizationCode>915025</AuthorizationCode>
|
|
146
|
+
<Info>THIS IS A DEMO TRANSACTION USING CREDIT CARD NUMBER 420000****0000. NO REAL MONEY WILL BE TRANSFERED.</Info>
|
|
147
|
+
<StatusType>INFO</StatusType>
|
|
148
|
+
<FunctionResult>ACK</FunctionResult>
|
|
149
|
+
<TimeStamp>2008-06-19 07:18:04</TimeStamp>
|
|
150
|
+
</PROCESSING_STATUS>
|
|
151
|
+
</CC_TRANSACTION>
|
|
152
|
+
</FNC_CC_CAPTURE_AUTHORIZATION>
|
|
153
|
+
</W_JOB>
|
|
154
|
+
</W_RESPONSE>
|
|
155
|
+
</WIRECARD_BXML>
|
|
156
|
+
XML
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
# Capture failure
|
|
160
|
+
def unauthorized_capture_response
|
|
161
|
+
<<-XML
|
|
162
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
163
|
+
<WIRECARD_BXML xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xsi:noNamespaceSchemaLocation="wirecard.xsd">
|
|
164
|
+
<W_RESPONSE>
|
|
165
|
+
<W_JOB>
|
|
166
|
+
<JobID>test dummy data</JobID>
|
|
167
|
+
<FNC_CC_CAPTURE_AUTHORIZATION>
|
|
168
|
+
<FunctionID>Test dummy FunctionID</FunctionID>
|
|
169
|
+
<CC_TRANSACTION>
|
|
170
|
+
<TransactionID>a2783d471ccc98825b8c498f1a62ce8f</TransactionID>
|
|
171
|
+
<PROCESSING_STATUS>
|
|
172
|
+
<GuWID>C865683121385576058270</GuWID>
|
|
173
|
+
<AuthorizationCode></AuthorizationCode>
|
|
174
|
+
<StatusType>INFO</StatusType>
|
|
175
|
+
<FunctionResult>NOK</FunctionResult>
|
|
176
|
+
<ERROR>
|
|
177
|
+
<Type>DATA_ERROR</Type>
|
|
178
|
+
<Number>20080</Number>
|
|
179
|
+
<Message>Could not find referenced transaction for GuWID 1234567890123456789012.</Message>
|
|
180
|
+
</ERROR>
|
|
181
|
+
<TimeStamp>2008-06-19 08:09:20</TimeStamp>
|
|
182
|
+
</PROCESSING_STATUS>
|
|
183
|
+
</CC_TRANSACTION>
|
|
184
|
+
</FNC_CC_CAPTURE_AUTHORIZATION>
|
|
185
|
+
</W_JOB>
|
|
186
|
+
</W_RESPONSE>
|
|
187
|
+
</WIRECARD_BXML>
|
|
188
|
+
XML
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
# Purchase success
|
|
192
|
+
def successful_purchase_response
|
|
193
|
+
<<-XML
|
|
194
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
195
|
+
<WIRECARD_BXML xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xsi:noNamespaceSchemaLocation="wirecard.xsd">
|
|
196
|
+
<W_RESPONSE>
|
|
197
|
+
<W_JOB>
|
|
198
|
+
<JobID>test dummy data</JobID>
|
|
199
|
+
<FNC_CC_PURCHASE>
|
|
200
|
+
<FunctionID>Wirecard remote test purchase</FunctionID>
|
|
201
|
+
<CC_TRANSACTION>
|
|
202
|
+
<TransactionID>1</TransactionID>
|
|
203
|
+
<PROCESSING_STATUS>
|
|
204
|
+
<GuWID>C865402121385575982910</GuWID>
|
|
205
|
+
<AuthorizationCode>531750</AuthorizationCode>
|
|
206
|
+
<Info>THIS IS A DEMO TRANSACTION USING CREDIT CARD NUMBER 420000****0000. NO REAL MONEY WILL BE TRANSFERED.</Info>
|
|
207
|
+
<StatusType>INFO</StatusType>
|
|
208
|
+
<FunctionResult>ACK</FunctionResult>
|
|
209
|
+
<TimeStamp>2008-06-19 08:09:19</TimeStamp>
|
|
210
|
+
</PROCESSING_STATUS>
|
|
211
|
+
</CC_TRANSACTION>
|
|
212
|
+
</FNC_CC_PURCHASE>
|
|
213
|
+
</W_JOB>
|
|
214
|
+
</W_RESPONSE>
|
|
215
|
+
</WIRECARD_BXML>
|
|
216
|
+
XML
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
# Purchase failure
|
|
220
|
+
def wrong_creditcard_purchase_response
|
|
221
|
+
<<-XML
|
|
222
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
223
|
+
<WIRECARD_BXML xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xsi:noNamespaceSchemaLocation="wirecard.xsd">
|
|
224
|
+
<W_RESPONSE>
|
|
225
|
+
<W_JOB>
|
|
226
|
+
<JobID>test dummy data</JobID>
|
|
227
|
+
<FNC_CC_PURCHASE>
|
|
228
|
+
<FunctionID>Wirecard remote test purchase</FunctionID>
|
|
229
|
+
<CC_TRANSACTION>
|
|
230
|
+
<TransactionID>1</TransactionID>
|
|
231
|
+
<PROCESSING_STATUS>
|
|
232
|
+
<GuWID>C824697121385153203112</GuWID>
|
|
233
|
+
<AuthorizationCode></AuthorizationCode>
|
|
234
|
+
<StatusType>INFO</StatusType>
|
|
235
|
+
<FunctionResult>NOK</FunctionResult>
|
|
236
|
+
<ERROR>
|
|
237
|
+
<Type>DATA_ERROR</Type> <Number>24997</Number>
|
|
238
|
+
<Message>Credit card number not allowed in demo mode.</Message>
|
|
239
|
+
<Advice>Only demo card number '4200000000000000' is allowed for VISA in demo mode.</Advice>
|
|
240
|
+
</ERROR>
|
|
241
|
+
<TimeStamp>2008-06-19 06:58:51</TimeStamp>
|
|
242
|
+
</PROCESSING_STATUS>
|
|
243
|
+
</CC_TRANSACTION>
|
|
244
|
+
</FNC_CC_PURCHASE>
|
|
245
|
+
</W_JOB>
|
|
246
|
+
</W_RESPONSE>
|
|
247
|
+
</WIRECARD_BXML>
|
|
248
|
+
XML
|
|
249
|
+
end
|
|
250
|
+
end
|
|
@@ -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
|