exact4r 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. data/CHANGELOG +6 -1
  2. data/README +71 -3
  3. data/Rakefile +8 -7
  4. data/VERSION +1 -1
  5. data/doc/classes/EWS/Transaction/FakeResponse.html +451 -0
  6. data/doc/classes/EWS/Transaction/Request.html +61 -80
  7. data/doc/classes/EWS/Transaction/Response.html +206 -14
  8. data/doc/classes/EWS/Transaction/Validator.html +182 -0
  9. data/doc/classes/EWS/Transporter.html +269 -0
  10. data/doc/classes/REXML/Document.html +176 -0
  11. data/doc/classes/REXML/Entity.html +150 -0
  12. data/doc/classes/REXML.html +112 -0
  13. data/doc/created.rid +1 -1
  14. data/doc/files/CHANGELOG.html +156 -0
  15. data/doc/files/LICENCE.html +109 -0
  16. data/doc/files/README.html +164 -23
  17. data/doc/files/VERSION.html +107 -0
  18. data/doc/files/lib/ews/transaction/fake_response_rb.html +101 -0
  19. data/doc/files/lib/ews/transaction/mapping_rb.html +1 -1
  20. data/doc/files/lib/ews/transaction/request_rb.html +8 -1
  21. data/doc/files/lib/ews/transaction/response_rb.html +1 -1
  22. data/doc/files/lib/ews/transaction/validator_rb.html +101 -0
  23. data/doc/files/lib/ews/{transaction/transporter_rb.html → transporter_rb.html} +3 -3
  24. data/doc/files/lib/exact4r_rb.html +6 -2
  25. data/doc/fr_class_index.html +6 -1
  26. data/doc/fr_file_index.html +6 -1
  27. data/doc/fr_method_index.html +22 -7
  28. data/lib/ews/transaction/mapping.rb +41 -40
  29. data/lib/ews/transaction/request.rb +3 -4
  30. data/lib/ews/transaction/response.rb +5 -0
  31. data/lib/ews/transaction/validator.rb +44 -34
  32. data/lib/ews/transporter.rb +3 -3
  33. data/lib/exact4r.rb +1 -1
  34. data/test/exhaustive/forced_post_test.rb +75 -0
  35. data/test/exhaustive/online_debit_purchase_test.rb +66 -0
  36. data/test/exhaustive/online_debit_refund_test.rb +66 -0
  37. data/test/exhaustive/pre_auth_completion_test.rb +99 -0
  38. data/test/exhaustive/pre_auth_only_test.rb +68 -0
  39. data/test/exhaustive/pre_auth_test.rb +68 -0
  40. data/test/exhaustive/purchase_correction_test.rb +79 -0
  41. data/test/exhaustive/purchase_test.rb +68 -0
  42. data/test/exhaustive/recurring_seed_pre_auth_test.rb +68 -0
  43. data/test/exhaustive/recurring_seed_purchase_test.rb +68 -0
  44. data/test/exhaustive/refund_correction_test.rb +79 -0
  45. data/test/exhaustive/refund_test.rb +68 -0
  46. data/test/exhaustive/secure_storage_test.rb +75 -0
  47. data/test/exhaustive/tagged_online_debit_refund_test.rb +168 -0
  48. data/test/exhaustive/tagged_pre_auth_completion_test.rb +119 -0
  49. data/test/exhaustive/tagged_pre_auth_test.rb +116 -0
  50. data/test/exhaustive/tagged_purchase_test.rb +116 -0
  51. data/test/exhaustive/tagged_refund_test.rb +144 -0
  52. data/test/exhaustive/transaction_details_test.rb +86 -0
  53. data/test/exhaustive/void_test.rb +75 -0
  54. data/{spec/avs_spec.rb → test/general/avs_test.rb} +33 -44
  55. data/test/general/json_encoding_test.rb +62 -0
  56. data/test/general/request_test.rb +185 -0
  57. data/test/general/rest_encoding_test.rb +174 -0
  58. data/test/general/soap_encoding_test.rb +211 -0
  59. data/test/general/transporter_test.rb +54 -0
  60. data/test/general/validator_test.rb +150 -0
  61. data/test/samples/rest.dodgy.response.xml +60 -0
  62. data/test/samples/rest.everything.response.xml +67 -0
  63. data/test/samples/rest.response.xml +60 -0
  64. data/test/samples/soap.deserialization.fault.xml +10 -0
  65. data/test/samples/soap.dodgy.response.xml +95 -0
  66. data/test/samples/soap.everything.response.xml +75 -0
  67. data/test/samples/soap.generalfailure.fault.xml +13 -0
  68. data/test/samples/soap.nulltransaction.fault.xml +14 -0
  69. data/test/samples/soap.response.xml +95 -0
  70. data/test/test_helper.rb +115 -0
  71. metadata +52 -12
  72. data/doc/classes/EWS/Transaction/Transporter.html +0 -251
  73. data/pkg/exact4r-0.5.gem +0 -0
  74. data/spec/mapping_spec.rb +0 -126
  75. data/spec/request_spec.rb +0 -154
  76. data/spec/spec_helper.rb +0 -55
  77. data/spec/transporter_spec.rb +0 -43
  78. 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