exact4r 0.9.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +6 -1
- data/README +71 -3
- data/Rakefile +8 -7
- data/VERSION +1 -1
- data/doc/classes/EWS/Transaction/FakeResponse.html +451 -0
- data/doc/classes/EWS/Transaction/Request.html +61 -80
- data/doc/classes/EWS/Transaction/Response.html +206 -14
- data/doc/classes/EWS/Transaction/Validator.html +182 -0
- data/doc/classes/EWS/Transporter.html +269 -0
- data/doc/classes/REXML/Document.html +176 -0
- data/doc/classes/REXML/Entity.html +150 -0
- data/doc/classes/REXML.html +112 -0
- data/doc/created.rid +1 -1
- data/doc/files/CHANGELOG.html +156 -0
- data/doc/files/LICENCE.html +109 -0
- data/doc/files/README.html +164 -23
- data/doc/files/VERSION.html +107 -0
- data/doc/files/lib/ews/transaction/fake_response_rb.html +101 -0
- data/doc/files/lib/ews/transaction/mapping_rb.html +1 -1
- data/doc/files/lib/ews/transaction/request_rb.html +8 -1
- data/doc/files/lib/ews/transaction/response_rb.html +1 -1
- data/doc/files/lib/ews/transaction/validator_rb.html +101 -0
- data/doc/files/lib/ews/{transaction/transporter_rb.html → transporter_rb.html} +3 -3
- data/doc/files/lib/exact4r_rb.html +6 -2
- data/doc/fr_class_index.html +6 -1
- data/doc/fr_file_index.html +6 -1
- data/doc/fr_method_index.html +22 -7
- data/lib/ews/transaction/mapping.rb +41 -40
- data/lib/ews/transaction/request.rb +3 -4
- data/lib/ews/transaction/response.rb +5 -0
- data/lib/ews/transaction/validator.rb +44 -34
- data/lib/ews/transporter.rb +3 -3
- data/lib/exact4r.rb +1 -1
- data/test/exhaustive/forced_post_test.rb +75 -0
- data/test/exhaustive/online_debit_purchase_test.rb +66 -0
- data/test/exhaustive/online_debit_refund_test.rb +66 -0
- data/test/exhaustive/pre_auth_completion_test.rb +99 -0
- data/test/exhaustive/pre_auth_only_test.rb +68 -0
- data/test/exhaustive/pre_auth_test.rb +68 -0
- data/test/exhaustive/purchase_correction_test.rb +79 -0
- data/test/exhaustive/purchase_test.rb +68 -0
- data/test/exhaustive/recurring_seed_pre_auth_test.rb +68 -0
- data/test/exhaustive/recurring_seed_purchase_test.rb +68 -0
- data/test/exhaustive/refund_correction_test.rb +79 -0
- data/test/exhaustive/refund_test.rb +68 -0
- data/test/exhaustive/secure_storage_test.rb +75 -0
- data/test/exhaustive/tagged_online_debit_refund_test.rb +168 -0
- data/test/exhaustive/tagged_pre_auth_completion_test.rb +119 -0
- data/test/exhaustive/tagged_pre_auth_test.rb +116 -0
- data/test/exhaustive/tagged_purchase_test.rb +116 -0
- data/test/exhaustive/tagged_refund_test.rb +144 -0
- data/test/exhaustive/transaction_details_test.rb +86 -0
- data/test/exhaustive/void_test.rb +75 -0
- data/{spec/avs_spec.rb → test/general/avs_test.rb} +33 -44
- data/test/general/json_encoding_test.rb +62 -0
- data/test/general/request_test.rb +185 -0
- data/test/general/rest_encoding_test.rb +174 -0
- data/test/general/soap_encoding_test.rb +211 -0
- data/test/general/transporter_test.rb +54 -0
- data/test/general/validator_test.rb +150 -0
- data/test/samples/rest.dodgy.response.xml +60 -0
- data/test/samples/rest.everything.response.xml +67 -0
- data/test/samples/rest.response.xml +60 -0
- data/test/samples/soap.deserialization.fault.xml +10 -0
- data/test/samples/soap.dodgy.response.xml +95 -0
- data/test/samples/soap.everything.response.xml +75 -0
- data/test/samples/soap.generalfailure.fault.xml +13 -0
- data/test/samples/soap.nulltransaction.fault.xml +14 -0
- data/test/samples/soap.response.xml +95 -0
- data/test/test_helper.rb +115 -0
- metadata +52 -12
- data/doc/classes/EWS/Transaction/Transporter.html +0 -251
- data/pkg/exact4r-0.5.gem +0 -0
- data/spec/mapping_spec.rb +0 -126
- data/spec/request_spec.rb +0 -154
- data/spec/spec_helper.rb +0 -55
- data/spec/transporter_spec.rb +0 -43
- data/spec/validator_spec.rb +0 -150
@@ -0,0 +1,99 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class PreAuthCompletionTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@transporter = EWS::Transporter.new(LOCATION)
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_mandatory
|
10
|
+
request = EWS::Transaction::Request.new(:transaction_type => :pre_auth_completion)
|
11
|
+
assert !request.valid?
|
12
|
+
assert_equal "gateway_id must be supplied", request.errors[:gateway_id]
|
13
|
+
|
14
|
+
request.gateway_id = EMERGIS_BASIC_AUTH[:gateway_id]
|
15
|
+
assert !request.valid?
|
16
|
+
assert_equal "password must be supplied", request.errors[:password]
|
17
|
+
|
18
|
+
request.password = EMERGIS_BASIC_AUTH[:password]
|
19
|
+
assert !request.valid?
|
20
|
+
assert_equal "One of the following must be supplied: cc_number, track1, track2 or transaction_tag.", request.errors[:base]
|
21
|
+
|
22
|
+
request.cc_number = "4111111111111111"
|
23
|
+
assert !request.valid?
|
24
|
+
assert_equal "cc_expiry must be supplied", request.errors[:cc_expiry]
|
25
|
+
|
26
|
+
request.cc_expiry = "0913"
|
27
|
+
assert !request.valid?
|
28
|
+
assert_equal "cardholder_name must be supplied", request.errors[:cardholder_name]
|
29
|
+
|
30
|
+
request.cardholder_name = "Simon Jones"
|
31
|
+
assert !request.valid?
|
32
|
+
assert_equal "amount must be supplied", request.errors[:amount]
|
33
|
+
|
34
|
+
request.amount = 10
|
35
|
+
assert !request.valid?
|
36
|
+
assert_equal "authorization_num must be supplied", request.errors[:authorization_num]
|
37
|
+
|
38
|
+
request.authorization_num = "TH6754"
|
39
|
+
assert request.valid?
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_by_credit_card
|
43
|
+
request = EWS::Transaction::Request.new(cc_number_params.merge(:transaction_type => :pre_auth_completion))
|
44
|
+
request.amount = 11.25
|
45
|
+
request.authorization_num = send_pre_auth.authorization_num
|
46
|
+
assert request.valid?, request.errors.inspect
|
47
|
+
|
48
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
49
|
+
|
50
|
+
request.authorization_num = send_pre_auth.authorization_num
|
51
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
52
|
+
|
53
|
+
request.authorization_num = send_pre_auth.authorization_num
|
54
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_by_track1
|
58
|
+
request = EWS::Transaction::Request.new(track1_params.merge(:transaction_type => :pre_auth_completion))
|
59
|
+
request.amount = 11.25
|
60
|
+
request.authorization_num = send_pre_auth.authorization_num
|
61
|
+
assert request.valid?, request.errors.inspect
|
62
|
+
|
63
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
64
|
+
|
65
|
+
request.authorization_num = send_pre_auth.authorization_num
|
66
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
67
|
+
|
68
|
+
request.authorization_num = send_pre_auth.authorization_num
|
69
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_by_track2
|
73
|
+
request = EWS::Transaction::Request.new(track2_params.merge(:transaction_type => :pre_auth_completion))
|
74
|
+
request.amount = 11.25
|
75
|
+
request.authorization_num = send_pre_auth.authorization_num
|
76
|
+
assert request.valid?, request.errors.inspect
|
77
|
+
|
78
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
79
|
+
|
80
|
+
request.authorization_num = send_pre_auth.authorization_num
|
81
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
82
|
+
|
83
|
+
request.authorization_num = send_pre_auth.authorization_num
|
84
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
85
|
+
end
|
86
|
+
|
87
|
+
# A PreAuthCompletion requires a PreAuth request to have been sent previously.
|
88
|
+
def send_pre_auth
|
89
|
+
request = EWS::Transaction::Request.new(cc_number_params.merge(:transaction_type => :pre_auth))
|
90
|
+
request.amount = 11.25
|
91
|
+
assert request.valid?, request.errors.inspect
|
92
|
+
|
93
|
+
response = @transporter.submit(request, :json)
|
94
|
+
assert response.approved?
|
95
|
+
|
96
|
+
response
|
97
|
+
end
|
98
|
+
private :send_pre_auth
|
99
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class PreAuthOnlyTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@transporter = EWS::Transporter.new(LOCATION)
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_mandatory
|
10
|
+
request = EWS::Transaction::Request.new(:transaction_type => :pre_auth_only)
|
11
|
+
assert !request.valid?
|
12
|
+
assert_equal "gateway_id must be supplied", request.errors[:gateway_id]
|
13
|
+
|
14
|
+
request.gateway_id = EMERGIS_BASIC_AUTH[:gateway_id]
|
15
|
+
assert !request.valid?
|
16
|
+
assert_equal "password must be supplied", request.errors[:password]
|
17
|
+
|
18
|
+
request.password = EMERGIS_BASIC_AUTH[:password]
|
19
|
+
assert !request.valid?
|
20
|
+
assert_equal "One of the following must be supplied: cc_number, track1, track2 or transaction_tag.", request.errors[:base]
|
21
|
+
|
22
|
+
request.cc_number = "4111111111111111"
|
23
|
+
assert !request.valid?
|
24
|
+
assert_equal "cc_expiry must be supplied", request.errors[:cc_expiry]
|
25
|
+
|
26
|
+
request.cc_expiry = "0913"
|
27
|
+
assert !request.valid?
|
28
|
+
assert_equal "cardholder_name must be supplied", request.errors[:cardholder_name]
|
29
|
+
|
30
|
+
request.cardholder_name = "Simon Jones"
|
31
|
+
assert !request.valid?
|
32
|
+
assert_equal "amount must be supplied", request.errors[:amount]
|
33
|
+
|
34
|
+
request.amount = 10
|
35
|
+
assert request.valid?
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_by_credit_card
|
39
|
+
request = EWS::Transaction::Request.new(cc_number_params.merge(:transaction_type => :pre_auth_only))
|
40
|
+
request.amount = 11.25
|
41
|
+
assert request.valid?, request.errors.inspect
|
42
|
+
|
43
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
44
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
45
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_by_track1
|
49
|
+
request = EWS::Transaction::Request.new(track1_params.merge(:transaction_type => :pre_auth_only))
|
50
|
+
request.amount = 11.25
|
51
|
+
assert request.valid?, request.errors.inspect
|
52
|
+
|
53
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
54
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
55
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_by_track2
|
59
|
+
request = EWS::Transaction::Request.new(track2_params.merge(:transaction_type => :pre_auth_only))
|
60
|
+
request.amount = 11.25
|
61
|
+
assert request.valid?, request.errors.inspect
|
62
|
+
|
63
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
64
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
65
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class PreAuthTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@transporter = EWS::Transporter.new(LOCATION)
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_mandatory
|
10
|
+
request = EWS::Transaction::Request.new(:transaction_type => :pre_auth)
|
11
|
+
assert !request.valid?
|
12
|
+
assert_equal "gateway_id must be supplied", request.errors[:gateway_id]
|
13
|
+
|
14
|
+
request.gateway_id = EMERGIS_BASIC_AUTH[:gateway_id]
|
15
|
+
assert !request.valid?
|
16
|
+
assert_equal "password must be supplied", request.errors[:password]
|
17
|
+
|
18
|
+
request.password = EMERGIS_BASIC_AUTH[:password]
|
19
|
+
assert !request.valid?
|
20
|
+
assert_equal "One of the following must be supplied: cc_number, track1, track2 or transaction_tag.", request.errors[:base]
|
21
|
+
|
22
|
+
request.cc_number = "4111111111111111"
|
23
|
+
assert !request.valid?
|
24
|
+
assert_equal "cc_expiry must be supplied", request.errors[:cc_expiry]
|
25
|
+
|
26
|
+
request.cc_expiry = "0913"
|
27
|
+
assert !request.valid?
|
28
|
+
assert_equal "cardholder_name must be supplied", request.errors[:cardholder_name]
|
29
|
+
|
30
|
+
request.cardholder_name = "Simon Jones"
|
31
|
+
assert !request.valid?
|
32
|
+
assert_equal "amount must be supplied", request.errors[:amount]
|
33
|
+
|
34
|
+
request.amount = 10
|
35
|
+
assert request.valid?
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_by_credit_card
|
39
|
+
request = EWS::Transaction::Request.new(cc_number_params.merge(:transaction_type => :pre_auth))
|
40
|
+
request.amount = 11.25
|
41
|
+
assert request.valid?, request.errors.inspect
|
42
|
+
|
43
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
44
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
45
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_by_track1
|
49
|
+
request = EWS::Transaction::Request.new(track1_params.merge(:transaction_type => :pre_auth))
|
50
|
+
request.amount = 11.25
|
51
|
+
assert request.valid?, request.errors.inspect
|
52
|
+
|
53
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
54
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
55
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_by_track2
|
59
|
+
request = EWS::Transaction::Request.new(track2_params.merge(:transaction_type => :pre_auth))
|
60
|
+
request.amount = 11.25
|
61
|
+
assert request.valid?, request.errors.inspect
|
62
|
+
|
63
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
64
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
65
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class PurchaseCorrectionTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
# NOTE: ONLY supported bu Moneris processors
|
6
|
+
# This is used to VOID a previous Purchase transaction. However, we strongly recommend
|
7
|
+
# using a normal Void transaction instead of a Purchase Correction.
|
8
|
+
|
9
|
+
def setup
|
10
|
+
@transporter = EWS::Transporter.new(LOCATION)
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_mandatory
|
14
|
+
request = EWS::Transaction::Request.new(:transaction_type => :purchase_correction)
|
15
|
+
assert !request.valid?
|
16
|
+
assert_equal "gateway_id must be supplied", request.errors[:gateway_id]
|
17
|
+
|
18
|
+
request.gateway_id = MONERIS_BASIC_AUTH[:gateway_id]
|
19
|
+
assert !request.valid?
|
20
|
+
assert_equal "password must be supplied", request.errors[:password]
|
21
|
+
|
22
|
+
request.password = MONERIS_BASIC_AUTH[:password]
|
23
|
+
assert !request.valid?
|
24
|
+
assert_equal "One of the following must be supplied: cc_number, track1, track2 or transaction_tag.", request.errors[:base]
|
25
|
+
|
26
|
+
request.cc_number = "4111111111111111"
|
27
|
+
assert !request.valid?
|
28
|
+
assert_equal "cc_expiry must be supplied", request.errors[:cc_expiry]
|
29
|
+
|
30
|
+
request.cc_expiry = "0913"
|
31
|
+
assert !request.valid?
|
32
|
+
assert_equal "cardholder_name must be supplied", request.errors[:cardholder_name]
|
33
|
+
|
34
|
+
request.cardholder_name = "Simon Jones"
|
35
|
+
assert !request.valid?
|
36
|
+
assert_equal "amount must be supplied", request.errors[:amount]
|
37
|
+
|
38
|
+
request.amount = 10
|
39
|
+
assert !request.valid?
|
40
|
+
assert_equal "authorization_num must be supplied", request.errors[:authorization_num]
|
41
|
+
|
42
|
+
request.authorization_num = "TH6754"
|
43
|
+
assert request.valid?
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_by_credit_card
|
47
|
+
request = EWS::Transaction::Request.new(cc_number_params.merge(:transaction_type => :purchase_correction).merge(MONERIS_BASIC_AUTH))
|
48
|
+
request.amount = 11.25
|
49
|
+
request.authorization_num = "1234"
|
50
|
+
assert request.valid?, request.errors.inspect
|
51
|
+
|
52
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
53
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
54
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_by_track1
|
58
|
+
request = EWS::Transaction::Request.new(track1_params.merge(:transaction_type => :purchase_correction).merge(MONERIS_BASIC_AUTH))
|
59
|
+
request.amount = 11.25
|
60
|
+
request.authorization_num = "1234"
|
61
|
+
assert request.valid?, request.errors.inspect
|
62
|
+
|
63
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
64
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
65
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_by_track2
|
69
|
+
request = EWS::Transaction::Request.new(track2_params.merge(:transaction_type => :purchase_correction).merge(MONERIS_BASIC_AUTH))
|
70
|
+
request.amount = 11.25
|
71
|
+
request.authorization_num = "1234"
|
72
|
+
assert request.valid?, request.errors.inspect
|
73
|
+
|
74
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
75
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
76
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class PurchaseTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@transporter = EWS::Transporter.new(LOCATION)
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_mandatory
|
10
|
+
request = EWS::Transaction::Request.new(:transaction_type => :purchase)
|
11
|
+
assert !request.valid?
|
12
|
+
assert_equal "gateway_id must be supplied", request.errors[:gateway_id]
|
13
|
+
|
14
|
+
request.gateway_id = EMERGIS_BASIC_AUTH[:gateway_id]
|
15
|
+
assert !request.valid?
|
16
|
+
assert_equal "password must be supplied", request.errors[:password]
|
17
|
+
|
18
|
+
request.password = EMERGIS_BASIC_AUTH[:password]
|
19
|
+
assert !request.valid?
|
20
|
+
assert_equal "One of the following must be supplied: cc_number, track1, track2 or transaction_tag.", request.errors[:base]
|
21
|
+
|
22
|
+
request.cc_number = "4111111111111111"
|
23
|
+
assert !request.valid?
|
24
|
+
assert_equal "cc_expiry must be supplied", request.errors[:cc_expiry]
|
25
|
+
|
26
|
+
request.cc_expiry = "0913"
|
27
|
+
assert !request.valid?
|
28
|
+
assert_equal "cardholder_name must be supplied", request.errors[:cardholder_name]
|
29
|
+
|
30
|
+
request.cardholder_name = "Simon Jones"
|
31
|
+
assert !request.valid?
|
32
|
+
assert_equal "amount must be supplied", request.errors[:amount]
|
33
|
+
|
34
|
+
request.amount = 10
|
35
|
+
assert request.valid?
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_by_credit_card
|
39
|
+
request = EWS::Transaction::Request.new(cc_number_params.merge(:transaction_type => :purchase))
|
40
|
+
request.amount = 11.25
|
41
|
+
assert request.valid?, request.errors.inspect
|
42
|
+
|
43
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
44
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
45
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_by_track1
|
49
|
+
request = EWS::Transaction::Request.new(track1_params.merge(:transaction_type => :purchase))
|
50
|
+
request.amount = 11.25
|
51
|
+
assert request.valid?, request.errors.inspect
|
52
|
+
|
53
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
54
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
55
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_by_track2
|
59
|
+
request = EWS::Transaction::Request.new(track2_params.merge(:transaction_type => :purchase))
|
60
|
+
request.amount = 11.25
|
61
|
+
assert request.valid?, request.errors.inspect
|
62
|
+
|
63
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
64
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
65
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class RecurrringSeedPreAuthTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@transporter = EWS::Transporter.new(LOCATION)
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_mandatory
|
10
|
+
request = EWS::Transaction::Request.new(:transaction_type => :recurring_seed_pre_auth)
|
11
|
+
assert !request.valid?
|
12
|
+
assert_equal "gateway_id must be supplied", request.errors[:gateway_id]
|
13
|
+
|
14
|
+
request.gateway_id = EMERGIS_BASIC_AUTH[:gateway_id]
|
15
|
+
assert !request.valid?
|
16
|
+
assert_equal "password must be supplied", request.errors[:password]
|
17
|
+
|
18
|
+
request.password = EMERGIS_BASIC_AUTH[:password]
|
19
|
+
assert !request.valid?
|
20
|
+
assert_equal "One of the following must be supplied: cc_number, track1, track2 or transaction_tag.", request.errors[:base]
|
21
|
+
|
22
|
+
request.cc_number = "4111111111111111"
|
23
|
+
assert !request.valid?
|
24
|
+
assert_equal "cc_expiry must be supplied", request.errors[:cc_expiry]
|
25
|
+
|
26
|
+
request.cc_expiry = "0913"
|
27
|
+
assert !request.valid?
|
28
|
+
assert_equal "cardholder_name must be supplied", request.errors[:cardholder_name]
|
29
|
+
|
30
|
+
request.cardholder_name = "Simon Jones"
|
31
|
+
assert !request.valid?
|
32
|
+
assert_equal "amount must be supplied", request.errors[:amount]
|
33
|
+
|
34
|
+
request.amount = 10
|
35
|
+
assert request.valid?
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_by_credit_card
|
39
|
+
request = EWS::Transaction::Request.new(cc_number_params.merge(:transaction_type => :recurring_seed_pre_auth))
|
40
|
+
request.amount = 11.25
|
41
|
+
assert request.valid?, request.errors.inspect
|
42
|
+
|
43
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
44
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
45
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_by_track1
|
49
|
+
request = EWS::Transaction::Request.new(track1_params.merge(:transaction_type => :recurring_seed_pre_auth))
|
50
|
+
request.amount = 11.25
|
51
|
+
assert request.valid?, request.errors.inspect
|
52
|
+
|
53
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
54
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
55
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_by_track2
|
59
|
+
request = EWS::Transaction::Request.new(track2_params.merge(:transaction_type => :recurring_seed_pre_auth))
|
60
|
+
request.amount = 11.25
|
61
|
+
assert request.valid?, request.errors.inspect
|
62
|
+
|
63
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
64
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
65
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class RecurringSeedPurchaseTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@transporter = EWS::Transporter.new(LOCATION)
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_mandatory
|
10
|
+
request = EWS::Transaction::Request.new(:transaction_type => :recurring_seed_purchase)
|
11
|
+
assert !request.valid?
|
12
|
+
assert_equal "gateway_id must be supplied", request.errors[:gateway_id]
|
13
|
+
|
14
|
+
request.gateway_id = EMERGIS_BASIC_AUTH[:gateway_id]
|
15
|
+
assert !request.valid?
|
16
|
+
assert_equal "password must be supplied", request.errors[:password]
|
17
|
+
|
18
|
+
request.password = EMERGIS_BASIC_AUTH[:password]
|
19
|
+
assert !request.valid?
|
20
|
+
assert_equal "One of the following must be supplied: cc_number, track1, track2 or transaction_tag.", request.errors[:base]
|
21
|
+
|
22
|
+
request.cc_number = "4111111111111111"
|
23
|
+
assert !request.valid?
|
24
|
+
assert_equal "cc_expiry must be supplied", request.errors[:cc_expiry]
|
25
|
+
|
26
|
+
request.cc_expiry = "0913"
|
27
|
+
assert !request.valid?
|
28
|
+
assert_equal "cardholder_name must be supplied", request.errors[:cardholder_name]
|
29
|
+
|
30
|
+
request.cardholder_name = "Simon Jones"
|
31
|
+
assert !request.valid?
|
32
|
+
assert_equal "amount must be supplied", request.errors[:amount]
|
33
|
+
|
34
|
+
request.amount = 10
|
35
|
+
assert request.valid?
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_by_credit_card
|
39
|
+
request = EWS::Transaction::Request.new(cc_number_params.merge(:transaction_type => :recurring_seed_purchase))
|
40
|
+
request.amount = 11.25
|
41
|
+
assert request.valid?, request.errors.inspect
|
42
|
+
|
43
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
44
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
45
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_by_track1
|
49
|
+
request = EWS::Transaction::Request.new(track1_params.merge(:transaction_type => :recurring_seed_purchase))
|
50
|
+
request.amount = 11.25
|
51
|
+
assert request.valid?, request.errors.inspect
|
52
|
+
|
53
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
54
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
55
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_by_track2
|
59
|
+
request = EWS::Transaction::Request.new(track2_params.merge(:transaction_type => :recurring_seed_purchase))
|
60
|
+
request.amount = 11.25
|
61
|
+
assert request.valid?, request.errors.inspect
|
62
|
+
|
63
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
64
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
65
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class RefundCorrectionTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
# NOTE: ONLY supported by Moneris processors
|
6
|
+
# This is used to VOID a previous Refund transaction. However, we strongly recommend
|
7
|
+
# using a normal Void transaction instead of a Refund Correction.
|
8
|
+
|
9
|
+
def setup
|
10
|
+
@transporter = EWS::Transporter.new(LOCATION)
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_mandatory
|
14
|
+
request = EWS::Transaction::Request.new(:transaction_type => :refund_correction)
|
15
|
+
assert !request.valid?
|
16
|
+
assert_equal "gateway_id must be supplied", request.errors[:gateway_id]
|
17
|
+
|
18
|
+
request.gateway_id = MONERIS_BASIC_AUTH[:gateway_id]
|
19
|
+
assert !request.valid?
|
20
|
+
assert_equal "password must be supplied", request.errors[:password]
|
21
|
+
|
22
|
+
request.password = MONERIS_BASIC_AUTH[:password]
|
23
|
+
assert !request.valid?
|
24
|
+
assert_equal "One of the following must be supplied: cc_number, track1, track2 or transaction_tag.", request.errors[:base]
|
25
|
+
|
26
|
+
request.cc_number = "4111111111111111"
|
27
|
+
assert !request.valid?
|
28
|
+
assert_equal "cc_expiry must be supplied", request.errors[:cc_expiry]
|
29
|
+
|
30
|
+
request.cc_expiry = "0913"
|
31
|
+
assert !request.valid?
|
32
|
+
assert_equal "cardholder_name must be supplied", request.errors[:cardholder_name]
|
33
|
+
|
34
|
+
request.cardholder_name = "Simon Jones"
|
35
|
+
assert !request.valid?
|
36
|
+
assert_equal "amount must be supplied", request.errors[:amount]
|
37
|
+
|
38
|
+
request.amount = 10
|
39
|
+
assert !request.valid?
|
40
|
+
assert_equal "authorization_num must be supplied", request.errors[:authorization_num]
|
41
|
+
|
42
|
+
request.authorization_num = "TH6754"
|
43
|
+
assert request.valid?
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_by_credit_card
|
47
|
+
request = EWS::Transaction::Request.new(cc_number_params.merge(:transaction_type => :refund_correction).merge(MONERIS_BASIC_AUTH))
|
48
|
+
request.amount = 11.25
|
49
|
+
request.authorization_num = "1234"
|
50
|
+
assert request.valid?, request.errors.inspect
|
51
|
+
|
52
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
53
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
54
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_by_track1
|
58
|
+
request = EWS::Transaction::Request.new(track1_params.merge(:transaction_type => :refund_correction).merge(MONERIS_BASIC_AUTH))
|
59
|
+
request.amount = 11.25
|
60
|
+
request.authorization_num = "1234"
|
61
|
+
assert request.valid?, request.errors.inspect
|
62
|
+
|
63
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
64
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
65
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_by_track2
|
69
|
+
request = EWS::Transaction::Request.new(track2_params.merge(:transaction_type => :refund_correction).merge(MONERIS_BASIC_AUTH))
|
70
|
+
request.amount = 11.25
|
71
|
+
request.authorization_num = "1234"
|
72
|
+
assert request.valid?, request.errors.inspect
|
73
|
+
|
74
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
75
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
76
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class RefundTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@transporter = EWS::Transporter.new(LOCATION)
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_mandatory
|
10
|
+
request = EWS::Transaction::Request.new(:transaction_type => :refund)
|
11
|
+
assert !request.valid?
|
12
|
+
assert_equal "gateway_id must be supplied", request.errors[:gateway_id]
|
13
|
+
|
14
|
+
request.gateway_id = EMERGIS_BASIC_AUTH[:gateway_id]
|
15
|
+
assert !request.valid?
|
16
|
+
assert_equal "password must be supplied", request.errors[:password]
|
17
|
+
|
18
|
+
request.password = EMERGIS_BASIC_AUTH[:password]
|
19
|
+
assert !request.valid?
|
20
|
+
assert_equal "One of the following must be supplied: cc_number, track1, track2 or transaction_tag.", request.errors[:base]
|
21
|
+
|
22
|
+
request.cc_number = "4111111111111111"
|
23
|
+
assert !request.valid?
|
24
|
+
assert_equal "cc_expiry must be supplied", request.errors[:cc_expiry]
|
25
|
+
|
26
|
+
request.cc_expiry = "0913"
|
27
|
+
assert !request.valid?
|
28
|
+
assert_equal "cardholder_name must be supplied", request.errors[:cardholder_name]
|
29
|
+
|
30
|
+
request.cardholder_name = "Simon Jones"
|
31
|
+
assert !request.valid?
|
32
|
+
assert_equal "amount must be supplied", request.errors[:amount]
|
33
|
+
|
34
|
+
request.amount = 10
|
35
|
+
assert request.valid?
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_by_credit_card
|
39
|
+
request = EWS::Transaction::Request.new(cc_number_params.merge(:transaction_type => :refund))
|
40
|
+
request.amount = 11.25
|
41
|
+
assert request.valid?, request.errors.inspect
|
42
|
+
|
43
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
44
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
45
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_by_track1
|
49
|
+
request = EWS::Transaction::Request.new(track1_params.merge(:transaction_type => :refund))
|
50
|
+
request.amount = 11.25
|
51
|
+
assert request.valid?, request.errors.inspect
|
52
|
+
|
53
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
54
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
55
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_by_track2
|
59
|
+
request = EWS::Transaction::Request.new(track2_params.merge(:transaction_type => :refund))
|
60
|
+
request.amount = 11.25
|
61
|
+
assert request.valid?, request.errors.inspect
|
62
|
+
|
63
|
+
assert_details_correct request, @transporter.submit(request, :json)
|
64
|
+
assert_details_correct request, @transporter.submit(request, :rest)
|
65
|
+
assert_details_correct request, @transporter.submit(request, :soap)
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|