hps 2.3.2 → 2.4.0

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.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -4
  3. data/Gemfile.lock +59 -0
  4. data/LICENSE.md +264 -264
  5. data/PRIVACY.txt +65 -65
  6. data/README.md +213 -213
  7. data/Rakefile +15 -15
  8. data/examples/sinatra-verify-only/Gemfile +4 -4
  9. data/examples/sinatra-verify-only/app.rb +32 -32
  10. data/examples/sinatra-verify-only/views/index.erb +478 -478
  11. data/examples/sinatra-verify-only/views/result.erb +39 -39
  12. data/hps.gemspec +28 -27
  13. data/lib/hps/configuration.rb +17 -17
  14. data/lib/hps/entities/hps_account_verify.rb +8 -8
  15. data/lib/hps/entities/hps_address.rb +6 -6
  16. data/lib/hps/entities/hps_authorization.rb +12 -12
  17. data/lib/hps/entities/hps_batch.rb +6 -6
  18. data/lib/hps/entities/hps_cardholder.rb +6 -6
  19. data/lib/hps/entities/hps_charge.rb +8 -8
  20. data/lib/hps/entities/hps_charge_exceptions.rb +6 -6
  21. data/lib/hps/entities/hps_check.rb +18 -18
  22. data/lib/hps/entities/hps_check_holder.rb +10 -10
  23. data/lib/hps/entities/hps_check_response.rb +45 -45
  24. data/lib/hps/entities/hps_check_response_details.rb +9 -9
  25. data/lib/hps/entities/hps_credit_card.rb +34 -34
  26. data/lib/hps/entities/hps_direct_market_data.rb +5 -5
  27. data/lib/hps/entities/hps_encryption_data.rb +6 -6
  28. data/lib/hps/entities/hps_gift_card.rb +133 -133
  29. data/lib/hps/entities/hps_manage_tokens.rb +8 -8
  30. data/lib/hps/entities/hps_refund.rb +8 -8
  31. data/lib/hps/entities/hps_report_transaction_details.rb +10 -10
  32. data/lib/hps/entities/hps_report_transaction_summary.rb +6 -6
  33. data/lib/hps/entities/hps_reversal.rb +10 -10
  34. data/lib/hps/entities/hps_token_data.rb +10 -10
  35. data/lib/hps/entities/hps_track_data.rb +5 -5
  36. data/lib/hps/entities/hps_transaction.rb +161 -161
  37. data/lib/hps/entities/hps_transaction_details.rb +6 -6
  38. data/lib/hps/entities/hps_transaction_header.rb +8 -8
  39. data/lib/hps/entities/hps_transaction_type.rb +16 -16
  40. data/lib/hps/entities/hps_void.rb +8 -8
  41. data/lib/hps/infrastructure/api_connection_exception.rb +11 -11
  42. data/lib/hps/infrastructure/authentication_exception.rb +11 -11
  43. data/lib/hps/infrastructure/card_exception.rb +15 -15
  44. data/lib/hps/infrastructure/exceptions.json +547 -547
  45. data/lib/hps/infrastructure/hps_account_type.rb +11 -11
  46. data/lib/hps/infrastructure/hps_check_exception.rb +13 -13
  47. data/lib/hps/infrastructure/hps_check_type.rb +11 -11
  48. data/lib/hps/infrastructure/hps_data_entry_mode.rb +11 -11
  49. data/lib/hps/infrastructure/hps_exception.rb +25 -25
  50. data/lib/hps/infrastructure/hps_exception_mapper.rb +145 -145
  51. data/lib/hps/infrastructure/hps_gateway_response_validation.rb +20 -20
  52. data/lib/hps/infrastructure/hps_input_validation.rb +13 -13
  53. data/lib/hps/infrastructure/hps_sdk_codes.rb +48 -48
  54. data/lib/hps/infrastructure/hps_sec_code.rb +27 -27
  55. data/lib/hps/infrastructure/hps_track_data_method.rb +6 -6
  56. data/lib/hps/infrastructure/invalid_request_exception.rb +15 -15
  57. data/lib/hps/services/hps_batch_service.rb +29 -29
  58. data/lib/hps/services/hps_charge_service.rb +773 -773
  59. data/lib/hps/services/hps_check_service.rb +110 -110
  60. data/lib/hps/services/hps_gift_card_service.rb +301 -301
  61. data/lib/hps/services/hps_service.rb +141 -136
  62. data/lib/hps/version.rb +3 -3
  63. data/lib/hps.rb +63 -63
  64. data/tests/amex_tests.rb +292 -292
  65. data/tests/cert_tests.rb +80 -80
  66. data/tests/certification/card_present_spec.rb +320 -320
  67. data/tests/certification/gift_card_certification_test.rb +106 -106
  68. data/tests/certification/gift_card_certification_tests.rb +107 -107
  69. data/tests/check_tests.rb +50 -50
  70. data/tests/discover_tests.rb +386 -386
  71. data/tests/exception_mapper_tests.rb +311 -311
  72. data/tests/general_tests.rb +140 -140
  73. data/tests/giftcard_tests.rb +212 -212
  74. data/tests/hps_token_service.rb +56 -56
  75. data/tests/mastercard_tests.rb +387 -387
  76. data/tests/secret_key.rb +11 -11
  77. data/tests/test_check.rb +77 -77
  78. data/tests/test_data.rb +138 -138
  79. data/tests/test_helper.rb +179 -179
  80. data/tests/token_tests.rb +512 -512
  81. data/tests/visa_tests.rb +445 -445
  82. metadata +31 -11
@@ -1,141 +1,141 @@
1
- require File.join( File.dirname(__FILE__), "test_helper.rb" )
2
-
3
- describe "General Tests" do
4
-
5
- before(:each) do
6
- Hps::TestHelper.configure_hps_module()
7
- @service = Hps::HpsChargeService.new()
8
- end
9
-
10
- it "SecretAPIKey with spaces on Visa charge should return OK" do
11
- Hps::TestHelper.configure_hps_module_secret_key_with_spaces
12
- @service = Hps::HpsChargeService.new()
13
- result = @service.charge(5, "usd", Hps::TestData::valid_visa, Hps::TestData::valid_cardholder)
14
- expect(result.response_code).to eql("00")
15
- end
16
-
17
-
18
- it "charge when amount is less than zero should throw invalid request exception" do
19
- expect {
20
- @service.charge(-5, "usd", Hps::TestData::valid_visa, Hps::TestData::valid_cardholder)
21
- }.to raise_error(Hps::InvalidRequestException)
22
- end
23
-
24
- it "charge when currency is empty should throw invalid request exception" do
25
- expect {
26
- @service.charge(50, "", Hps::TestData::valid_visa, Hps::TestData::valid_cardholder)
27
- }.to raise_error(Hps::InvalidRequestException)
28
- end
29
-
30
- it "charge when currency is not usd should throw invalid request exception" do
31
- expect {
32
- @service.charge(50, "eur", Hps::TestData::valid_visa, Hps::TestData::valid_cardholder)
33
- }.to raise_error(Hps::InvalidRequestException)
34
- end
35
-
36
- it "charge when configuration is invalid should throw hps exception" do
37
- expect {
38
- @service = Hps::HpsChargeService.new :service_uri => nil
39
- @service.charge(50, "usd", Hps::TestData::valid_visa, Hps::TestData::valid_cardholder)
40
- }.to raise_error(Hps::HpsException)
41
- end
42
-
43
- it "charge when license_id is invalid should throw authentication exception" do
44
- expect {
45
- @service = Hps::HpsChargeService.new :license_id => 11111
46
- @service.charge(50, "usd", Hps::TestData::valid_visa, Hps::TestData::valid_cardholder)
47
- }.to raise_error(Hps::AuthenticationException)
48
- end
49
-
50
- it "charge when card number is invalid should throw hps exception" do
51
- expect {
52
- @service.charge(50, "usd", Hps::TestData::invalid_card, Hps::TestData::valid_cardholder)
53
- }.to raise_error(Hps::HpsException)
54
- end
55
-
56
- it "list when charge is in filter range should show in list" do
57
- start_date = DateTime.now - 12.hours
58
- charge = @service.charge(50, "usd", Hps::TestData::valid_visa, Hps::TestData::valid_cardholder)
59
- end_date = DateTime.now
60
-
61
- charges = @service.list(start_date, end_date)
62
- expect(charges).to have_at_least(1).items
63
- expect(charges.any? { |c| c.transaction_id = charge.transaction_id }).to be_true
64
- end
65
-
66
- it "updates multi-use token" do
67
- Hps::TestHelper.valid_multi_use_config
68
- service = Hps::HpsChargeService.new()
69
- verify = service.verify(Hps::TestData::valid_visa, Hps::TestData.valid_cardholder, true)
70
- expect(verify).not_to be_nil
71
- expect(verify.response_code).to eql("85")
72
- expect(verify.token_data).not_to be_nil
73
- expect(verify.token_data.token_value).not_to be_nil
74
- expect(verify.token_data.token_value).not_to be_empty
75
-
76
- month = Time.now.strftime('%m')
77
- year = (Time.now + 2.years).strftime('%Y')
78
- result = service.update_token_expiration(verify.token_data.token_value, month, year)
79
- expect(result).not_to be_nil
80
- expect(result.response_code).to eql("00")
81
- end
82
-
83
- it "fails to update multi-use token with bad year" do
84
- Hps::TestHelper.valid_multi_use_config
85
- service = Hps::HpsChargeService.new()
86
- verify = service.verify(Hps::TestData::valid_visa, Hps::TestData.valid_cardholder, true)
87
- expect(verify).not_to be_nil
88
- expect(verify.response_code).to eql("85")
89
- expect(verify.token_data).not_to be_nil
90
- expect(verify.token_data.token_value).not_to be_nil
91
- expect(verify.token_data.token_value).not_to be_empty
92
-
93
- month = nil
94
- year = 19
95
-
96
- expect {
97
- service.update_token_expiration(verify.token_data.token_value, month, year)
98
- }.to raise_error(TypeError)
99
- end
100
-
101
- it "fails to update multi-use token with nil date" do
102
- Hps::TestHelper.valid_multi_use_config
103
- service = Hps::HpsChargeService.new()
104
- verify = service.verify(Hps::TestData::valid_visa, Hps::TestData.valid_cardholder, true)
105
- expect(verify).not_to be_nil
106
- expect(verify.response_code).to eql("85")
107
- expect(verify.token_data).not_to be_nil
108
- expect(verify.token_data.token_value).not_to be_nil
109
- expect(verify.token_data.token_value).not_to be_empty
110
-
111
- month = nil
112
- year = nil
113
-
114
- expect {
115
- service.update_token_expiration(verify.token_data.token_value, month, year)
116
- }.to raise_error(TypeError)
117
- end
118
-
119
- it "fails to update multi-use token with invalid token" do
120
- Hps::TestHelper.valid_multi_use_config
121
- service = Hps::HpsChargeService.new()
122
- month = Time.now.strftime('%m')
123
- year = (Time.now + 2.years).strftime('%Y')
124
-
125
- expect {
126
- service.update_token_expiration("abcdefg", month, year)
127
- }.to raise_error(Hps::HpsException)
128
- end
129
-
130
- it "fails to update multi-use token with nil token" do
131
- Hps::TestHelper.valid_multi_use_config
132
- service = Hps::HpsChargeService.new()
133
- month = Time.now.strftime('%m')
134
- year = (Time.now + 2.years).strftime('%Y')
135
-
136
- expect {
137
- service.update_token_expiration(nil, month, year)
138
- }.to raise_error(Hps::HpsException)
139
- end
140
-
1
+ require File.join( File.dirname(__FILE__), "test_helper.rb" )
2
+
3
+ describe "General Tests" do
4
+
5
+ before(:each) do
6
+ Hps::TestHelper.configure_hps_module()
7
+ @service = Hps::HpsChargeService.new()
8
+ end
9
+
10
+ it "SecretAPIKey with spaces on Visa charge should return OK" do
11
+ Hps::TestHelper.configure_hps_module_secret_key_with_spaces
12
+ @service = Hps::HpsChargeService.new()
13
+ result = @service.charge(5, "usd", Hps::TestData::valid_visa, Hps::TestData::valid_cardholder)
14
+ expect(result.response_code).to eql("00")
15
+ end
16
+
17
+
18
+ it "charge when amount is less than zero should throw invalid request exception" do
19
+ expect {
20
+ @service.charge(-5, "usd", Hps::TestData::valid_visa, Hps::TestData::valid_cardholder)
21
+ }.to raise_error(Hps::InvalidRequestException)
22
+ end
23
+
24
+ it "charge when currency is empty should throw invalid request exception" do
25
+ expect {
26
+ @service.charge(50, "", Hps::TestData::valid_visa, Hps::TestData::valid_cardholder)
27
+ }.to raise_error(Hps::InvalidRequestException)
28
+ end
29
+
30
+ it "charge when currency is not usd should throw invalid request exception" do
31
+ expect {
32
+ @service.charge(50, "eur", Hps::TestData::valid_visa, Hps::TestData::valid_cardholder)
33
+ }.to raise_error(Hps::InvalidRequestException)
34
+ end
35
+
36
+ it "charge when configuration is invalid should throw hps exception" do
37
+ expect {
38
+ @service = Hps::HpsChargeService.new :service_uri => nil
39
+ @service.charge(50, "usd", Hps::TestData::valid_visa, Hps::TestData::valid_cardholder)
40
+ }.to raise_error(Hps::HpsException)
41
+ end
42
+
43
+ it "charge when license_id is invalid should throw authentication exception" do
44
+ expect {
45
+ @service = Hps::HpsChargeService.new :license_id => 11111
46
+ @service.charge(50, "usd", Hps::TestData::valid_visa, Hps::TestData::valid_cardholder)
47
+ }.to raise_error(Hps::AuthenticationException)
48
+ end
49
+
50
+ it "charge when card number is invalid should throw hps exception" do
51
+ expect {
52
+ @service.charge(50, "usd", Hps::TestData::invalid_card, Hps::TestData::valid_cardholder)
53
+ }.to raise_error(Hps::HpsException)
54
+ end
55
+
56
+ it "list when charge is in filter range should show in list" do
57
+ start_date = DateTime.now - 12.hours
58
+ charge = @service.charge(50, "usd", Hps::TestData::valid_visa, Hps::TestData::valid_cardholder)
59
+ end_date = DateTime.now
60
+
61
+ charges = @service.list(start_date, end_date)
62
+ expect(charges).to have_at_least(1).items
63
+ expect(charges.any? { |c| c.transaction_id = charge.transaction_id }).to be_true
64
+ end
65
+
66
+ it "updates multi-use token" do
67
+ Hps::TestHelper.valid_multi_use_config
68
+ service = Hps::HpsChargeService.new()
69
+ verify = service.verify(Hps::TestData::valid_visa, Hps::TestData.valid_cardholder, true)
70
+ expect(verify).not_to be_nil
71
+ expect(verify.response_code).to eql("85")
72
+ expect(verify.token_data).not_to be_nil
73
+ expect(verify.token_data.token_value).not_to be_nil
74
+ expect(verify.token_data.token_value).not_to be_empty
75
+
76
+ month = Time.now.strftime('%m')
77
+ year = (Time.now + 2.years).strftime('%Y')
78
+ result = service.update_token_expiration(verify.token_data.token_value, month, year)
79
+ expect(result).not_to be_nil
80
+ expect(result.response_code).to eql("00")
81
+ end
82
+
83
+ it "fails to update multi-use token with bad year" do
84
+ Hps::TestHelper.valid_multi_use_config
85
+ service = Hps::HpsChargeService.new()
86
+ verify = service.verify(Hps::TestData::valid_visa, Hps::TestData.valid_cardholder, true)
87
+ expect(verify).not_to be_nil
88
+ expect(verify.response_code).to eql("85")
89
+ expect(verify.token_data).not_to be_nil
90
+ expect(verify.token_data.token_value).not_to be_nil
91
+ expect(verify.token_data.token_value).not_to be_empty
92
+
93
+ month = nil
94
+ year = 19
95
+
96
+ expect {
97
+ service.update_token_expiration(verify.token_data.token_value, month, year)
98
+ }.to raise_error(TypeError)
99
+ end
100
+
101
+ it "fails to update multi-use token with nil date" do
102
+ Hps::TestHelper.valid_multi_use_config
103
+ service = Hps::HpsChargeService.new()
104
+ verify = service.verify(Hps::TestData::valid_visa, Hps::TestData.valid_cardholder, true)
105
+ expect(verify).not_to be_nil
106
+ expect(verify.response_code).to eql("85")
107
+ expect(verify.token_data).not_to be_nil
108
+ expect(verify.token_data.token_value).not_to be_nil
109
+ expect(verify.token_data.token_value).not_to be_empty
110
+
111
+ month = nil
112
+ year = nil
113
+
114
+ expect {
115
+ service.update_token_expiration(verify.token_data.token_value, month, year)
116
+ }.to raise_error(TypeError)
117
+ end
118
+
119
+ it "fails to update multi-use token with invalid token" do
120
+ Hps::TestHelper.valid_multi_use_config
121
+ service = Hps::HpsChargeService.new()
122
+ month = Time.now.strftime('%m')
123
+ year = (Time.now + 2.years).strftime('%Y')
124
+
125
+ expect {
126
+ service.update_token_expiration("abcdefg", month, year)
127
+ }.to raise_error(Hps::HpsException)
128
+ end
129
+
130
+ it "fails to update multi-use token with nil token" do
131
+ Hps::TestHelper.valid_multi_use_config
132
+ service = Hps::HpsChargeService.new()
133
+ month = Time.now.strftime('%m')
134
+ year = (Time.now + 2.years).strftime('%Y')
135
+
136
+ expect {
137
+ service.update_token_expiration(nil, month, year)
138
+ }.to raise_error(Hps::HpsException)
139
+ end
140
+
141
141
  end