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,143 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class PayJunctionTest < Test::Unit::TestCase
|
|
4
|
+
include ActiveMerchant::Billing
|
|
5
|
+
|
|
6
|
+
cattr_accessor :current_invoice
|
|
7
|
+
|
|
8
|
+
AMOUNT = 250
|
|
9
|
+
|
|
10
|
+
def setup
|
|
11
|
+
@gateway = PayJunctionGateway.new(fixtures(:pay_junction))
|
|
12
|
+
|
|
13
|
+
@credit_card = credit_card('4444333322221111', :verification_value => '123')
|
|
14
|
+
|
|
15
|
+
@valid_verification_value = '123'
|
|
16
|
+
@invalid_verification_value = '1234'
|
|
17
|
+
|
|
18
|
+
@valid_address = {
|
|
19
|
+
:address1 => '123 Test St.',
|
|
20
|
+
:address2 => nil,
|
|
21
|
+
:city => 'Somewhere',
|
|
22
|
+
:state => 'CA',
|
|
23
|
+
:zip => '90001'
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@invalid_address = {
|
|
27
|
+
:address1 => '187 Apple Tree Lane.',
|
|
28
|
+
:address2 => nil,
|
|
29
|
+
:city => 'Woodside',
|
|
30
|
+
:state => 'CA',
|
|
31
|
+
:zip => '94062'
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@options = { :billing_address => @valid_address, :order_id => generate_unique_id }
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_successful_purchase
|
|
38
|
+
assert response = @gateway.purchase(AMOUNT, @credit_card, @options)
|
|
39
|
+
assert_equal PayJunctionGateway::SUCCESS_MESSAGE, response.message
|
|
40
|
+
assert_equal 'capture', response.params["posture"], 'Should be captured funds'
|
|
41
|
+
assert_equal 'charge', response.params["transaction_action"]
|
|
42
|
+
assert_success response
|
|
43
|
+
assert response.test?
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_successful_purchase_with_cvv
|
|
47
|
+
@credit_card.verification_value = @valid_verification_value
|
|
48
|
+
assert response = @gateway.purchase(AMOUNT, @credit_card, @options)
|
|
49
|
+
|
|
50
|
+
assert_equal PayJunctionGateway::SUCCESS_MESSAGE, response.message
|
|
51
|
+
assert_equal 'capture', response.params["posture"], 'Should be captured funds'
|
|
52
|
+
assert_equal 'charge', response.params["transaction_action"]
|
|
53
|
+
|
|
54
|
+
assert_success response
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def test_successful_authorize
|
|
58
|
+
assert response = @gateway.authorize( AMOUNT, @credit_card, @options)
|
|
59
|
+
|
|
60
|
+
assert_equal PayJunctionGateway::SUCCESS_MESSAGE, response.message
|
|
61
|
+
assert_equal 'hold', response.params["posture"], 'Should be a held charge'
|
|
62
|
+
assert_equal 'charge', response.params["transaction_action"]
|
|
63
|
+
|
|
64
|
+
assert_success response
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def test_successful_capture
|
|
68
|
+
auth = @gateway.authorize(AMOUNT, @credit_card, @options)
|
|
69
|
+
assert_success auth
|
|
70
|
+
|
|
71
|
+
response = @gateway.capture(AMOUNT, auth.authorization, @options)
|
|
72
|
+
assert_success response
|
|
73
|
+
assert_equal 'capture', response.params["posture"], 'Should be a capture'
|
|
74
|
+
assert_equal auth.authorization, response.authorization,
|
|
75
|
+
"Should maintain transaction ID across request"
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def test_successful_credit
|
|
79
|
+
purchase = @gateway.purchase(AMOUNT, @credit_card, @options)
|
|
80
|
+
assert_success purchase
|
|
81
|
+
|
|
82
|
+
assert response = @gateway.credit(success_price, purchase.authorization)
|
|
83
|
+
assert_equal 'refund', response.params["transaction_action"]
|
|
84
|
+
|
|
85
|
+
assert_success response
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def test_successful_void
|
|
89
|
+
order_id = generate_unique_id
|
|
90
|
+
purchase = @gateway.purchase(AMOUNT, @credit_card, @options)
|
|
91
|
+
assert_success purchase
|
|
92
|
+
|
|
93
|
+
assert response = @gateway.void(AMOUNT, purchase.authorization, :order_id => order_id)
|
|
94
|
+
assert_success response
|
|
95
|
+
assert_equal 'void', response.params["posture"], 'Should be a capture'
|
|
96
|
+
assert_equal purchase.authorization, response.authorization,
|
|
97
|
+
"Should maintain transaction ID across request"
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def test_successful_instant_purchase
|
|
101
|
+
# this takes advatange of the PayJunction feature where another
|
|
102
|
+
# transaction can be executed if you have the transaction ID of a
|
|
103
|
+
# previous successful transaction.
|
|
104
|
+
|
|
105
|
+
purchase = @gateway.purchase( AMOUNT, @credit_card, @options)
|
|
106
|
+
assert_success purchase
|
|
107
|
+
|
|
108
|
+
assert response = @gateway.purchase(AMOUNT, purchase.authorization, :order_id => generate_unique_id)
|
|
109
|
+
|
|
110
|
+
assert_equal PayJunctionGateway::SUCCESS_MESSAGE, response.message
|
|
111
|
+
assert_equal 'capture', response.params["posture"], 'Should be captured funds'
|
|
112
|
+
assert_equal 'charge', response.params["transaction_action"]
|
|
113
|
+
assert_not_equal purchase.authorization, response.authorization,
|
|
114
|
+
'Should have recieved new transaction ID'
|
|
115
|
+
|
|
116
|
+
assert_success response
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def test_successful_recurring
|
|
120
|
+
assert response = @gateway.recurring(AMOUNT, @credit_card,
|
|
121
|
+
:periodicity => :monthly,
|
|
122
|
+
:payments => 12,
|
|
123
|
+
:order_id => generate_unique_id
|
|
124
|
+
)
|
|
125
|
+
|
|
126
|
+
assert_equal PayJunctionGateway::SUCCESS_MESSAGE, response.message
|
|
127
|
+
assert_equal 'charge', response.params["transaction_action"]
|
|
128
|
+
|
|
129
|
+
assert_success response
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def test_should_send_invoice
|
|
133
|
+
response = @gateway.purchase(AMOUNT, @credit_card, @options)
|
|
134
|
+
assert_success response
|
|
135
|
+
|
|
136
|
+
assert_equal @options[:order_id], response.params["invoice_number"], 'Should have set invoice'
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
private
|
|
140
|
+
def success_price
|
|
141
|
+
200 + rand(200)
|
|
142
|
+
end
|
|
143
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemotePaySecureTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@gateway = PaySecureGateway.new(fixtures(:pay_secure))
|
|
7
|
+
|
|
8
|
+
@credit_card = credit_card('4000100011112224')
|
|
9
|
+
@options = {
|
|
10
|
+
:billing_address => address,
|
|
11
|
+
:order_id => generate_unique_id
|
|
12
|
+
}
|
|
13
|
+
@amount = 100
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_successful_purchase
|
|
17
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
18
|
+
assert_success response
|
|
19
|
+
assert_equal PaySecureGateway::SUCCESS_MESSAGE, response.message
|
|
20
|
+
assert response.test?
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_unsuccessful_purchase
|
|
24
|
+
@credit_card.year = '2006'
|
|
25
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
|
26
|
+
assert_equal 'Declined, card expired', response.message
|
|
27
|
+
assert_failure response
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_invalid_login
|
|
31
|
+
gateway = PaySecureGateway.new(
|
|
32
|
+
:login => '',
|
|
33
|
+
:password => ''
|
|
34
|
+
)
|
|
35
|
+
assert response = gateway.purchase(@amount, @credit_card, @options)
|
|
36
|
+
assert_equal "MissingField: 'MERCHANT_ID'", response.message
|
|
37
|
+
assert_failure response
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemotePayflowTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
Base.gateway_mode = :test
|
|
6
|
+
|
|
7
|
+
@gateway = PayflowExpressGateway.new(fixtures(:payflow))
|
|
8
|
+
|
|
9
|
+
@options = { :billing_address => {
|
|
10
|
+
:name => 'Cody Fauser',
|
|
11
|
+
:address1 => '1234 Shady Brook Lane',
|
|
12
|
+
:city => 'Ottawa',
|
|
13
|
+
:state => 'ON',
|
|
14
|
+
:country => 'CA',
|
|
15
|
+
:zip => '90210',
|
|
16
|
+
:phone => '555-555-5555'
|
|
17
|
+
},
|
|
18
|
+
:email => 'cody@example.com'
|
|
19
|
+
}
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Only works with a Payflow 2.0 account or by requesting the addition
|
|
23
|
+
# of Express checkout to an existing Payflow Pro account. This can be done
|
|
24
|
+
# by contacting Payflow sales. The PayPal account used must be a business
|
|
25
|
+
# account and the Payflow Pro account must be in Live mode in order for
|
|
26
|
+
# the tests to work correctly
|
|
27
|
+
def test_set_express_authorization
|
|
28
|
+
@options.update(
|
|
29
|
+
:return_url => 'http://example.com',
|
|
30
|
+
:cancel_return_url => 'http://example.com',
|
|
31
|
+
:email => 'Buyer1@paypal.com'
|
|
32
|
+
)
|
|
33
|
+
response = @gateway.setup_authorization(500, @options)
|
|
34
|
+
assert response.success?
|
|
35
|
+
assert response.test?
|
|
36
|
+
assert !response.params['token'].blank?
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_set_express_purchase
|
|
40
|
+
@options.update(
|
|
41
|
+
:return_url => 'http://example.com',
|
|
42
|
+
:cancel_return_url => 'http://example.com',
|
|
43
|
+
:email => 'Buyer1@paypal.com'
|
|
44
|
+
)
|
|
45
|
+
response = @gateway.setup_purchase(500, @options)
|
|
46
|
+
assert response.success?
|
|
47
|
+
assert response.test?
|
|
48
|
+
assert !response.params['token'].blank?
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemotePayflowTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
ActiveMerchant::Billing::Base.gateway_mode = :test
|
|
6
|
+
|
|
7
|
+
@gateway = PayflowGateway.new(fixtures(:payflow))
|
|
8
|
+
|
|
9
|
+
@credit_card = credit_card('5105105105105100',
|
|
10
|
+
:type => 'master'
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
@options = { :billing_address => address,
|
|
14
|
+
:email => 'cody@example.com',
|
|
15
|
+
:customer => 'codyexample'
|
|
16
|
+
}
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_successful_purchase
|
|
20
|
+
assert response = @gateway.purchase(100000, @credit_card, @options)
|
|
21
|
+
assert_equal "Approved", response.message
|
|
22
|
+
assert_success response
|
|
23
|
+
assert response.test?
|
|
24
|
+
assert_not_nil response.authorization
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_declined_purchase
|
|
28
|
+
assert response = @gateway.purchase(210000, @credit_card, @options)
|
|
29
|
+
assert_equal 'Declined', response.message
|
|
30
|
+
assert_failure response
|
|
31
|
+
assert response.test?
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_successful_authorization
|
|
35
|
+
assert response = @gateway.authorize(100, @credit_card, @options)
|
|
36
|
+
assert_equal "Approved", response.message
|
|
37
|
+
assert_success response
|
|
38
|
+
assert response.test?
|
|
39
|
+
assert_not_nil response.authorization
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_authorize_and_capture
|
|
43
|
+
assert auth = @gateway.authorize(100, @credit_card, @options)
|
|
44
|
+
assert_success auth
|
|
45
|
+
assert_equal 'Approved', auth.message
|
|
46
|
+
assert auth.authorization
|
|
47
|
+
assert capture = @gateway.capture(100, auth.authorization)
|
|
48
|
+
assert_success capture
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def test_authorize_and_partial_capture
|
|
52
|
+
assert auth = @gateway.authorize(100 * 2, @credit_card, @options)
|
|
53
|
+
assert_success auth
|
|
54
|
+
assert_equal 'Approved', auth.message
|
|
55
|
+
assert auth.authorization
|
|
56
|
+
|
|
57
|
+
assert capture = @gateway.capture(100, auth.authorization)
|
|
58
|
+
assert_success capture
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def test_failed_capture
|
|
62
|
+
assert response = @gateway.capture(100, '999')
|
|
63
|
+
assert_failure response
|
|
64
|
+
assert_equal 'Invalid tender', response.message
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def test_authorize_and_void
|
|
68
|
+
assert auth = @gateway.authorize(100, @credit_card, @options)
|
|
69
|
+
assert_success auth
|
|
70
|
+
assert_equal 'Approved', auth.message
|
|
71
|
+
assert auth.authorization
|
|
72
|
+
assert void = @gateway.void(auth.authorization)
|
|
73
|
+
assert_success void
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def test_invalid_login
|
|
77
|
+
gateway = PayflowGateway.new(
|
|
78
|
+
:login => '',
|
|
79
|
+
:password => ''
|
|
80
|
+
)
|
|
81
|
+
assert response = gateway.purchase(100, @credit_card, @options)
|
|
82
|
+
assert_equal 'Invalid vendor account', response.message
|
|
83
|
+
assert_failure response
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def test_duplicate_request_id
|
|
87
|
+
request_id = Digest::MD5.hexdigest(rand.to_s)
|
|
88
|
+
@gateway.expects(:generate_unique_id).times(2).returns(request_id)
|
|
89
|
+
|
|
90
|
+
response1 = @gateway.purchase(100, @credit_card, @options)
|
|
91
|
+
assert response1.success?
|
|
92
|
+
assert_nil response1.params['duplicate']
|
|
93
|
+
|
|
94
|
+
response2 = @gateway.purchase(100, @credit_card, @options)
|
|
95
|
+
assert response2.success?
|
|
96
|
+
assert response2.params['duplicate']
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def test_create_recurring_profile
|
|
100
|
+
response = @gateway.recurring(1000, @credit_card, :periodicity => :monthly)
|
|
101
|
+
assert_success response
|
|
102
|
+
assert !response.params['profile_id'].blank?
|
|
103
|
+
assert response.test?
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def test_create_recurring_profile_with_invalid_date
|
|
107
|
+
response = @gateway.recurring(1000, @credit_card, :periodicity => :monthly, :starting_at => Time.now)
|
|
108
|
+
assert_failure response
|
|
109
|
+
assert_equal 'Field format error: Start or next payment date must be a valid future date', response.message
|
|
110
|
+
assert response.params['profile_id'].blank?
|
|
111
|
+
assert response.test?
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def test_create_and_cancel_recurring_profile
|
|
115
|
+
response = @gateway.recurring(1000, @credit_card, :periodicity => :monthly)
|
|
116
|
+
assert_success response
|
|
117
|
+
assert !response.params['profile_id'].blank?
|
|
118
|
+
assert response.test?
|
|
119
|
+
|
|
120
|
+
response = @gateway.cancel_recurring(response.params['profile_id'])
|
|
121
|
+
assert_success response
|
|
122
|
+
assert response.test?
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def test_full_feature_set_for_recurring_profiles
|
|
126
|
+
# Test add
|
|
127
|
+
@options.update(
|
|
128
|
+
:periodicity => :weekly,
|
|
129
|
+
:payments => '12',
|
|
130
|
+
:starting_at => Time.now + 1.day,
|
|
131
|
+
:comment => "Test Profile"
|
|
132
|
+
)
|
|
133
|
+
response = @gateway.recurring(100, @credit_card, @options)
|
|
134
|
+
assert_equal "Approved", response.params['message']
|
|
135
|
+
assert_equal "0", response.params['result']
|
|
136
|
+
assert_success response
|
|
137
|
+
assert response.test?
|
|
138
|
+
assert !response.params['profile_id'].blank?
|
|
139
|
+
@recurring_profile_id = response.params['profile_id']
|
|
140
|
+
|
|
141
|
+
# Test modify
|
|
142
|
+
@options.update(
|
|
143
|
+
:periodicity => :monthly,
|
|
144
|
+
:starting_at => Time.now + 1.day,
|
|
145
|
+
:payments => '4',
|
|
146
|
+
:profile_id => @recurring_profile_id
|
|
147
|
+
)
|
|
148
|
+
response = @gateway.recurring(400, @credit_card, @options)
|
|
149
|
+
assert_equal "Approved", response.params['message']
|
|
150
|
+
assert_equal "0", response.params['result']
|
|
151
|
+
assert_success response
|
|
152
|
+
assert response.test?
|
|
153
|
+
|
|
154
|
+
# Test inquiry
|
|
155
|
+
response = @gateway.recurring_inquiry(@recurring_profile_id)
|
|
156
|
+
assert_equal "0", response.params['result']
|
|
157
|
+
assert_success response
|
|
158
|
+
assert response.test?
|
|
159
|
+
|
|
160
|
+
# Test payment history inquiry
|
|
161
|
+
response = @gateway.recurring_inquiry(@recurring_profile_id, :history => true)
|
|
162
|
+
assert_equal '0', response.params['result']
|
|
163
|
+
assert_success response
|
|
164
|
+
assert response.test?
|
|
165
|
+
|
|
166
|
+
# Test cancel
|
|
167
|
+
response = @gateway.cancel_recurring(@recurring_profile_id)
|
|
168
|
+
assert_equal "Approved", response.params['message']
|
|
169
|
+
assert_equal "0", response.params['result']
|
|
170
|
+
assert_success response
|
|
171
|
+
assert response.test?
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
# Note that this test will only work if you enable reference transactions!!
|
|
175
|
+
def test_reference_purchase
|
|
176
|
+
assert response = @gateway.purchase(10000, @credit_card, @options)
|
|
177
|
+
assert_equal "Approved", response.message
|
|
178
|
+
assert_success response
|
|
179
|
+
assert response.test?
|
|
180
|
+
assert_not_nil pn_ref = response.authorization
|
|
181
|
+
|
|
182
|
+
# now another purchase, by reference
|
|
183
|
+
assert response = @gateway.purchase(10000, pn_ref)
|
|
184
|
+
assert_equal "Approved", response.message
|
|
185
|
+
assert_success response
|
|
186
|
+
assert response.test?
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
def test_recurring_with_initial_authorization
|
|
190
|
+
response = @gateway.recurring(1000, @credit_card,
|
|
191
|
+
:periodicity => :monthly,
|
|
192
|
+
:initial_transaction => {
|
|
193
|
+
:type => :authorization
|
|
194
|
+
}
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
assert_success response
|
|
198
|
+
assert !response.params['profile_id'].blank?
|
|
199
|
+
assert response.test?
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
def test_recurring_with_initial_authorization
|
|
203
|
+
response = @gateway.recurring(1000, @credit_card,
|
|
204
|
+
:periodicity => :monthly,
|
|
205
|
+
:initial_transaction => {
|
|
206
|
+
:type => :purchase,
|
|
207
|
+
:amount => 500
|
|
208
|
+
}
|
|
209
|
+
)
|
|
210
|
+
|
|
211
|
+
assert_success response
|
|
212
|
+
assert !response.params['profile_id'].blank?
|
|
213
|
+
assert response.test?
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
def test_purchase_and_referenced_credit
|
|
217
|
+
amount = 100
|
|
218
|
+
|
|
219
|
+
assert purchase = @gateway.purchase(amount, @credit_card, @options)
|
|
220
|
+
assert_success purchase
|
|
221
|
+
assert_equal 'Approved', purchase.message
|
|
222
|
+
assert !purchase.authorization.blank?
|
|
223
|
+
|
|
224
|
+
assert credit = @gateway.credit(amount, purchase.authorization)
|
|
225
|
+
assert_success credit
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
# The default security setting for Payflow Pro accounts is Allow
|
|
229
|
+
# non-referenced credits = No.
|
|
230
|
+
#
|
|
231
|
+
# Non-referenced credits will fail with Result code 117 (failed the security
|
|
232
|
+
# check) unless Allow non-referenced credits = Yes in PayPal manager
|
|
233
|
+
def test_purchase_and_non_referenced_credit
|
|
234
|
+
assert credit = @gateway.credit(100, @credit_card, @options)
|
|
235
|
+
assert_success credit
|
|
236
|
+
end
|
|
237
|
+
end
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class RemotePayflowUkTest < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
ActiveMerchant::Billing::Base.gateway_mode = :test
|
|
6
|
+
|
|
7
|
+
# The default partner is PayPalUk
|
|
8
|
+
@gateway = PayflowUkGateway.new(fixtures(:payflow_uk))
|
|
9
|
+
|
|
10
|
+
@creditcard = CreditCard.new(
|
|
11
|
+
:number => '5105105105105100',
|
|
12
|
+
:month => 11,
|
|
13
|
+
:year => 2009,
|
|
14
|
+
:first_name => 'Cody',
|
|
15
|
+
:last_name => 'Fauser',
|
|
16
|
+
:verification_value => '000',
|
|
17
|
+
:type => 'master'
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
@solo = CreditCard.new(
|
|
21
|
+
:type => "solo",
|
|
22
|
+
:number => "6334900000000005",
|
|
23
|
+
:month => Time.now.month,
|
|
24
|
+
:year => Time.now.year + 1,
|
|
25
|
+
:first_name => "Test",
|
|
26
|
+
:last_name => "Mensch",
|
|
27
|
+
:issue_number => '01'
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
@switch = CreditCard.new(
|
|
31
|
+
:type => "switch",
|
|
32
|
+
:number => "5641820000000005",
|
|
33
|
+
:verification_value => "000",
|
|
34
|
+
:month => 1,
|
|
35
|
+
:year => 2008,
|
|
36
|
+
:first_name => 'Fred',
|
|
37
|
+
:last_name => 'Brooks'
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
@options = {
|
|
41
|
+
:billing_address => {
|
|
42
|
+
:name => 'Cody Fauser',
|
|
43
|
+
:address1 => '1234 Shady Brook Lane',
|
|
44
|
+
:city => 'Ottawa',
|
|
45
|
+
:state => 'ON',
|
|
46
|
+
:country => 'CA',
|
|
47
|
+
:zip => '90210',
|
|
48
|
+
:phone => '555-555-5555'
|
|
49
|
+
},
|
|
50
|
+
:email => 'cody@example.com'
|
|
51
|
+
}
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def test_successful_purchase
|
|
55
|
+
assert response = @gateway.purchase(100000, @creditcard, @options)
|
|
56
|
+
assert_equal "Approved", response.message
|
|
57
|
+
assert_success response
|
|
58
|
+
assert response.test?
|
|
59
|
+
assert_not_nil response.authorization
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def test_declined_purchase
|
|
63
|
+
assert response = @gateway.purchase(210000, @creditcard, @options)
|
|
64
|
+
assert_equal 'Failed merchant rule check', response.message
|
|
65
|
+
assert_failure response
|
|
66
|
+
assert response.test?
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_successful_purchase_solo
|
|
70
|
+
assert response = @gateway.purchase(100000, @solo, @options)
|
|
71
|
+
assert_equal "Approved", response.message
|
|
72
|
+
assert_success response
|
|
73
|
+
assert response.test?
|
|
74
|
+
assert_not_nil response.authorization
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def test_no_card_issue_or_card_start_with_switch
|
|
78
|
+
assert response = @gateway.purchase(100000, @switch, @options)
|
|
79
|
+
assert_failure response
|
|
80
|
+
|
|
81
|
+
assert_equal "Field format error: CARDSTART or CARDISSUE must be present", response.message
|
|
82
|
+
assert_failure response
|
|
83
|
+
assert response.test?
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def test_successful_purchase_switch_with_issue_number
|
|
87
|
+
@switch.issue_number = '01'
|
|
88
|
+
assert response = @gateway.purchase(100000, @switch, @options)
|
|
89
|
+
assert_equal "Approved", response.message
|
|
90
|
+
assert_success response
|
|
91
|
+
assert response.test?
|
|
92
|
+
assert_not_nil response.authorization
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def test_successful_purchase_switch_with_start_date
|
|
96
|
+
@switch.start_month = 12
|
|
97
|
+
@switch.start_year = 1999
|
|
98
|
+
assert response = @gateway.purchase(100000, @switch, @options)
|
|
99
|
+
assert_equal "Approved", response.message
|
|
100
|
+
assert_success response
|
|
101
|
+
assert response.test?
|
|
102
|
+
assert_not_nil response.authorization
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def test_successful_purchase_switch_with_start_date_and_issue_number
|
|
106
|
+
@switch.issue_number = '05'
|
|
107
|
+
@switch.start_month = 12
|
|
108
|
+
@switch.start_year = 1999
|
|
109
|
+
assert response = @gateway.purchase(100000, @switch, @options)
|
|
110
|
+
assert_equal "Approved", response.message
|
|
111
|
+
assert_success response
|
|
112
|
+
assert response.test?
|
|
113
|
+
assert_not_nil response.authorization
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def test_successful_authorization
|
|
117
|
+
assert response = @gateway.authorize(100, @creditcard, @options)
|
|
118
|
+
assert_equal "Approved", response.message
|
|
119
|
+
assert_success response
|
|
120
|
+
assert response.test?
|
|
121
|
+
assert_not_nil response.authorization
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def test_authorize_and_capture
|
|
125
|
+
amount = 100
|
|
126
|
+
assert auth = @gateway.authorize(amount, @creditcard, @options)
|
|
127
|
+
assert_success auth
|
|
128
|
+
assert_equal 'Approved', auth.message
|
|
129
|
+
assert auth.authorization
|
|
130
|
+
assert capture = @gateway.capture(amount, auth.authorization)
|
|
131
|
+
assert_success capture
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def test_failed_capture
|
|
135
|
+
assert response = @gateway.capture(100, '999')
|
|
136
|
+
assert_failure response
|
|
137
|
+
assert_equal 'Invalid tender', response.message
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def test_authorize_and_void
|
|
141
|
+
assert auth = @gateway.authorize(100, @creditcard, @options)
|
|
142
|
+
assert_success auth
|
|
143
|
+
assert_equal 'Approved', auth.message
|
|
144
|
+
assert auth.authorization
|
|
145
|
+
assert void = @gateway.void(auth.authorization)
|
|
146
|
+
assert_success void
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def test_invalid_login
|
|
150
|
+
gateway = PayflowGateway.new(
|
|
151
|
+
:login => '',
|
|
152
|
+
:password => ''
|
|
153
|
+
)
|
|
154
|
+
assert response = gateway.purchase(100, @creditcard, @options)
|
|
155
|
+
assert_equal 'Invalid vendor account', response.message
|
|
156
|
+
assert_failure response
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
def test_duplicate_request_id
|
|
160
|
+
gateway = PayflowUkGateway.new(
|
|
161
|
+
:login => @login,
|
|
162
|
+
:password => @password
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
request_id = Digest::SHA1.hexdigest(rand.to_s).slice(0,32)
|
|
166
|
+
gateway.expects(:generate_unique_id).times(2).returns(request_id)
|
|
167
|
+
|
|
168
|
+
response1 = gateway.purchase(100, @creditcard, @options)
|
|
169
|
+
assert_nil response1.params['duplicate']
|
|
170
|
+
response2 = gateway.purchase(100, @creditcard, @options)
|
|
171
|
+
assert response2.params['duplicate']
|
|
172
|
+
end
|
|
173
|
+
end
|