tomriley-active_merchant 1.4.2.3
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 +442 -0
- data/CONTRIBUTERS +102 -0
- data/MIT-LICENSE +20 -0
- data/README +134 -0
- data/Rakefile +153 -0
- data/active_merchant.gemspec +15 -0
- data/gem-public_cert.pem +20 -0
- data/init.rb +4 -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 +28 -0
- data/lib/active_merchant/billing/gateway.rb +158 -0
- data/lib/active_merchant/billing/gateways/authorize_net.rb +646 -0
- data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +702 -0
- data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +233 -0
- data/lib/active_merchant/billing/gateways/beanstream.rb +102 -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/eway.rb +272 -0
- data/lib/active_merchant/billing/gateways/exact.rb +222 -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/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/pay_junction.rb +392 -0
- data/lib/active_merchant/billing/gateways/pay_secure.rb +120 -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.rb +236 -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/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.rb +108 -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/protx.rb +349 -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/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.rb +146 -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 +165 -0
- data/lib/active_merchant/billing/gateways/wirecard.rb +318 -0
- data/lib/active_merchant/billing/gateways.rb +3 -0
- data/lib/active_merchant/billing/integrations/action_view_helper.rb +79 -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/bogus.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/chronopay.rb +22 -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/gestpay.rb +26 -0
- data/lib/active_merchant/billing/integrations/helper.rb +93 -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/hi_trust.rb +26 -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/nochex.rb +87 -0
- data/lib/active_merchant/billing/integrations/notification.rb +62 -0
- data/lib/active_merchant/billing/integrations/paypal/helper.rb +118 -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/paypal.rb +40 -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/quickpay.rb +18 -0
- data/lib/active_merchant/billing/integrations/return.rb +35 -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/integrations/two_checkout.rb +23 -0
- data/lib/active_merchant/billing/integrations.rb +22 -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/active_merchant.rb +60 -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 +330 -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_eway_test.rb +74 -0
- data/test/remote/gateways/remote_exact_test.rb +60 -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_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_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 +167 -0
- data/test/remote/gateways/remote_plugnpay_test.rb +72 -0
- data/test/remote/gateways/remote_protx_test.rb +219 -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_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 +170 -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 +21 -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/eway_test.rb +118 -0
- data/test/unit/gateways/exact_test.rb +156 -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/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/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 +520 -0
- data/test/unit/gateways/plugnpay_test.rb +86 -0
- data/test/unit/gateways/protx_test.rb +139 -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_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 +162 -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 +364 -0
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
# Author:: MoneySpyder, www.moneyspyder.co.uk
|
|
2
|
+
require 'test_helper'
|
|
3
|
+
|
|
4
|
+
class RemoteDataCashTest < Test::Unit::TestCase
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
# gateway to connect to Datacash
|
|
8
|
+
@gateway = DataCashGateway.new(fixtures(:data_cash))
|
|
9
|
+
|
|
10
|
+
@mastercard = CreditCard.new(
|
|
11
|
+
:number => '5473000000000007',
|
|
12
|
+
:month => 3,
|
|
13
|
+
:year => Date.today.year + 2,
|
|
14
|
+
:first_name => 'Mark',
|
|
15
|
+
:last_name => 'McBride',
|
|
16
|
+
:type => :master,
|
|
17
|
+
:verification_value => '547'
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
@mastercard_declined = CreditCard.new(
|
|
21
|
+
:number => '5473000000000106',
|
|
22
|
+
:month => 3,
|
|
23
|
+
:year => Date.today.year + 2,
|
|
24
|
+
:first_name => 'Mark',
|
|
25
|
+
:last_name => 'McBride',
|
|
26
|
+
:type => :master,
|
|
27
|
+
:verification_value => '547'
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
@visa_delta = CreditCard.new(
|
|
31
|
+
:number => '4539792100000003',
|
|
32
|
+
:month => 3,
|
|
33
|
+
:year => Date.today.year + 2,
|
|
34
|
+
:first_name => 'Mark',
|
|
35
|
+
:last_name => 'McBride',
|
|
36
|
+
:type => :visa,
|
|
37
|
+
:verification_value => '444'
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
@solo = CreditCard.new(
|
|
41
|
+
:first_name => 'Cody',
|
|
42
|
+
:last_name => 'Fauser',
|
|
43
|
+
:number => '633499100000000004',
|
|
44
|
+
:month => 3,
|
|
45
|
+
:year => Date.today.year + 2,
|
|
46
|
+
:type => :solo,
|
|
47
|
+
:issue_number => 5,
|
|
48
|
+
:start_month => 12,
|
|
49
|
+
:start_year => 2006,
|
|
50
|
+
:verification_value => 444
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
@address = {
|
|
54
|
+
:name => 'Mark McBride',
|
|
55
|
+
:address1 => 'Flat 12/3',
|
|
56
|
+
:address2 => '45 Main Road',
|
|
57
|
+
:city => 'Sometown',
|
|
58
|
+
:state => 'Somecounty',
|
|
59
|
+
:zip => 'A987AA',
|
|
60
|
+
:phone => '(555)555-5555'
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@params = {
|
|
64
|
+
:order_id => generate_unique_id,
|
|
65
|
+
:billing_address => @address
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
@amount = 198
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Testing that we can successfully make a purchase in a one step
|
|
72
|
+
# operation
|
|
73
|
+
def test_successful_purchase
|
|
74
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
75
|
+
assert_success response
|
|
76
|
+
assert response.test?
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
#the amount is changed to £1.99 - the DC test server won't check the
|
|
80
|
+
#address details - this is more a check on the passed ExtendedPolicy
|
|
81
|
+
def test_successful_purchase_without_address_check
|
|
82
|
+
response = @gateway.purchase(199, @mastercard, @params)
|
|
83
|
+
assert_success response
|
|
84
|
+
assert response.test?
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Note the Datacash test server regularly times out on switch requests
|
|
88
|
+
def test_successful_purchase_with_solo_card
|
|
89
|
+
response = @gateway.purchase(@amount, @solo, @params)
|
|
90
|
+
assert_success response
|
|
91
|
+
assert response.test?
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# this card number won't check the address details - testing extended
|
|
95
|
+
# policy
|
|
96
|
+
def test_successful_purchase_without_address_check2
|
|
97
|
+
@solo.number = '633499110000000003'
|
|
98
|
+
|
|
99
|
+
response = @gateway.purchase(@amount, @solo, @params)
|
|
100
|
+
assert_success response
|
|
101
|
+
assert response.test?
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# Testing purchase with request to set up recurring payment account
|
|
105
|
+
def test_successful_purchase_without_account_set_up_and_repeat_payments
|
|
106
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
107
|
+
assert_success response
|
|
108
|
+
assert response.authorization.to_s.split(';')[2].blank?
|
|
109
|
+
assert response.test?
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# Testing purchase with request to set up recurring payment account
|
|
113
|
+
def test_successful_purchase_with_account_set_up_and_repeat_payments
|
|
114
|
+
@params[:set_up_continuous_authority] = true
|
|
115
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
116
|
+
assert_success response
|
|
117
|
+
assert !response.authorization.to_s.split(';')[2].blank?
|
|
118
|
+
assert response.test?
|
|
119
|
+
|
|
120
|
+
#Make second payment on the continuous authorization that was set up in the first purchase
|
|
121
|
+
second_order_params = { :order_id => generate_unique_id }
|
|
122
|
+
purchase = @gateway.purchase(201, response.params['ca_reference'], second_order_params)
|
|
123
|
+
assert_success purchase
|
|
124
|
+
assert purchase.test?
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def test_successful_purchase_with_account_set_up_and_repeat_payments_with_visa_delta_card
|
|
128
|
+
@params[:set_up_continuous_authority] = true
|
|
129
|
+
response = @gateway.purchase(@amount, @visa_delta, @params)
|
|
130
|
+
assert_success response
|
|
131
|
+
assert !response.authorization.to_s.split(';')[2].blank?
|
|
132
|
+
assert response.test?
|
|
133
|
+
|
|
134
|
+
#Make second payment on the continuous authorization that was set up in the first purchase
|
|
135
|
+
second_order_params = { :order_id => generate_unique_id }
|
|
136
|
+
purchase = @gateway.purchase(201, response.params['ca_reference'], second_order_params)
|
|
137
|
+
assert_success purchase
|
|
138
|
+
assert purchase.test?
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
def test_purchase_with_account_set_up_for_repeat_payments_fails_for_solo_card
|
|
142
|
+
@params[:set_up_continuous_authority] = true
|
|
143
|
+
response = @gateway.purchase(@amount, @solo, @params)
|
|
144
|
+
assert_equal '92', response.params['status'] # Error code for CA not supported
|
|
145
|
+
assert_equal 'CA Not Supported', response.message
|
|
146
|
+
assert response.test?
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def test_successful_authorization_and_capture_with_account_set_up_and_second_purchase
|
|
150
|
+
#Authorize first payment
|
|
151
|
+
@params[:set_up_continuous_authority] = true
|
|
152
|
+
first_authorization = @gateway.authorize(@amount, @mastercard, @params)
|
|
153
|
+
assert_success first_authorization
|
|
154
|
+
assert !first_authorization.authorization.to_s.split(';')[2].blank?
|
|
155
|
+
assert first_authorization.test?
|
|
156
|
+
|
|
157
|
+
#Capture first payment
|
|
158
|
+
capture = @gateway.capture(@amount, first_authorization.authorization, @params)
|
|
159
|
+
assert_success capture
|
|
160
|
+
assert capture.test?
|
|
161
|
+
|
|
162
|
+
#Collect second purchase
|
|
163
|
+
second_order_params = { :order_id => generate_unique_id }
|
|
164
|
+
purchase = @gateway.purchase(201, first_authorization.authorization, second_order_params)
|
|
165
|
+
assert_success purchase
|
|
166
|
+
assert purchase.test?
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
def test_duplicate_order_id
|
|
170
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
171
|
+
assert_success response
|
|
172
|
+
|
|
173
|
+
duplicate_response = @gateway.purchase(@amount, @mastercard, @params)
|
|
174
|
+
assert_failure duplicate_response
|
|
175
|
+
assert_equal 'Duplicate reference', duplicate_response.message
|
|
176
|
+
assert duplicate_response.test?
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
def test_invalid_verification_number
|
|
180
|
+
@mastercard.verification_value = 123
|
|
181
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
182
|
+
assert_failure response
|
|
183
|
+
assert_equal 'CV2AVS DECLINED', response.message
|
|
184
|
+
assert response.test?
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
def test_invalid_expiry_month
|
|
188
|
+
@mastercard.month = 13
|
|
189
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
190
|
+
assert_failure response
|
|
191
|
+
assert_equal 'Expiry date invalid', response.message
|
|
192
|
+
assert response.test?
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
def test_invalid_expiry_year
|
|
196
|
+
@mastercard.year = 1999
|
|
197
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
198
|
+
assert_failure response
|
|
199
|
+
assert_equal 'Card has already expired', response.message
|
|
200
|
+
assert response.test?
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
def test_declined_card
|
|
204
|
+
response = @gateway.purchase(@amount, @mastercard_declined, @params)
|
|
205
|
+
assert_failure response
|
|
206
|
+
assert_equal 'DECLINED', response.message
|
|
207
|
+
assert response.test?
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
def test_successful_authorization_and_capture
|
|
211
|
+
authorization = @gateway.authorize(@amount, @mastercard, @params)
|
|
212
|
+
assert_success authorization
|
|
213
|
+
assert authorization.test?
|
|
214
|
+
|
|
215
|
+
capture = @gateway.capture(@amount, authorization.authorization, @params)
|
|
216
|
+
assert_success capture
|
|
217
|
+
assert capture.test?
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
def test_unsuccessful_capture
|
|
221
|
+
response = @gateway.capture(@amount, ';1234', @params)
|
|
222
|
+
assert_failure response
|
|
223
|
+
assert_equal 'AUTHCODE field required', response.message
|
|
224
|
+
assert response.test?
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
def test_successful_authorization_and_void
|
|
228
|
+
authorization = @gateway.authorize(@amount, @mastercard, @params)
|
|
229
|
+
assert_success authorization
|
|
230
|
+
assert authorization.test?
|
|
231
|
+
|
|
232
|
+
void = @gateway.void(authorization.authorization, @params)
|
|
233
|
+
assert_success void
|
|
234
|
+
assert void.test?
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
def test_successfully_purchase_and_void
|
|
238
|
+
purchase = @gateway.purchase(@amount, @mastercard, @params)
|
|
239
|
+
assert_success purchase
|
|
240
|
+
assert purchase.test?
|
|
241
|
+
|
|
242
|
+
void = @gateway.void(purchase.authorization, @params)
|
|
243
|
+
assert_success void
|
|
244
|
+
assert void.test?
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
def test_successful_refund
|
|
249
|
+
response = @gateway.credit(@amount, @mastercard, @params)
|
|
250
|
+
assert_success response
|
|
251
|
+
assert !response.params['datacash_reference'].blank?
|
|
252
|
+
assert !response.params['merchantreference'].blank?
|
|
253
|
+
|
|
254
|
+
assert response.test?
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
def test_successful_transaction_refund
|
|
258
|
+
purchase = @gateway.purchase(@amount, @mastercard, @params)
|
|
259
|
+
assert_success purchase
|
|
260
|
+
assert purchase.test?
|
|
261
|
+
|
|
262
|
+
refund = @gateway.credit(@amount, purchase.params['datacash_reference'])
|
|
263
|
+
assert_success refund
|
|
264
|
+
assert !refund.params['datacash_reference'].blank?
|
|
265
|
+
assert !refund.params['merchantreference'].blank?
|
|
266
|
+
|
|
267
|
+
assert refund.test?
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
def test_successful_transaction_refund_with_money_set_to_nil
|
|
271
|
+
purchase = @gateway.purchase(@amount, @mastercard, @params)
|
|
272
|
+
assert_success purchase
|
|
273
|
+
assert purchase.test?
|
|
274
|
+
|
|
275
|
+
refund = @gateway.credit(nil, purchase.params['datacash_reference'])
|
|
276
|
+
assert_success refund
|
|
277
|
+
assert refund.test?
|
|
278
|
+
end
|
|
279
|
+
|
|
280
|
+
def test_successful_transaction_refund_in_two_stages
|
|
281
|
+
purchase = @gateway.purchase(@amount, @mastercard, @params)
|
|
282
|
+
assert_success purchase
|
|
283
|
+
assert purchase.test?
|
|
284
|
+
|
|
285
|
+
first_partial_refund = @gateway.credit(100, purchase.params['datacash_reference'])
|
|
286
|
+
assert_success first_partial_refund
|
|
287
|
+
assert first_partial_refund.test?
|
|
288
|
+
|
|
289
|
+
second_partial_refund = @gateway.credit(98, purchase.params['datacash_reference'])
|
|
290
|
+
assert_success second_partial_refund
|
|
291
|
+
assert second_partial_refund.test?
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
def test_successful_partial_transaction_refund
|
|
295
|
+
purchase = @gateway.purchase(@amount, @mastercard, @params)
|
|
296
|
+
assert_success purchase
|
|
297
|
+
assert purchase.test?
|
|
298
|
+
|
|
299
|
+
partial_refund = @gateway.credit(100, purchase.params['datacash_reference'])
|
|
300
|
+
assert_success partial_refund
|
|
301
|
+
assert partial_refund.test?
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
def test_fail_to_refund_too_much
|
|
305
|
+
purchase = @gateway.purchase(@amount, @mastercard, @params)
|
|
306
|
+
assert_success purchase
|
|
307
|
+
assert purchase.test?
|
|
308
|
+
|
|
309
|
+
refund_too_much = @gateway.credit(500, purchase.params['datacash_reference'])
|
|
310
|
+
assert_failure refund_too_much
|
|
311
|
+
assert_equal 'Refund amount > orig 1.98', refund_too_much.message
|
|
312
|
+
assert refund_too_much.test?
|
|
313
|
+
end
|
|
314
|
+
|
|
315
|
+
def test_fail_to_refund_with_declined_purchase_reference
|
|
316
|
+
declined_purchase = @gateway.purchase(@amount, @mastercard_declined, @params)
|
|
317
|
+
assert_failure declined_purchase
|
|
318
|
+
assert declined_purchase.test?
|
|
319
|
+
|
|
320
|
+
refund = @gateway.credit(@amount, declined_purchase.params['datacash_reference'])
|
|
321
|
+
assert_failure refund
|
|
322
|
+
assert_equal 'Cannot refund transaction', refund.message
|
|
323
|
+
assert refund.test?
|
|
324
|
+
end
|
|
325
|
+
|
|
326
|
+
def test_fail_to_refund_purchase_which_is_already_refunded
|
|
327
|
+
purchase = @gateway.purchase(@amount, @mastercard, @params)
|
|
328
|
+
assert_success purchase
|
|
329
|
+
assert purchase.test?
|
|
330
|
+
|
|
331
|
+
first_refund = @gateway.credit(nil, purchase.params['datacash_reference'])
|
|
332
|
+
assert_success first_refund
|
|
333
|
+
assert first_refund.test?
|
|
334
|
+
|
|
335
|
+
second_refund = @gateway.credit(@amount, purchase.params['datacash_reference'])
|
|
336
|
+
assert_failure second_refund
|
|
337
|
+
assert_equal '1.98 > remaining funds 0.00', second_refund.message
|
|
338
|
+
assert second_refund.test?
|
|
339
|
+
end
|
|
340
|
+
|
|
341
|
+
# Check short merchant references are reformatted
|
|
342
|
+
def test_merchant_reference_that_is_too_short
|
|
343
|
+
@params[:order_id] = @params[:order_id].first(5)
|
|
344
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
345
|
+
assert_success response
|
|
346
|
+
assert response.test?
|
|
347
|
+
end
|
|
348
|
+
|
|
349
|
+
# Check long merchant references are reformatted
|
|
350
|
+
def test_merchant_reference_that_is_too_long
|
|
351
|
+
@params[:order_id] = "#{@params[:order_id]}1234356"
|
|
352
|
+
response = @gateway.purchase(@amount, @mastercard, @params)
|
|
353
|
+
assert_success response
|
|
354
|
+
assert response.test?
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
end
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemoteEfsnetTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
Base.gateway_mode = :test
|
|
7
|
+
|
|
8
|
+
@gateway = EfsnetGateway.new(fixtures(:efsnet))
|
|
9
|
+
|
|
10
|
+
@credit_card = credit_card('4000100011112224')
|
|
11
|
+
|
|
12
|
+
@amount = 100
|
|
13
|
+
@declined_amount = 156
|
|
14
|
+
|
|
15
|
+
@options = { :order_id => generate_unique_id,
|
|
16
|
+
:billing_address => address
|
|
17
|
+
}
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_successful_purchase
|
|
21
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
22
|
+
assert_success response
|
|
23
|
+
assert_equal 'Approved', response.message
|
|
24
|
+
assert response.test?
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_successful_force
|
|
28
|
+
assert response = @gateway.force(@amount, '123456', @credit_card, @options)
|
|
29
|
+
assert_success response
|
|
30
|
+
assert_equal 'Approved', response.message
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def test_successful_voice_authorize
|
|
34
|
+
assert response = @gateway.voice_authorize(@amount, '123456', @credit_card, @options)
|
|
35
|
+
assert_success response
|
|
36
|
+
assert_equal 'Accepted', response.message
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_unsuccessful_purchase
|
|
40
|
+
assert response = @gateway.purchase(@declined_amount, @credit_card, @options)
|
|
41
|
+
assert_failure response
|
|
42
|
+
assert_equal 'Declined', response.message
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def test_authorize_and_capture
|
|
46
|
+
amount = @amount
|
|
47
|
+
assert auth = @gateway.authorize(amount, @credit_card, @options)
|
|
48
|
+
assert_success auth
|
|
49
|
+
assert_equal 'Approved', auth.message
|
|
50
|
+
assert auth.authorization
|
|
51
|
+
|
|
52
|
+
assert capture = @gateway.capture(amount, auth.authorization, @options)
|
|
53
|
+
assert_success capture
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def test_purchase_and_void
|
|
57
|
+
amount = @amount
|
|
58
|
+
assert purchase = @gateway.purchase(amount, @credit_card, @options)
|
|
59
|
+
assert_success purchase
|
|
60
|
+
assert_equal 'Approved', purchase.message
|
|
61
|
+
assert purchase.authorization
|
|
62
|
+
assert void = @gateway.void(purchase.authorization, @options)
|
|
63
|
+
assert_success void
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def test_failed_capture
|
|
67
|
+
assert response = @gateway.capture(@amount, '1;1', @options)
|
|
68
|
+
assert_failure response
|
|
69
|
+
assert_equal 'Bad original transaction', response.message
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def test_invalid_login
|
|
73
|
+
gateway = EfsnetGateway.new(
|
|
74
|
+
:login => '',
|
|
75
|
+
:password => ''
|
|
76
|
+
)
|
|
77
|
+
assert response = gateway.purchase(@amount, @credit_card, @options)
|
|
78
|
+
assert_equal 'Invalid credentials', response.message
|
|
79
|
+
assert_failure response
|
|
80
|
+
end
|
|
81
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class EwayTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
Base.gateway_mode = :test
|
|
6
|
+
@gateway = EwayGateway.new(fixtures(:eway))
|
|
7
|
+
|
|
8
|
+
@credit_card_success = credit_card('4444333322221111')
|
|
9
|
+
|
|
10
|
+
@credit_card_fail = credit_card('1234567812345678',
|
|
11
|
+
:month => Time.now.month,
|
|
12
|
+
:year => Time.now.year
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
@params = {
|
|
16
|
+
:order_id => '1230123',
|
|
17
|
+
:email => 'bob@testbob.com',
|
|
18
|
+
:billing_address => { :address1 => '47 Bobway',
|
|
19
|
+
:city => 'Bobville',
|
|
20
|
+
:state => 'WA',
|
|
21
|
+
:country => 'AU',
|
|
22
|
+
:zip => '2000'
|
|
23
|
+
} ,
|
|
24
|
+
:description => 'purchased items'
|
|
25
|
+
}
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_invalid_amount
|
|
29
|
+
assert response = @gateway.purchase(101, @credit_card_success, @params)
|
|
30
|
+
assert_failure response
|
|
31
|
+
assert response.test?
|
|
32
|
+
assert_equal EwayGateway::MESSAGES["01"], response.message
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_purchase_success_with_verification_value
|
|
36
|
+
assert response = @gateway.purchase(100, @credit_card_success, @params)
|
|
37
|
+
assert_equal '123456', response.authorization
|
|
38
|
+
assert_success response
|
|
39
|
+
assert response.test?
|
|
40
|
+
assert_equal EwayGateway::MESSAGES["00"], response.message
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def test_invalid_expiration_date
|
|
44
|
+
@credit_card_success.year = 2005
|
|
45
|
+
assert response = @gateway.purchase(100, @credit_card_success, @params)
|
|
46
|
+
assert_failure response
|
|
47
|
+
assert response.test?
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def test_purchase_with_invalid_verification_value
|
|
51
|
+
@credit_card_success.verification_value = 'AAA'
|
|
52
|
+
assert response = @gateway.purchase(100, @credit_card_success, @params)
|
|
53
|
+
assert_nil response.authorization
|
|
54
|
+
assert_failure response
|
|
55
|
+
assert response.test?
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def test_purchase_success_without_verification_value
|
|
59
|
+
@credit_card_success.verification_value = nil
|
|
60
|
+
|
|
61
|
+
assert response = @gateway.purchase(100, @credit_card_success, @params)
|
|
62
|
+
assert_equal '123456', response.authorization
|
|
63
|
+
assert_success response
|
|
64
|
+
assert response.test?
|
|
65
|
+
assert_equal EwayGateway::MESSAGES["00"], response.message
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def test_purchase_error
|
|
69
|
+
assert response = @gateway.purchase(100, @credit_card_fail, @params)
|
|
70
|
+
assert_nil response.authorization
|
|
71
|
+
assert_equal false, response.success?
|
|
72
|
+
assert response.test?
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemoteExactTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
|
|
7
|
+
@gateway = ExactGateway.new(fixtures(:exact))
|
|
8
|
+
@credit_card = credit_card
|
|
9
|
+
@amount = 100
|
|
10
|
+
@options = {
|
|
11
|
+
:order_id => '1',
|
|
12
|
+
:billing_address => address,
|
|
13
|
+
:description => 'Store Purchase'
|
|
14
|
+
}
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_successful_purchase
|
|
18
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
19
|
+
assert_match /Transaction Normal/, response.message
|
|
20
|
+
assert_success response
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_unsuccessful_purchase
|
|
24
|
+
# ask for error 13 response (Amount Error) via dollar amount 5,000 + error
|
|
25
|
+
@amount = 501300
|
|
26
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options )
|
|
27
|
+
assert_match /Transaction Normal/, response.message
|
|
28
|
+
assert_failure response
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def test_purchase_and_credit
|
|
32
|
+
assert purchase = @gateway.purchase(@amount, @credit_card, @options)
|
|
33
|
+
assert_success purchase
|
|
34
|
+
assert purchase.authorization
|
|
35
|
+
assert credit = @gateway.credit(@amount, purchase.authorization)
|
|
36
|
+
assert_success credit
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_authorize_and_capture
|
|
40
|
+
assert auth = @gateway.authorize(@amount, @credit_card, @options)
|
|
41
|
+
assert_success auth
|
|
42
|
+
assert auth.authorization
|
|
43
|
+
assert capture = @gateway.capture(@amount, auth.authorization)
|
|
44
|
+
assert_success capture
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def test_failed_capture
|
|
48
|
+
assert response = @gateway.capture(@amount, '')
|
|
49
|
+
assert_failure response
|
|
50
|
+
assert_match /Precondition Failed/i, response.message
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def test_invalid_login
|
|
54
|
+
gateway = ExactGateway.new( :login => "NotARealUser",
|
|
55
|
+
:password => "NotARealPassword" )
|
|
56
|
+
assert response = gateway.purchase(@amount, @credit_card, @options)
|
|
57
|
+
assert_equal "Invalid Logon", response.message
|
|
58
|
+
assert_failure response
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemoteInstapayTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@gateway = InstapayGateway.new(fixtures(:instapay))
|
|
7
|
+
|
|
8
|
+
@amount = 100
|
|
9
|
+
@credit_card = credit_card('5454545454545454')
|
|
10
|
+
@declined_card = credit_card('4000300011112220')
|
|
11
|
+
|
|
12
|
+
@options = {
|
|
13
|
+
:order_id => generate_unique_id,
|
|
14
|
+
:billing_address => address,
|
|
15
|
+
:shipping_address => address,
|
|
16
|
+
:description => 'Store Purchase'
|
|
17
|
+
}
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_successful_purchase
|
|
21
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
22
|
+
assert_success response
|
|
23
|
+
assert_equal InstapayGateway::SUCCESS_MESSAGE, response.message
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_failed_purchase
|
|
27
|
+
assert response = @gateway.purchase(@amount, @declined_card, @options)
|
|
28
|
+
assert_failure response
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def test_succesful_authorization
|
|
32
|
+
assert response = @gateway.authorize(@amount, @credit_card, @options)
|
|
33
|
+
assert_success response
|
|
34
|
+
assert_equal InstapayGateway::SUCCESS_MESSAGE, response.message
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_failed_authorization
|
|
38
|
+
assert response = @gateway.authorize(@amount, @declined_card, @options)
|
|
39
|
+
assert_failure response
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_authorization_and_capture
|
|
43
|
+
assert authorization = @gateway.authorize(@amount, @credit_card, @options)
|
|
44
|
+
assert_success authorization
|
|
45
|
+
|
|
46
|
+
assert capture = @gateway.capture(@amount, authorization.authorization)
|
|
47
|
+
assert_success capture
|
|
48
|
+
assert_equal InstapayGateway::SUCCESS_MESSAGE, capture.message
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def test_invalid_login
|
|
52
|
+
gateway = InstapayGateway.new(
|
|
53
|
+
:login => 'X',
|
|
54
|
+
:password => 'Y'
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
assert response = gateway.purchase(@amount, @credit_card)
|
|
58
|
+
assert_failure response
|
|
59
|
+
assert_equal "Invalid merchant", response.message
|
|
60
|
+
end
|
|
61
|
+
end
|