activemerchant 1.2.1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/CHANGELOG +310 -294
- data/CONTRIBUTERS +13 -0
- data/README +55 -31
- data/Rakefile +21 -13
- data/lib/active_merchant.rb +7 -0
- data/lib/active_merchant/billing/avs_result.rb +95 -0
- data/lib/active_merchant/billing/base.rb +8 -3
- data/lib/active_merchant/billing/check.rb +61 -0
- data/lib/active_merchant/billing/credit_card.rb +104 -80
- data/lib/active_merchant/billing/credit_card_formatting.rb +11 -8
- data/lib/active_merchant/billing/credit_card_methods.rb +76 -32
- 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 +47 -111
- data/lib/active_merchant/billing/gateways/authorize_net.rb +508 -121
- data/lib/active_merchant/billing/gateways/bogus.rb +26 -32
- data/lib/active_merchant/billing/gateways/brain_tree.rb +82 -70
- data/lib/active_merchant/billing/gateways/card_stream.rb +43 -15
- data/lib/active_merchant/billing/gateways/cyber_source.rb +9 -29
- data/lib/active_merchant/billing/gateways/data_cash.rb +18 -38
- data/lib/active_merchant/billing/gateways/efsnet.rb +23 -50
- data/lib/active_merchant/billing/gateways/eway.rb +8 -19
- data/lib/active_merchant/billing/gateways/exact.rb +17 -25
- data/lib/active_merchant/billing/gateways/linkpoint.rb +18 -25
- data/lib/active_merchant/billing/gateways/moneris.rb +9 -39
- data/lib/active_merchant/billing/gateways/net_registry.rb +113 -182
- data/lib/active_merchant/billing/gateways/netbilling.rb +168 -0
- data/lib/active_merchant/billing/gateways/pay_junction.rb +52 -73
- data/lib/active_merchant/billing/gateways/pay_secure.rb +120 -0
- data/lib/active_merchant/billing/gateways/payflow.rb +13 -14
- data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +55 -37
- data/lib/active_merchant/billing/gateways/payflow/payflow_response.rb +4 -0
- data/lib/active_merchant/billing/gateways/payflow_express.rb +2 -4
- data/lib/active_merchant/billing/gateways/payment_express.rb +11 -30
- data/lib/active_merchant/billing/gateways/paypal.rb +3 -14
- data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +36 -16
- data/lib/active_merchant/billing/gateways/paypal_express.rb +1 -2
- data/lib/active_merchant/billing/gateways/plugnpay.rb +7 -15
- data/lib/active_merchant/billing/gateways/protx.rb +24 -25
- data/lib/active_merchant/billing/gateways/psigate.rb +34 -71
- data/lib/active_merchant/billing/gateways/psl_card.rb +24 -19
- data/lib/active_merchant/billing/gateways/quickpay.rb +10 -24
- data/lib/active_merchant/billing/gateways/realex.rb +7 -19
- data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +113 -0
- data/lib/active_merchant/billing/gateways/skip_jack.rb +437 -0
- data/lib/active_merchant/billing/gateways/trans_first.rb +5 -14
- data/lib/active_merchant/billing/gateways/trust_commerce.rb +100 -39
- data/lib/active_merchant/billing/gateways/usa_epay.rb +60 -55
- data/lib/active_merchant/billing/gateways/verifi.rb +32 -39
- data/lib/active_merchant/billing/gateways/viaklix.rb +31 -37
- data/lib/active_merchant/billing/integrations.rb +2 -0
- data/lib/active_merchant/billing/integrations/bogus.rb +5 -0
- data/lib/active_merchant/billing/integrations/bogus/return.rb +10 -0
- data/lib/active_merchant/billing/integrations/chronopay.rb +5 -0
- data/lib/active_merchant/billing/integrations/chronopay/return.rb +10 -0
- data/lib/active_merchant/billing/integrations/gestpay.rb +5 -0
- data/lib/active_merchant/billing/integrations/gestpay/return.rb +10 -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 +57 -0
- data/lib/active_merchant/billing/integrations/hi_trust/return.rb +67 -0
- data/lib/active_merchant/billing/integrations/nochex.rb +5 -0
- data/lib/active_merchant/billing/integrations/nochex/return.rb +10 -0
- data/lib/active_merchant/billing/integrations/paypal.rb +5 -0
- data/lib/active_merchant/billing/integrations/paypal/return.rb +10 -0
- data/lib/active_merchant/billing/integrations/return.rb +35 -0
- data/lib/active_merchant/billing/integrations/two_checkout.rb +5 -0
- data/lib/active_merchant/billing/integrations/two_checkout/return.rb +17 -0
- data/lib/active_merchant/billing/response.rb +12 -8
- data/lib/active_merchant/lib/posts_data.rb +39 -7
- data/lib/active_merchant/lib/requires_parameters.rb +2 -3
- data/lib/active_merchant/lib/utils.rb +18 -0
- data/lib/active_merchant/lib/validateable.rb +3 -3
- data/lib/support/gateway_support.rb +22 -9
- data/script/destroy +14 -0
- data/script/generate +7 -7
- data/test/fixtures.yml +25 -3
- data/test/remote/gateways/remote_authorize_net_test.rb +145 -0
- data/test/remote/gateways/remote_brain_tree_test.rb +118 -0
- data/test/{remote_tests → remote/gateways}/remote_card_stream_test.rb +56 -68
- data/test/{remote_tests → remote/gateways}/remote_cyber_source_test.rb +21 -32
- data/test/{remote_tests → remote/gateways}/remote_data_cash_test.rb +2 -2
- data/test/{remote_tests → remote/gateways}/remote_efsnet_test.rb +22 -34
- data/test/{remote_tests → remote/gateways}/remote_eway_test.rb +18 -15
- data/test/{remote_tests → remote/gateways}/remote_exact_test.rb +20 -19
- data/test/{remote_tests → remote/gateways}/remote_linkpoint_test.rb +31 -63
- data/test/remote/gateways/remote_moneris_test.rb +82 -0
- data/test/{remote_tests → remote/gateways}/remote_net_registry_test.rb +19 -54
- data/test/remote/gateways/remote_netbilling_test.rb +70 -0
- data/test/{remote_tests → remote/gateways}/remote_pay_junction_test.rb +41 -60
- data/test/remote/gateways/remote_pay_secure_test.rb +39 -0
- data/test/{remote_tests → remote/gateways}/remote_payflow_express_test.rb +2 -2
- data/test/{remote_tests → remote/gateways}/remote_payflow_test.rb +34 -38
- data/test/{remote_tests → remote/gateways}/remote_payflow_uk_test.rb +13 -12
- data/test/{remote_tests → remote/gateways}/remote_payment_express_test.rb +26 -36
- data/test/{remote_tests → remote/gateways}/remote_paypal_express_test.rb +3 -3
- data/test/{remote_tests → remote/gateways}/remote_paypal_test.rb +25 -21
- data/test/{remote_tests → remote/gateways}/remote_plugnpay_test.rb +18 -16
- data/test/{remote_tests → remote/gateways}/remote_protx_test.rb +33 -33
- data/test/remote/gateways/remote_psigate_test.rb +50 -0
- data/test/{remote_tests → remote/gateways}/remote_psl_card_test.rb +27 -26
- data/test/{remote_tests → remote/gateways}/remote_quickpay_test.rb +48 -48
- data/test/{remote_tests → remote/gateways}/remote_realex_test.rb +30 -33
- 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_tests → remote/gateways}/remote_trans_first_test.rb +7 -10
- data/test/remote/gateways/remote_trust_commerce_test.rb +152 -0
- data/test/{remote_tests → remote/gateways}/remote_usa_epay_test.rb +11 -22
- data/test/{remote_tests → remote/gateways}/remote_verifi_test.rb +27 -27
- data/test/{remote_tests → remote/gateways}/remote_viaklix_test.rb +8 -18
- data/test/{remote_tests → remote/integrations}/remote_gestpay_integration_test.rb +1 -1
- data/test/{remote_tests → remote/integrations}/remote_paypal_integration_test.rb +1 -1
- data/test/test_helper.rb +102 -61
- data/test/unit/avs_result_test.rb +59 -0
- data/test/unit/base_test.rb +33 -39
- data/test/unit/check_test.rb +76 -0
- data/test/unit/credit_card_formatting_test.rb +10 -15
- data/test/unit/credit_card_methods_test.rb +132 -17
- data/test/unit/credit_card_test.rb +157 -228
- data/test/unit/cvv_result_test.rb +33 -0
- data/test/unit/expiry_date_test.rb +21 -0
- data/test/unit/gateways/authorize_net_test.rb +180 -40
- data/test/unit/gateways/bogus_test.rb +2 -3
- data/test/unit/gateways/brain_tree_test.rb +63 -29
- data/test/unit/gateways/card_stream_test.rb +59 -6
- data/test/unit/gateways/cyber_source_test.rb +59 -40
- data/test/unit/gateways/data_cash_test.rb +82 -1
- data/test/unit/gateways/efsnet_test.rb +97 -44
- data/test/unit/gateways/eway_test.rb +55 -42
- data/test/unit/gateways/exact_test.rb +93 -55
- data/test/unit/gateways/gateway_test.rb +7 -0
- data/test/unit/gateways/linkpoint_test.rb +60 -58
- data/test/unit/gateways/moneris_test.rb +67 -76
- data/test/unit/gateways/net_registry_test.rb +351 -419
- data/test/unit/gateways/netbilling_test.rb +54 -0
- data/test/unit/gateways/pay_junction_test.rb +108 -46
- data/test/unit/gateways/pay_secure_test.rb +71 -0
- data/test/unit/gateways/payflow_express_test.rb +0 -8
- data/test/unit/gateways/payflow_test.rb +136 -65
- data/test/unit/gateways/payflow_uk_test.rb +0 -38
- data/test/unit/gateways/payment_express_test.rb +31 -51
- data/test/unit/gateways/paypal_express_test.rb +8 -2
- data/test/unit/gateways/paypal_test.rb +213 -54
- data/test/unit/gateways/plugnpay_test.rb +39 -32
- data/test/unit/gateways/protx_test.rb +45 -33
- data/test/unit/gateways/psigate_test.rb +146 -87
- data/test/unit/gateways/psl_card_test.rb +37 -24
- data/test/unit/gateways/quickpay_test.rb +33 -46
- data/test/unit/gateways/realex_test.rb +32 -31
- data/test/unit/gateways/secure_pay_tech_test.rb +44 -0
- data/test/unit/gateways/secure_pay_test.rb +35 -26
- data/test/unit/gateways/skip_jack_test.rb +125 -0
- data/test/unit/gateways/trans_first_test.rb +24 -37
- data/test/unit/gateways/trust_commerce_test.rb +47 -26
- data/test/unit/gateways/usa_epay_test.rb +52 -41
- data/test/unit/gateways/verifi_test.rb +41 -35
- data/test/unit/gateways/viaklix_test.rb +38 -32
- 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 +7 -14
- data/test/unit/integrations/bogus_module_test.rb +4 -0
- data/test/unit/integrations/chronopay_module_test.rb +4 -0
- data/test/unit/integrations/gestpay_module_test.rb +4 -0
- data/test/unit/integrations/helpers/hi_trust_helper_test.rb +16 -0
- data/test/unit/integrations/hi_trust_module_test.rb +13 -0
- data/test/unit/integrations/nochex_module_test.rb +4 -0
- data/test/unit/integrations/notifications/hi_trust_notification_test.rb +38 -0
- data/test/unit/integrations/paypal_module_test.rb +4 -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 +4 -0
- data/test/unit/posts_data_test.rb +86 -0
- data/test/unit/response_test.rb +15 -1
- data/test/unit/utils_test.rb +7 -0
- data/test/unit/validateable_test.rb +10 -6
- metadata +180 -142
- metadata.gz.sig +0 -0
- data/lib/active_merchant/billing/gateways/paypal/api_cert_chain.crt +0 -35
- data/script/generator/base.rb +0 -45
- data/script/generator/generator.rb +0 -24
- data/script/generator/generators/gateway/gateway_generator.rb +0 -14
- data/script/generator/generators/gateway/templates/gateway.rb +0 -73
- data/script/generator/generators/gateway/templates/gateway_test.rb +0 -41
- data/script/generator/generators/gateway/templates/remote_gateway_test.rb +0 -56
- data/script/generator/generators/integration/integration_generator.rb +0 -25
- data/script/generator/generators/integration/templates/helper.rb +0 -34
- data/script/generator/generators/integration/templates/helper_test.rb +0 -54
- data/script/generator/generators/integration/templates/integration.rb +0 -18
- data/script/generator/generators/integration/templates/module_test.rb +0 -9
- data/script/generator/generators/integration/templates/notification.rb +0 -100
- data/script/generator/generators/integration/templates/notification_test.rb +0 -41
- data/script/generator/manifest.rb +0 -20
- data/test/remote_tests/remote_authorize_net_test.rb +0 -113
- data/test/remote_tests/remote_brain_tree_test.rb +0 -78
- data/test/remote_tests/remote_moneris_test.rb +0 -110
- data/test/remote_tests/remote_psigate_test.rb +0 -87
- data/test/remote_tests/remote_secure_pay_test.rb +0 -36
- data/test/remote_tests/remote_trust_commerce_test.rb +0 -136
@@ -0,0 +1,125 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../test_helper'
|
2
|
+
|
3
|
+
class SkipJackTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
Base.gateway_mode = :test
|
7
|
+
|
8
|
+
@gateway = SkipJackGateway.new(:login => 'X', :password => 'Y')
|
9
|
+
|
10
|
+
@credit_card = credit_card('4242424242424242')
|
11
|
+
|
12
|
+
@billing_address = {
|
13
|
+
:address1 => '123 Any St.',
|
14
|
+
:address2 => 'Apt. B',
|
15
|
+
:city => 'Anytown',
|
16
|
+
:state => 'ST',
|
17
|
+
:country => 'US',
|
18
|
+
:zip => '51511-1234',
|
19
|
+
:phone => '616-555-1212',
|
20
|
+
:fax => '616-555-2121'
|
21
|
+
}
|
22
|
+
|
23
|
+
@shipping_address = {
|
24
|
+
:name => 'Stew Packman',
|
25
|
+
:address1 => 'Company',
|
26
|
+
:address2 => '321 No RD',
|
27
|
+
:city => 'Nowhereton',
|
28
|
+
:state => 'ZC',
|
29
|
+
:country => 'MX',
|
30
|
+
:phone => '0123231212'
|
31
|
+
}
|
32
|
+
|
33
|
+
@options = {
|
34
|
+
:order_id => 1,
|
35
|
+
:email => 'cody@example.com'
|
36
|
+
}
|
37
|
+
|
38
|
+
@amount = 100
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_authorization_success
|
42
|
+
@gateway.expects(:ssl_post).returns(successful_authorization_response)
|
43
|
+
|
44
|
+
assert response = @gateway.authorize(@amount, @credit_card, @options)
|
45
|
+
assert_instance_of Response, response
|
46
|
+
assert_success response
|
47
|
+
assert_equal '9802853155172.022', response.authorization
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_authorization_failure
|
51
|
+
@gateway.expects(:ssl_post).returns(unsuccessful_authorization_response)
|
52
|
+
|
53
|
+
assert response = @gateway.authorize(@amount, @credit_card, @options)
|
54
|
+
assert_instance_of Response, response
|
55
|
+
assert_failure response
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_purchase_success
|
59
|
+
@gateway.expects(:ssl_post).times(2).returns(successful_authorization_response, successful_capture_response)
|
60
|
+
|
61
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
62
|
+
assert_success response
|
63
|
+
assert_equal "9802853155172.022", response.authorization
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_split_line
|
67
|
+
keys = @gateway.send(:split_line, '"AUTHCODE","szSerialNumber","szTransactionAmount","szAuthorizationDeclinedMessage","szAVSResponseCode","szAVSResponseMessage","szOrderNumber","szAuthorizationResponseCode","szIsApproved","szCVV2ResponseCode","szCVV2ResponseMessage","szReturnCode","szTransactionFileName","szCAVVResponseCode"')
|
68
|
+
|
69
|
+
values = @gateway.send(:split_line, '"000067","999888777666","1900","","N","Card authorized, exact address match with 5 digit zipcode.","1","000067","1","","","1","10138083786558.009",""')
|
70
|
+
|
71
|
+
assert_equal keys.size, values.size
|
72
|
+
|
73
|
+
keyvals = keys.zip(values).flatten
|
74
|
+
map = Hash[*keyvals]
|
75
|
+
|
76
|
+
assert_equal '000067', map['AUTHCODE']
|
77
|
+
end
|
78
|
+
|
79
|
+
def test_turn_authorizeapi_response_into_hash
|
80
|
+
body = <<-EOS
|
81
|
+
"AUTHCODE","szSerialNumber","szTransactionAmount","szAuthorizationDeclinedMessage","szAVSResponseCode","szAVSResponseMessage","szOrderNumber","szAuthorizationResponseCode","szIsApproved","szCVV2ResponseCode","szCVV2ResponseMessage","szReturnCode","szTransactionFileName","szCAVVResponseCode"
|
82
|
+
"000067","999888777666","1900","","N","Card authorized, exact address match with 5 digit zipcode.","1","000067","1","","","1","10138083786558.009",""
|
83
|
+
EOS
|
84
|
+
|
85
|
+
map = @gateway.send(:authorize_response_map, body)
|
86
|
+
|
87
|
+
assert_equal 14, map.keys.size
|
88
|
+
assert_equal '10138083786558.009', map[:szTransactionFileName]
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_avs_result
|
92
|
+
@gateway.expects(:ssl_post).returns(successful_authorization_response)
|
93
|
+
|
94
|
+
response = @gateway.authorize(@amount, @credit_card, @options)
|
95
|
+
assert_equal 'Y', response.avs_result['code']
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_cvv_result
|
99
|
+
@gateway.expects(:ssl_post).returns(successful_authorization_response)
|
100
|
+
|
101
|
+
response = @gateway.authorize(@amount, @credit_card, @options)
|
102
|
+
assert_equal 'M', response.cvv_result['code']
|
103
|
+
end
|
104
|
+
|
105
|
+
private
|
106
|
+
def successful_authorization_response
|
107
|
+
<<-CSV
|
108
|
+
"AUTHCODE","szSerialNumber","szTransactionAmount","szAuthorizationDeclinedMessage","szAVSResponseCode","szAVSResponseMessage","szOrderNumber","szAuthorizationResponseCode","szIsApproved","szCVV2ResponseCode","szCVV2ResponseMessage","szReturnCode","szTransactionFileName","szCAVVResponseCode"
|
109
|
+
"TAS204","000386891209","100","","Y","Card authorized, exact address match with 5 digit zip code.","107a0fdb21ba42cf04f60274908085ea","TAS204","1","M","Match","1","9802853155172.022",""
|
110
|
+
CSV
|
111
|
+
end
|
112
|
+
|
113
|
+
def successful_capture_response
|
114
|
+
<<-CSV
|
115
|
+
"000386891209","0","1","","","","","","","","",""
|
116
|
+
"000386891209","1.0000","SETTLE","SUCCESSFUL","Valid","618844630c5fad658e95abfd5e1d4e22","9802853156029.022"
|
117
|
+
CSV
|
118
|
+
end
|
119
|
+
|
120
|
+
def unsuccessful_authorization_response
|
121
|
+
<<-CSV
|
122
|
+
"AUTHCODE","szSerialNumber","szTransactionAmount","szAuthorizationDeclinedMessage","szAVSResponseCode","szAVSResponseMessage","szOrderNumber","szAuthorizationResponseCode","szIsApproved","szCVV2ResponseCode","szCVV2ResponseMessage","szReturnCode","szTransactionFileName","szCAVVResponseCode"\r\n"EMPTY","000386891209","100","","","","b1eec256d0182f29375e0cbae685092d","","0","","","-35","",""
|
123
|
+
CSV
|
124
|
+
end
|
125
|
+
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../../test_helper'
|
2
2
|
|
3
3
|
class TransFirstTest < Test::Unit::TestCase
|
4
|
-
AMOUNT = 100
|
5
4
|
|
6
5
|
def setup
|
7
6
|
@gateway = TransFirstGateway.new(
|
@@ -9,43 +8,17 @@ class TransFirstTest < Test::Unit::TestCase
|
|
9
8
|
:password => 'PASSWORD'
|
10
9
|
)
|
11
10
|
|
12
|
-
@
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
:city => 'Ottawa',
|
18
|
-
:state => 'ON',
|
19
|
-
:zip => 'K1C2N6',
|
20
|
-
:country => 'Canada',
|
21
|
-
:phone => '(555)555-5555'
|
22
|
-
}
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_successful_request
|
26
|
-
@creditcard.number = 1
|
27
|
-
assert response = @gateway.purchase(AMOUNT, @creditcard, {})
|
28
|
-
assert_success response
|
29
|
-
assert_equal '5555', response.authorization
|
30
|
-
assert response.test?
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_unsuccessful_request
|
34
|
-
@creditcard.number = 2
|
35
|
-
assert response = @gateway.purchase(AMOUNT, @creditcard, {})
|
36
|
-
assert_failure response
|
37
|
-
assert response.test?
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_request_error
|
41
|
-
@creditcard.number = 3
|
42
|
-
assert_raise(Error){ @gateway.purchase(AMOUNT, @creditcard, {}) }
|
11
|
+
@credit_card = credit_card('4242424242424242')
|
12
|
+
@options = {
|
13
|
+
:billing_address => address
|
14
|
+
}
|
15
|
+
@amount = 100
|
43
16
|
end
|
44
17
|
|
45
18
|
def test_missing_field_response
|
46
19
|
@gateway.stubs(:ssl_post).returns(missing_field_response)
|
47
20
|
|
48
|
-
response = @gateway.purchase(
|
21
|
+
response = @gateway.purchase(@amount, @credit_card, @options)
|
49
22
|
|
50
23
|
assert_failure response
|
51
24
|
assert response.test?
|
@@ -55,7 +28,7 @@ class TransFirstTest < Test::Unit::TestCase
|
|
55
28
|
def test_successful_purchase
|
56
29
|
@gateway.stubs(:ssl_post).returns(successful_purchase_response)
|
57
30
|
|
58
|
-
response = @gateway.purchase(
|
31
|
+
response = @gateway.purchase(@amount, @credit_card, @options)
|
59
32
|
|
60
33
|
assert_success response
|
61
34
|
assert response.test?
|
@@ -66,7 +39,7 @@ class TransFirstTest < Test::Unit::TestCase
|
|
66
39
|
def test_failed_purchase
|
67
40
|
@gateway.stubs(:ssl_post).returns(failed_purchase_response)
|
68
41
|
|
69
|
-
response = @gateway.purchase(
|
42
|
+
response = @gateway.purchase(@amount, @credit_card, @options)
|
70
43
|
|
71
44
|
assert_failure response
|
72
45
|
assert response.test?
|
@@ -74,6 +47,20 @@ class TransFirstTest < Test::Unit::TestCase
|
|
74
47
|
assert_equal 'Invalid cardholder number', response.message
|
75
48
|
end
|
76
49
|
|
50
|
+
def test_avs_result
|
51
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
52
|
+
|
53
|
+
response = @gateway.purchase(@amount, @credit_card, @options)
|
54
|
+
assert_equal 'X', response.avs_result['code']
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_cvv_result
|
58
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
59
|
+
|
60
|
+
response = @gateway.purchase(@amount, @credit_card, @options)
|
61
|
+
assert_equal 'M', response.cvv_result['code']
|
62
|
+
end
|
63
|
+
|
77
64
|
private
|
78
65
|
def missing_field_response
|
79
66
|
"Missing parameter: UserId.\r\n"
|
@@ -88,9 +75,9 @@ class TransFirstTest < Test::Unit::TestCase
|
|
88
75
|
<Amount>1.00</Amount>
|
89
76
|
<AuthCode>Test00</AuthCode>
|
90
77
|
<Status>Authorized</Status>
|
91
|
-
<AVSCode
|
78
|
+
<AVSCode>X</AVSCode>
|
92
79
|
<Message>test transaction</Message>
|
93
|
-
<CVV2Code
|
80
|
+
<CVV2Code>M</CVV2Code>
|
94
81
|
<ACI />
|
95
82
|
<AuthSource />
|
96
83
|
<TransactionIdentifier />
|
@@ -2,41 +2,30 @@ require File.dirname(__FILE__) + '/../../test_helper'
|
|
2
2
|
|
3
3
|
class TrustCommerceTest < Test::Unit::TestCase
|
4
4
|
def setup
|
5
|
-
#TCLink rescue NameError assert false, 'Trust Commerce test cases require "tclink" library from http://www.trustcommerce.com/tclink.html'
|
6
|
-
|
7
5
|
@gateway = TrustCommerceGateway.new(
|
8
6
|
:login => 'TestMerchant',
|
9
7
|
:password => 'password'
|
10
8
|
)
|
9
|
+
# Force SSL post
|
10
|
+
@gateway.stubs(:tclink?).returns(false)
|
11
11
|
|
12
|
-
@
|
13
|
-
|
14
|
-
|
15
|
-
def test_purchase_success
|
16
|
-
@creditcard.number = '1'
|
17
|
-
|
18
|
-
assert response = @gateway.purchase(100, @creditcard, :demo => 'y')
|
19
|
-
assert_equal Response, response.class
|
20
|
-
assert_equal '#0001', response.params['receiptid']
|
21
|
-
assert_equal true, response.success?
|
12
|
+
@amount = 100
|
13
|
+
@credit_card = credit_card('4111111111111111')
|
22
14
|
end
|
23
15
|
|
24
|
-
def
|
25
|
-
@
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
assert_equal '
|
30
|
-
assert_equal false, response.success?
|
31
|
-
|
16
|
+
def test_successful_purchase
|
17
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
18
|
+
assert response = @gateway.purchase(@amount, @credit_card)
|
19
|
+
assert_instance_of Response, response
|
20
|
+
assert_success response
|
21
|
+
assert_equal '025-0007423614', response.authorization
|
32
22
|
end
|
33
23
|
|
34
|
-
def
|
35
|
-
@
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
end
|
24
|
+
def test_unsuccessful_purchase
|
25
|
+
@gateway.expects(:ssl_post).returns(unsuccessful_purchase_response)
|
26
|
+
assert response = @gateway.purchase(@amount, @credit_card)
|
27
|
+
assert_instance_of Response, response
|
28
|
+
assert_failure response
|
40
29
|
end
|
41
30
|
|
42
31
|
def test_amount_style
|
@@ -47,6 +36,20 @@ class TrustCommerceTest < Test::Unit::TestCase
|
|
47
36
|
end
|
48
37
|
end
|
49
38
|
|
39
|
+
def test_avs_result
|
40
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
41
|
+
|
42
|
+
response = @gateway.purchase(@amount, @credit_card)
|
43
|
+
assert_equal 'Y', response.avs_result['code']
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_cvv_result
|
47
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
48
|
+
|
49
|
+
response = @gateway.purchase(@amount, @credit_card)
|
50
|
+
assert_equal 'P', response.cvv_result['code']
|
51
|
+
end
|
52
|
+
|
50
53
|
def test_supported_countries
|
51
54
|
assert_equal ['US'], TrustCommerceGateway.supported_countries
|
52
55
|
end
|
@@ -54,4 +57,22 @@ class TrustCommerceTest < Test::Unit::TestCase
|
|
54
57
|
def test_supported_card_types
|
55
58
|
assert_equal [:visa, :master, :discover, :american_express, :diners_club, :jcb], TrustCommerceGateway.supported_cardtypes
|
56
59
|
end
|
60
|
+
|
61
|
+
def successful_purchase_response
|
62
|
+
<<-RESPONSE
|
63
|
+
transid=025-0007423614
|
64
|
+
status=approved
|
65
|
+
avs=Y
|
66
|
+
cvv=P
|
67
|
+
RESPONSE
|
68
|
+
end
|
69
|
+
|
70
|
+
def unsuccessful_purchase_response
|
71
|
+
<<-RESPONSE
|
72
|
+
transid=025-0007423827
|
73
|
+
declinetype=cvv
|
74
|
+
status=decline
|
75
|
+
cvv=N
|
76
|
+
RESPONSE
|
77
|
+
end
|
57
78
|
end
|
@@ -3,42 +3,34 @@ require File.dirname(__FILE__) + '/../../test_helper'
|
|
3
3
|
class UsaEpayTest < Test::Unit::TestCase
|
4
4
|
def setup
|
5
5
|
@gateway = UsaEpayGateway.new(
|
6
|
-
|
7
|
-
|
6
|
+
:login => 'LOGIN'
|
7
|
+
)
|
8
8
|
|
9
|
-
@
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
:state => 'ON',
|
16
|
-
:zip => 'K1C2N6',
|
17
|
-
:country => 'Canada',
|
18
|
-
:phone => '(555)555-5555'
|
19
|
-
}
|
9
|
+
@credit_card = credit_card('4242424242424242')
|
10
|
+
@options = {
|
11
|
+
:billing_address => address,
|
12
|
+
:shipping_address => address
|
13
|
+
}
|
14
|
+
@amount = 100
|
20
15
|
end
|
21
16
|
|
22
17
|
def test_successful_request
|
23
|
-
@
|
24
|
-
|
18
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
19
|
+
|
20
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
25
21
|
assert_success response
|
26
|
-
assert_equal '
|
22
|
+
assert_equal '55074409', response.authorization
|
27
23
|
assert response.test?
|
28
24
|
end
|
29
25
|
|
30
26
|
def test_unsuccessful_request
|
31
|
-
@
|
32
|
-
|
27
|
+
@gateway.expects(:ssl_post).returns(unsuccessful_purchase_response)
|
28
|
+
|
29
|
+
assert response = @gateway.purchase(@amount, @credit_card, @options)
|
33
30
|
assert_failure response
|
34
31
|
assert response.test?
|
35
32
|
end
|
36
33
|
|
37
|
-
def test_request_error
|
38
|
-
@creditcard.number = 3
|
39
|
-
assert_raise(Error){ @gateway.purchase(100, @creditcard, {}) }
|
40
|
-
end
|
41
|
-
|
42
34
|
def test_address_key_prefix
|
43
35
|
assert_equal 'bill', @gateway.send(:address_key_prefix, :billing)
|
44
36
|
assert_equal 'ship', @gateway.send(:address_key_prefix, :shipping)
|
@@ -51,26 +43,21 @@ class UsaEpayTest < Test::Unit::TestCase
|
|
51
43
|
|
52
44
|
def test_add_address
|
53
45
|
post = {}
|
54
|
-
|
55
|
-
@gateway.send(:add_address, post, @creditcard, options)
|
46
|
+
@gateway.send(:add_address, post, @credit_card, @options)
|
56
47
|
assert_address(:shipping, post)
|
57
48
|
assert_equal 20, post.keys.size
|
58
49
|
end
|
59
50
|
|
60
51
|
def test_add_billing_address
|
61
52
|
post = {}
|
62
|
-
|
63
|
-
@gateway.send(:add_address, post, @creditcard, options)
|
53
|
+
@gateway.send(:add_address, post, @credit_card, @options)
|
64
54
|
assert_address(:billing, post)
|
65
55
|
assert_equal 20, post.keys.size
|
66
56
|
end
|
67
57
|
|
68
58
|
def test_add_billing_and_shipping_addresses
|
69
59
|
post = {}
|
70
|
-
|
71
|
-
:billing_address => @address
|
72
|
-
}
|
73
|
-
@gateway.send(:add_address, post, @creditcard, options)
|
60
|
+
@gateway.send(:add_address, post, @credit_card, @options)
|
74
61
|
assert_address(:shipping, post)
|
75
62
|
assert_address(:billing, post)
|
76
63
|
assert_equal 20, post.keys.size
|
@@ -91,20 +78,36 @@ class UsaEpayTest < Test::Unit::TestCase
|
|
91
78
|
def test_supported_card_types
|
92
79
|
assert_equal [:visa, :master, :american_express], UsaEpayGateway.supported_cardtypes
|
93
80
|
end
|
81
|
+
|
82
|
+
def test_avs_result
|
83
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
84
|
+
|
85
|
+
response = @gateway.purchase(@amount, @credit_card, @options)
|
86
|
+
assert_equal 'Y', response.avs_result['code']
|
87
|
+
assert_equal 'Y', response.avs_result['street_match']
|
88
|
+
assert_equal 'Y', response.avs_result['postal_match']
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_cvv_result
|
92
|
+
@gateway.expects(:ssl_post).returns(successful_purchase_response)
|
93
|
+
|
94
|
+
response = @gateway.purchase(@amount, @credit_card, @options)
|
95
|
+
assert_equal 'M', response.cvv_result['code']
|
96
|
+
end
|
94
97
|
|
95
98
|
private
|
96
99
|
def assert_address(type, post)
|
97
100
|
prefix = key_prefix(type)
|
98
|
-
assert_equal @
|
99
|
-
assert_equal @
|
100
|
-
assert_equal @
|
101
|
-
assert_equal @
|
102
|
-
assert_equal @
|
103
|
-
assert_equal @
|
104
|
-
assert_equal @
|
105
|
-
assert_equal @
|
106
|
-
assert_equal @
|
107
|
-
assert_equal @
|
101
|
+
assert_equal @credit_card.first_name, post[key(prefix, 'fname')]
|
102
|
+
assert_equal @credit_card.last_name, post[key(prefix, 'lname')]
|
103
|
+
assert_equal @options[:billing_address][:company], post[key(prefix, 'company')]
|
104
|
+
assert_equal @options[:billing_address][:address1], post[key(prefix, 'street')]
|
105
|
+
assert_equal @options[:billing_address][:address2], post[key(prefix, 'street2')]
|
106
|
+
assert_equal @options[:billing_address][:city], post[key(prefix, 'city')]
|
107
|
+
assert_equal @options[:billing_address][:state], post[key(prefix, 'state')]
|
108
|
+
assert_equal @options[:billing_address][:zip], post[key(prefix, 'zip')]
|
109
|
+
assert_equal @options[:billing_address][:country], post[key(prefix, 'country')]
|
110
|
+
assert_equal @options[:billing_address][:phone], post[key(prefix, 'phone')]
|
108
111
|
end
|
109
112
|
|
110
113
|
def key_prefix(type)
|
@@ -114,4 +117,12 @@ class UsaEpayTest < Test::Unit::TestCase
|
|
114
117
|
def key(prefix, key)
|
115
118
|
@gateway.send(:address_key, prefix, key)
|
116
119
|
end
|
120
|
+
|
121
|
+
def successful_purchase_response
|
122
|
+
"UMversion=2.9&UMstatus=Approved&UMauthCode=001716&UMrefNum=55074409&UMavsResult=Address%3A%20Match%20%26%205%20Digit%20Zip%3A%20Match&UMavsResultCode=YYY&UMcvv2Result=Match&UMcvv2ResultCode=M&UMresult=A&UMvpasResultCode=&UMerror=Approved&UMerrorcode=00000&UMcustnum=&UMbatch=596&UMisDuplicate=N&UMconvertedAmount=&UMconvertedAmountCurrency=840&UMconversionRate=&UMcustReceiptResult=No%20Receipt%20Sent&UMfiller=filled"
|
123
|
+
end
|
124
|
+
|
125
|
+
def unsuccessful_purchase_response
|
126
|
+
"UMversion=2.9&UMstatus=Declined&UMauthCode=000000&UMrefNum=55076060&UMavsResult=Address%3A%20Match%20%26%205%20Digit%20Zip%3A%20Match&UMavsResultCode=YYY&UMcvv2Result=Not%20Processed&UMcvv2ResultCode=P&UMvpasResultCode=&UMresult=D&UMerror=Card%20Declined&UMerrorcode=10127&UMbatch=596&UMfiller=filled"
|
127
|
+
end
|
117
128
|
end
|