exact4r 0.9.1 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +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
|