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,133 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class DataCashTest < Test::Unit::TestCase
|
|
4
|
+
# 100 Cents
|
|
5
|
+
AMOUNT = 100
|
|
6
|
+
|
|
7
|
+
def setup
|
|
8
|
+
@gateway = DataCashGateway.new(
|
|
9
|
+
:login => 'LOGIN',
|
|
10
|
+
:password => 'PASSWORD'
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
@credit_card = credit_card('4242424242424242')
|
|
14
|
+
|
|
15
|
+
@address = {
|
|
16
|
+
:name => 'Mark McBride',
|
|
17
|
+
:address1 => 'Flat 12/3',
|
|
18
|
+
:address2 => '45 Main Road',
|
|
19
|
+
:city => 'London',
|
|
20
|
+
:state => 'None',
|
|
21
|
+
:country => 'GBR',
|
|
22
|
+
:zip => 'A987AA',
|
|
23
|
+
:phone => '(555)555-5555'
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@options = {
|
|
27
|
+
:order_id => generate_unique_id,
|
|
28
|
+
:billing_address => @address
|
|
29
|
+
}
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def test_successful_purchase
|
|
33
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
|
34
|
+
|
|
35
|
+
response = @gateway.purchase(@amount, @credit_card, @options)
|
|
36
|
+
assert_instance_of Response, response
|
|
37
|
+
assert_success response
|
|
38
|
+
assert response.test?
|
|
39
|
+
assert_equal 'The transaction was successful', response.message
|
|
40
|
+
assert_equal '4400200050664928;123456789;', response.authorization
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def test_unsuccessful_purchase
|
|
44
|
+
@gateway.expects(:ssl_post).returns(failed_purchase_response)
|
|
45
|
+
|
|
46
|
+
response = @gateway.purchase(@amount, @credit_card, @options)
|
|
47
|
+
assert_instance_of Response, response
|
|
48
|
+
assert_failure response
|
|
49
|
+
assert response.test?
|
|
50
|
+
assert_equal 'Invalid reference number', response.message
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def test_error_response
|
|
54
|
+
@gateway.expects(:ssl_post).returns(failed_purchase_response)
|
|
55
|
+
|
|
56
|
+
response = @gateway.purchase(@amount, @credit_card, @options)
|
|
57
|
+
assert_instance_of Response, response
|
|
58
|
+
assert_failure response
|
|
59
|
+
assert response.test?
|
|
60
|
+
assert_equal 'Invalid reference number', response.message
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def test_supported_countries
|
|
64
|
+
assert_equal ['GB'], DataCashGateway.supported_countries
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def test_supported_card_types
|
|
68
|
+
assert_equal [ :visa, :master, :american_express, :discover, :diners_club, :jcb, :maestro, :switch, :solo, :laser ], DataCashGateway.supported_cardtypes
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def test_purchase_with_missing_order_id_option
|
|
72
|
+
assert_raise(ArgumentError){ @gateway.purchase(100, @credit_card, {}) }
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def test_authorize_with_missing_order_id_option
|
|
76
|
+
assert_raise(ArgumentError){ @gateway.authorize(100, @credit_card, {}) }
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def test_purchase_does_not_raise_exception_with_missing_billing_address
|
|
80
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
|
81
|
+
assert @gateway.authorize(100, @credit_card, {:order_id => generate_unique_id }).is_a?(ActiveMerchant::Billing::Response)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def test_continuous_authority_purchase_with_missing_continuous_authority_reference
|
|
85
|
+
assert_raise(ArgumentError) do
|
|
86
|
+
@gateway.authorize(100, "a;b;", @options)
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def test_successful_continuous_authority_purchase
|
|
91
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
|
92
|
+
|
|
93
|
+
response = @gateway.purchase(@amount, '4400200050664928;123456789;10000000', @options)
|
|
94
|
+
assert_instance_of Response, response
|
|
95
|
+
assert_success response
|
|
96
|
+
assert response.test?
|
|
97
|
+
assert_equal 'The transaction was successful', response.message
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
private
|
|
101
|
+
def failed_purchase_response
|
|
102
|
+
<<-XML
|
|
103
|
+
<Response>
|
|
104
|
+
<status>22</status>
|
|
105
|
+
<time>1196414665</time>
|
|
106
|
+
<mode>TEST</mode>
|
|
107
|
+
<country>United Kingdom</country>
|
|
108
|
+
<merchantreference>2d24cc91284c1ed5c65d8821f1e752c7</merchantreference>
|
|
109
|
+
<issuer>Clydesdale Bank PLC</issuer>
|
|
110
|
+
<reason>Invalid reference number</reason>
|
|
111
|
+
<card_scheme>Solo</card_scheme>
|
|
112
|
+
<datacash_reference>4400200050664928</datacash_reference>
|
|
113
|
+
</Response>
|
|
114
|
+
XML
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def successful_purchase_response
|
|
118
|
+
<<-XML
|
|
119
|
+
<Response>
|
|
120
|
+
<status>1</status>
|
|
121
|
+
<time>1196414665</time>
|
|
122
|
+
<mode>TEST</mode>
|
|
123
|
+
<country>United Kingdom</country>
|
|
124
|
+
<merchantreference>2d24cc91284c1ed5c65d8821f1e752c7</merchantreference>
|
|
125
|
+
<issuer>Clydesdale Bank PLC</issuer>
|
|
126
|
+
<reason>The transaction was successful</reason>
|
|
127
|
+
<card_scheme>Visa</card_scheme>
|
|
128
|
+
<datacash_reference>4400200050664928</datacash_reference>
|
|
129
|
+
<authcode>123456789</authcode>
|
|
130
|
+
</Response>
|
|
131
|
+
XML
|
|
132
|
+
end
|
|
133
|
+
end
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class EfsnetTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@gateway = EfsnetGateway.new(
|
|
7
|
+
:login => 'LOGIN',
|
|
8
|
+
:password => 'PASSWORD'
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
@credit_card = credit_card('4242424242424242')
|
|
12
|
+
@amount = 100
|
|
13
|
+
@options = { :order_id => 1, :billing_address => address }
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_successful_purchase
|
|
17
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
|
18
|
+
|
|
19
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
20
|
+
assert_instance_of Response, response
|
|
21
|
+
assert_success response
|
|
22
|
+
assert response.test?
|
|
23
|
+
assert_equal '100018347764;1.00', response.authorization
|
|
24
|
+
assert_equal 'Approved', response.message
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_unsuccessful_purchase
|
|
29
|
+
@gateway.expects(:ssl_post).returns(unsuccessful_purchase_response)
|
|
30
|
+
|
|
31
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
32
|
+
assert_instance_of Response, response
|
|
33
|
+
assert_failure response
|
|
34
|
+
assert response.test?
|
|
35
|
+
assert_equal 'Declined', response.message
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def test_authorize_is_valid_xml
|
|
39
|
+
params = {
|
|
40
|
+
:order_id => "order1",
|
|
41
|
+
:transaction_amount => "1.01",
|
|
42
|
+
:account_number => "4242424242424242",
|
|
43
|
+
:expiration_month => "12",
|
|
44
|
+
:expiration_year => "2029",
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
assert data = @gateway.send(:post_data, :credit_card_authorize, params)
|
|
48
|
+
assert REXML::Document.new(data)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def test_settle_is_valid_xml
|
|
52
|
+
params = {
|
|
53
|
+
:order_id => "order1",
|
|
54
|
+
:transaction_amount => "1.01",
|
|
55
|
+
:original_transaction_amount => "1.01",
|
|
56
|
+
:original_transaction_id => "1",
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
assert data = @gateway.send(:post_data, :credit_card_settle, params)
|
|
60
|
+
assert REXML::Document.new(data)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def test_avs_result
|
|
64
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
|
65
|
+
|
|
66
|
+
response = @gateway.purchase(@amount, @credit_card, @options)
|
|
67
|
+
assert_equal 'N', response.avs_result['code']
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def test_cvv_result
|
|
71
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
|
72
|
+
|
|
73
|
+
response = @gateway.purchase(@amount, @credit_card, @options)
|
|
74
|
+
assert_equal 'M', response.cvv_result['code']
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
private
|
|
78
|
+
def successful_purchase_response
|
|
79
|
+
<<-XML
|
|
80
|
+
<?xml version="1.0"?>
|
|
81
|
+
<Reply>
|
|
82
|
+
<TransactionReply>
|
|
83
|
+
<ResponseCode>0</ResponseCode>
|
|
84
|
+
<ResultCode>00</ResultCode>
|
|
85
|
+
<ResultMessage>APPROVED</ResultMessage>
|
|
86
|
+
<TransactionID>100018347764</TransactionID>
|
|
87
|
+
<AVSResponseCode>N</AVSResponseCode>
|
|
88
|
+
<CVVResponseCode>M</CVVResponseCode>
|
|
89
|
+
<ApprovalNumber>123456</ApprovalNumber>
|
|
90
|
+
<AuthorizationNumber>123456</AuthorizationNumber>
|
|
91
|
+
<TransactionDate>080117</TransactionDate>
|
|
92
|
+
<TransactionTime>163222</TransactionTime>
|
|
93
|
+
<ReferenceNumber>1</ReferenceNumber>
|
|
94
|
+
<AccountNumber>XXXXXXXXXXXX2224</AccountNumber>
|
|
95
|
+
<TransactionAmount>1.00</TransactionAmount>
|
|
96
|
+
</TransactionReply>
|
|
97
|
+
</Reply>
|
|
98
|
+
XML
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def unsuccessful_purchase_response
|
|
102
|
+
<<-XML
|
|
103
|
+
<?xml version="1.0"?>
|
|
104
|
+
<Reply>
|
|
105
|
+
<TransactionReply>
|
|
106
|
+
<ResponseCode>256</ResponseCode>
|
|
107
|
+
<ResultCode>04</ResultCode>
|
|
108
|
+
<ResultMessage>DECLINED</ResultMessage>
|
|
109
|
+
<TransactionID>100018347784</TransactionID>
|
|
110
|
+
<AVSResponseCode>N</AVSResponseCode>
|
|
111
|
+
<CVVResponseCode/>
|
|
112
|
+
<ApprovalNumber/>
|
|
113
|
+
<AuthorizationNumber/>
|
|
114
|
+
<TransactionDate>080117</TransactionDate>
|
|
115
|
+
<TransactionTime>163946</TransactionTime>
|
|
116
|
+
<ReferenceNumber>1</ReferenceNumber>
|
|
117
|
+
<AccountNumber>XXXXXXXXXXXX2224</AccountNumber>
|
|
118
|
+
<TransactionAmount>1.56</TransactionAmount>
|
|
119
|
+
</TransactionReply>
|
|
120
|
+
</Reply>
|
|
121
|
+
XML
|
|
122
|
+
end
|
|
123
|
+
end
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class ElavonTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
@gateway = ElavonGateway.new(
|
|
6
|
+
:login => 'login',
|
|
7
|
+
:user => 'user',
|
|
8
|
+
:password => 'password'
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
@credit_card = credit_card
|
|
12
|
+
@amount = 100
|
|
13
|
+
|
|
14
|
+
@options = {
|
|
15
|
+
:order_id => '1',
|
|
16
|
+
:billing_address => address,
|
|
17
|
+
:description => 'Store Purchase'
|
|
18
|
+
}
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_successful_purchase
|
|
22
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
|
23
|
+
|
|
24
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
25
|
+
assert_success response
|
|
26
|
+
assert_equal '123456', response.authorization
|
|
27
|
+
assert response.test?
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_successful_authorization
|
|
31
|
+
@gateway.expects(:ssl_post).returns(successful_authorization_response)
|
|
32
|
+
|
|
33
|
+
assert response = @gateway.authorize(@amount, @credit_card, @options)
|
|
34
|
+
assert_instance_of Response, response
|
|
35
|
+
assert_success response
|
|
36
|
+
|
|
37
|
+
assert_equal '123456', response.authorization
|
|
38
|
+
assert_equal "APPROVED", response.message
|
|
39
|
+
assert response.test?
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_failed_authorization
|
|
43
|
+
@gateway.expects(:ssl_post).returns(failed_authorization_response)
|
|
44
|
+
|
|
45
|
+
assert response = @gateway.authorize(@amount, @credit_card)
|
|
46
|
+
assert_instance_of Response, response
|
|
47
|
+
assert_failure response
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def test_unsuccessful_purchase
|
|
51
|
+
@gateway.expects(:ssl_post).returns(failed_purchase_response)
|
|
52
|
+
|
|
53
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
54
|
+
assert_failure response
|
|
55
|
+
assert response.test?
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def test_invalid_login
|
|
59
|
+
@gateway.expects(:ssl_post).returns(invalid_login_response)
|
|
60
|
+
|
|
61
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
62
|
+
|
|
63
|
+
assert_equal '7000', response.params['result']
|
|
64
|
+
assert_equal 'The VirtualMerchant ID and/or User ID supplied in the authorization request is invalid.', response.message
|
|
65
|
+
assert_failure response
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def test_supported_countries
|
|
69
|
+
assert_equal ['US', 'CA'], ElavonGateway.supported_countries
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def test_supported_card_types
|
|
73
|
+
assert_equal [:visa, :master, :american_express, :discover], ElavonGateway.supported_cardtypes
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def test_avs_result
|
|
77
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
|
78
|
+
response = @gateway.purchase(@amount, @credit_card)
|
|
79
|
+
assert_equal 'X', response.avs_result['code']
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def test_cvv_result
|
|
83
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
|
84
|
+
response = @gateway.purchase(@amount, @credit_card)
|
|
85
|
+
assert_equal 'P', response.cvv_result['code']
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
private
|
|
89
|
+
def successful_purchase_response
|
|
90
|
+
"ssl_card_number=42********4242
|
|
91
|
+
ssl_exp_date=0910
|
|
92
|
+
ssl_amount=1.00
|
|
93
|
+
ssl_invoice_number=
|
|
94
|
+
ssl_description=Test Transaction
|
|
95
|
+
ssl_result=0
|
|
96
|
+
ssl_result_message=APPROVED
|
|
97
|
+
ssl_txn_id=00000000-0000-0000-0000-00000000000
|
|
98
|
+
ssl_approval_code=123456
|
|
99
|
+
ssl_cvv2_response=P
|
|
100
|
+
ssl_avs_response=X
|
|
101
|
+
ssl_account_balance=0.00
|
|
102
|
+
ssl_txn_time=08/07/2009 09:54:18 PM"
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def failed_purchase_response
|
|
106
|
+
"errorCode=5000
|
|
107
|
+
errorName=Credit Card Number Invalid
|
|
108
|
+
errorMessage=The Credit Card Number supplied in the authorization request appears to be invalid."
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def invalid_login_response
|
|
112
|
+
<<-RESPONSE
|
|
113
|
+
ssl_result=7000\r
|
|
114
|
+
ssl_result_message=The VirtualMerchant ID and/or User ID supplied in the authorization request is invalid.\r
|
|
115
|
+
RESPONSE
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def successful_authorization_response
|
|
119
|
+
"ssl_card_number=42********4242
|
|
120
|
+
ssl_exp_date=0910
|
|
121
|
+
ssl_amount=1.00
|
|
122
|
+
ssl_invoice_number=
|
|
123
|
+
ssl_description=Test Transaction
|
|
124
|
+
ssl_result=0
|
|
125
|
+
ssl_result_message=APPROVED
|
|
126
|
+
ssl_txn_id=00000000-0000-0000-0000-00000000000
|
|
127
|
+
ssl_approval_code=123456
|
|
128
|
+
ssl_cvv2_response=P
|
|
129
|
+
ssl_avs_response=X
|
|
130
|
+
ssl_account_balance=0.00
|
|
131
|
+
ssl_txn_time=08/07/2009 09:56:11 PM"
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def failed_authorization_response
|
|
135
|
+
"errorCode=5000
|
|
136
|
+
errorName=Credit Card Number Invalid
|
|
137
|
+
errorMessage=The Credit Card Number supplied in the authorization request appears to be invalid."
|
|
138
|
+
end
|
|
139
|
+
end
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class EwayTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
@gateway = EwayGateway.new(
|
|
6
|
+
:login => '87654321'
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
@credit_card = credit_card('4646464646464646')
|
|
10
|
+
|
|
11
|
+
@options = {
|
|
12
|
+
:order_id => '1230123',
|
|
13
|
+
:email => 'bob@testbob.com',
|
|
14
|
+
:billing_address => {
|
|
15
|
+
:address1 => '1234 First St.',
|
|
16
|
+
:address2 => 'Apt. 1',
|
|
17
|
+
:city => 'Melbourne',
|
|
18
|
+
:state => 'ACT',
|
|
19
|
+
:country => 'AU',
|
|
20
|
+
:zip => '12345'
|
|
21
|
+
},
|
|
22
|
+
:description => 'purchased items'
|
|
23
|
+
}
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_successful_purchase
|
|
27
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
|
28
|
+
|
|
29
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
30
|
+
assert_instance_of Response, response
|
|
31
|
+
assert_success response
|
|
32
|
+
assert_equal '123456', response.authorization
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_failed_purchase
|
|
36
|
+
@gateway.expects(:ssl_post).returns(failed_purchase_response)
|
|
37
|
+
|
|
38
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
39
|
+
assert_instance_of Response, response
|
|
40
|
+
assert_failure response
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def test_amount_style
|
|
44
|
+
assert_equal '1034', @gateway.send(:amount, 1034)
|
|
45
|
+
|
|
46
|
+
assert_raise(ArgumentError) do
|
|
47
|
+
@gateway.send(:amount, '10.34')
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def test_ensure_does_not_respond_to_authorize
|
|
52
|
+
assert !@gateway.respond_to?(:authorize)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def test_ensure_does_not_respond_to_capture
|
|
56
|
+
assert !@gateway.respond_to?(:capture)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def test_test_url_without_cvn
|
|
60
|
+
assert_equal EwayGateway::TEST_URL, @gateway.send(:gateway_url, false, true)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def test_test_url_with_cvn
|
|
64
|
+
assert_equal EwayGateway::TEST_CVN_URL, @gateway.send(:gateway_url, true, true)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def test_live_url_without_cvn
|
|
68
|
+
assert_equal EwayGateway::LIVE_URL, @gateway.send(:gateway_url, false, false)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def test_live_url_with_cvn
|
|
72
|
+
assert_equal EwayGateway::LIVE_CVN_URL, @gateway.send(:gateway_url, true, false)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def test_add_address
|
|
76
|
+
post = {}
|
|
77
|
+
@gateway.send(:add_address, post, @options)
|
|
78
|
+
assert_equal '1234 First St., Apt. 1, Melbourne, ACT, AU', post[:CustomerAddress]
|
|
79
|
+
assert_equal @options[:billing_address][:zip], post[:CustomerPostcode]
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
private
|
|
83
|
+
def successful_purchase_response
|
|
84
|
+
<<-XML
|
|
85
|
+
<?xml version="1.0"?>
|
|
86
|
+
<ewayResponse>
|
|
87
|
+
<ewayTrxnStatus>True</ewayTrxnStatus>
|
|
88
|
+
<ewayTrxnNumber>11292</ewayTrxnNumber>
|
|
89
|
+
<ewayTrxnReference/>
|
|
90
|
+
<ewayTrxnOption1/>
|
|
91
|
+
<ewayTrxnOption2/>
|
|
92
|
+
<ewayTrxnOption3/>
|
|
93
|
+
<ewayAuthCode>123456</ewayAuthCode>
|
|
94
|
+
<ewayReturnAmount>100</ewayReturnAmount>
|
|
95
|
+
<ewayTrxnError>00,Transaction Approved(Test CVN Gateway)</ewayTrxnError>
|
|
96
|
+
</ewayResponse>
|
|
97
|
+
XML
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def failed_purchase_response
|
|
101
|
+
<<-XML
|
|
102
|
+
<?xml version="1.0"?>
|
|
103
|
+
<ewayResponse>
|
|
104
|
+
<ewayTrxnStatus>False</ewayTrxnStatus>
|
|
105
|
+
<ewayTrxnNumber>11290</ewayTrxnNumber>
|
|
106
|
+
<ewayTrxnReference/>
|
|
107
|
+
<ewayTrxnOption1/>
|
|
108
|
+
<ewayTrxnOption2/>
|
|
109
|
+
<ewayTrxnOption3/>
|
|
110
|
+
<ewayAuthCode/>
|
|
111
|
+
<ewayReturnAmount>100</ewayReturnAmount>
|
|
112
|
+
<ewayTrxnError>eWAY Error: Invalid Expiry Date. Your credit card has not been billed for this transaction.(Test CVN Gateway)</ewayTrxnError>
|
|
113
|
+
</ewayResponse>
|
|
114
|
+
XML
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
|