sterling_api 1.0.4

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.
@@ -0,0 +1,124 @@
1
+ $: << File.expand_path(File.dirname(__FILE__) + '/../lib')
2
+ require 'sterling_api/xml_helper'
3
+ require 'sterling_api/background_check'
4
+ require 'sterling_api/password_change'
5
+ require 'sterling_api/remote_actions'
6
+
7
+ module SterlingApi
8
+
9
+ URLS = {
10
+ :test => {
11
+ :wsdl_background_checks => {
12
+ :name => 'WSDL - Back Ground Checks',
13
+ :description => 'URL for background screening web services WSDL',
14
+ :url => 'https://deuce.tandemselect.com:9000/wh_soap_listener.cgi'
15
+ },
16
+ :order_one_step => {
17
+ :name => 'New Requests URL - Customer Test (One-Step)',
18
+ :description => 'URL for web service CreateOrder',
19
+ :url => 'https://deuce.tandemselect.com:9000/wh_soap_listener.cgi'
20
+ },
21
+ :order_two_step => {
22
+ :name => 'New Requests URL - Customer Test (Two-Step)',
23
+ :description => 'URL for web service CreateOrder',
24
+ :url => 'https://deuce.tandemselect.com:9000/wh_soap_listener.cgi'
25
+ },
26
+ :provider_website => {
27
+ :name => 'Provider Website URL - Test',
28
+ :description => 'CPScreen.com URL',
29
+ :url => 'https://deuce.tandemselect.com:9000/wh_soap_listener.cgi'
30
+ },
31
+ :response_post => {
32
+ :name => 'Response URL - Customer Test',
33
+ :description => 'URL ChoicePoint uses to post results to ATS',
34
+ :url => ''
35
+ },
36
+ :wsdl_admin => {
37
+ :name => 'WSDL - Admin',
38
+ :description => 'URL for admin web services WSDL',
39
+ :url => 'https://deuce.tandemselect.com:9000/wh_soap_listener.cgi'
40
+ },
41
+ :password_change => {
42
+ :name => 'Password Change Requests URL - Test',
43
+ :description => 'URL for web service ChangePasswords, GetPackages',
44
+ :url => 'https://deuce.tandemselect.com:9000/wh_soap_listener.cgi'
45
+ },
46
+ },
47
+
48
+ :prod => {
49
+ :wsdl_background_checks => {
50
+ :name => 'WSDL - Back Ground Checks',
51
+ :description => 'URL for background screening web services WSDL',
52
+ :url => 'https://orders.tandemselect.com:444/wh_soap_listener.cgi'
53
+ },
54
+ :order_one_step => {
55
+ :name => 'New Requests URL - Production (One-Step)',
56
+ :description => 'URL for web service CreateOrder',
57
+ :url => 'https://orders.tandemselect.com:444/wh_soap_listener.cgi'
58
+ },
59
+ :order_two_step => {
60
+ :name => 'New Requests URL - Production (Two-Step)',
61
+ :description => 'URL for web service CreateOrder',
62
+ :url => 'https://orders.tandemselect.com:444/wh_soap_listener.cgi'
63
+ },
64
+ :provider_website => {
65
+ :name => 'Provider Website URL - Production',
66
+ :description => 'CPScreen.com URL',
67
+ :url => 'https://orders.tandemselect.com:444/wh_soap_listener.cgi'
68
+ },
69
+ :response_post => {
70
+ :name => 'Response URL - Production',
71
+ :description => 'URL ChoicePoint uses to post results to ATS',
72
+ :url => ''
73
+ },
74
+ :wsdl_admin => {
75
+ :name => 'WSDL - Admin',
76
+ :description => 'URL for admin web services WSDL',
77
+ :url => 'https://orders.tandemselect.com:444/wh_soap_listener.cgi'
78
+ },
79
+ :password_change => {
80
+ :name => 'Password Change Requests URL - Production',
81
+ :description => 'URL for web service ChangePasswords, GetPackages',
82
+ :url => 'https://orders.tandemselect.com:444/wh_soap_listener.cgi'
83
+ },
84
+ }
85
+ }
86
+
87
+
88
+ class Api
89
+
90
+ # mode: prod[uction] or test
91
+ def initialize(mode)
92
+ @mode = mode
93
+ # test system password is 'Password2' until changed
94
+ self
95
+ end
96
+
97
+ def mode
98
+ @mode.to_s =~ /prod/i ? :prod : :test
99
+ end
100
+
101
+ def order(background_check)
102
+ req = SterlingApi::RemoteActions::Request.new(
103
+ :url => url(:order_one_step),
104
+ :body => background_check.to_xml
105
+ )
106
+ req.send_request
107
+ end
108
+
109
+ def password_change_request(password_change)
110
+ req = SterlingApi::RemoteActions::Request.new(
111
+ :url => url(:password_change),
112
+ :body => password_change.to_xml
113
+ )
114
+ req.send_request
115
+ end
116
+
117
+ def url(type)
118
+ SterlingApi::URLS[mode][type][:url]
119
+ end
120
+
121
+ end # class Api
122
+
123
+
124
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :sterling_api do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "sterling_api/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "sterling_api"
7
+ s.version = SterlingApi::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Manny Rodriguez"]
10
+ s.email = ["manny@7compass.com"]
11
+ s.homepage = "https://github.com/7compass/sterling_api"
12
+ s.summary = %q{Sterling Api}
13
+ s.description = %q{For requesting background checks}
14
+
15
+ s.rubyforge_project = "sterling_api"
16
+
17
+ s.add_runtime_dependency("nokogiri")
18
+ s.add_runtime_dependency("net/http")
19
+ s.add_runtime_dependency("net/https")
20
+
21
+ s.files = `git ls-files`.split("\n")
22
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
23
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
24
+ s.require_paths = ["lib"]
25
+
26
+ s.license = 'MIT'
27
+ end
@@ -0,0 +1,304 @@
1
+ require File.join(File.dirname(__FILE__), 'test_helper')
2
+
3
+ class BackgroundCheckTest < ActiveSupport::TestCase
4
+
5
+ test 'should get mvr node' do
6
+ bg_hash = background_check_hash(:account => '036483', :password => 'Password2')
7
+ one_year_ago = 1.year.ago.to_date
8
+ bg_hash[:licenses] << license_hash(
9
+ {
10
+ :valid_from => one_year_ago,
11
+ :valid_to => nil,
12
+ :country_code => 'US',
13
+ :license_number => '1234ABC',
14
+ :license_region => 'FL',
15
+ }
16
+ )
17
+ bg_hash[:licenses] << license_hash(
18
+ {
19
+ :valid_from => '1999-03-13',
20
+ :valid_to => one_year_ago,
21
+ :country_code => 'US',
22
+ :license_number => 'in&val<id>',
23
+ :license_region => 'CA',
24
+ }
25
+ )
26
+
27
+ bg = SterlingApi::BackgroundCheck.for_package(2116, bg_hash)
28
+ xml = bg.to_xml
29
+
30
+ assert_node xml, 'License', :attributes => {:validFrom => one_year_ago.to_s(:db), :validTo => ""}
31
+ assert_node xml, 'LicenseNumber', :content => '1234ABC'
32
+ assert_node xml, 'LicenseRegion', :content => 'FL'
33
+
34
+ assert_node xml, 'License', :attributes => {:validFrom => "1999-03-13", :validTo => one_year_ago.to_s(:db)}
35
+ assert_node xml, 'LicenseNumber', :content => 'in&amp;val&lt;id&gt;'
36
+ assert_node xml, 'LicenseRegion', :content => 'CA'
37
+ end
38
+
39
+ test 'should get names' do
40
+ bg_hash = background_check_hash(:account => '036483', :password => 'Password2')
41
+ bg_hash[:person_names] << name_hash({
42
+ :type => 'subject',
43
+ :first_name => 'First1',
44
+ :middle_name => 'M1',
45
+ :last_name => 'Last1'
46
+ })
47
+ bg_hash[:person_names] << name_hash({
48
+ :type => 'alias',
49
+ :first_name => 'First2',
50
+ :middle_name => 'M2',
51
+ :last_name => 'Last2'
52
+ })
53
+ bg = SterlingApi::BackgroundCheck.for_package(2112, bg_hash)
54
+ xml = bg.to_xml
55
+
56
+ assert_node xml, 'PersonName', :attributes => {:type => 'subject'}, :child => {:node_name => 'GivenName', :content => 'First1'}
57
+ assert_node xml, 'PersonName', :attributes => {:type => 'subject'}, :child => {:node_name => 'MiddleName', :content => 'M1'}
58
+ assert_node xml, 'PersonName', :attributes => {:type => 'subject'}, :child => {:node_name => 'FamilyName', :content => 'Last1'}
59
+
60
+ assert_node xml, 'PersonName', :attributes => {:type => 'alias'}, :child => {:node_name => 'GivenName', :content => 'First2'}
61
+ assert_node xml, 'PersonName', :attributes => {:type => 'alias'}, :child => {:node_name => 'MiddleName', :content => 'M2'}
62
+ assert_node xml, 'PersonName', :attributes => {:type => 'alias'}, :child => {:node_name => 'FamilyName', :content => 'Last2'}
63
+ end
64
+
65
+ test 'should get addresses' do
66
+ bg_hash = background_check_hash(:account => '036483', :password => 'Password2')
67
+ bg_hash[:postal_addresses] << address_hash({
68
+ :type => 'current',
69
+ :valid_from => '2010-01-02',
70
+ :valid_to => '2020-12-31',
71
+ :municipality => 'Madison',
72
+ :region => 'WI',
73
+ :postal_code => '53711',
74
+ :country_code => 'US',
75
+ :address1 => '1234 Main St',
76
+ :address2 => '',
77
+ })
78
+ bg_hash[:postal_addresses] << address_hash({
79
+ :type => 'prior',
80
+ :valid_from => '2001-02-03',
81
+ :valid_to => '2009-11-12',
82
+ :municipality => 'Podunk',
83
+ :region => 'KS',
84
+ :postal_code => '98765',
85
+ :country_code => 'US',
86
+ :address1 => '222 There St',
87
+ :address2 => 'Apt 2',
88
+ })
89
+ bg = SterlingApi::BackgroundCheck.for_package(2112, bg_hash)
90
+ xml = bg.to_xml
91
+
92
+ assert_node xml, 'PostalAddress', :attributes => {:type => 'current', :validFrom => '2010-01-02', :validTo => '2020-12-31'},
93
+ :child => {:node_name => 'Municipality', :content => 'Madison'}
94
+ assert_node xml, 'PostalAddress', :attributes => {:type => 'current', :validFrom => '2010-01-02', :validTo => '2020-12-31'},
95
+ :child => {:node_name => 'Region', :content => 'WI'}
96
+ assert_node xml, 'PostalAddress', :attributes => {:type => 'current', :validFrom => '2010-01-02', :validTo => '2020-12-31'},
97
+ :child => {:node_name => 'PostalCode', :content => '53711'}
98
+ assert_node xml, 'PostalAddress', :attributes => {:type => 'current', :validFrom => '2010-01-02', :validTo => '2020-12-31'},
99
+ :child => {:node_name => 'CountryCode', :content => 'US'}
100
+ assert_node xml, 'PostalAddress', :attributes => {:type => 'current', :validFrom => '2010-01-02', :validTo => '2020-12-31'},
101
+ :child => {:node_name => 'DeliveryAddress', :child => {
102
+ :node_name => 'AddressLine', :content => '1234 Main St'
103
+ }}
104
+ assert_no_node xml, 'PostalAddress', :attributes => {:type => 'current', :validFrom => '2010-01-02', :validTo => '2020-12-31'},
105
+ :child => {:node_name => 'DeliveryAddress', :child => {
106
+ :node_name => 'AddressLine', :content => ''
107
+ }}
108
+
109
+ assert_node xml, 'PostalAddress', :attributes => {:type => 'prior', :validFrom => '2001-02-03', :validTo => '2009-11-12'},
110
+ :child => {:node_name => 'Municipality', :content => 'Podunk'}
111
+ assert_node xml, 'PostalAddress', :attributes => {:type => 'prior', :validFrom => '2001-02-03', :validTo => '2009-11-12'},
112
+ :child => {:node_name => 'Region', :content => 'KS'}
113
+ assert_node xml, 'PostalAddress', :attributes => {:type => 'prior', :validFrom => '2001-02-03', :validTo => '2009-11-12'},
114
+ :child => {:node_name => 'PostalCode', :content => '98765'}
115
+ assert_node xml, 'PostalAddress', :attributes => {:type => 'prior', :validFrom => '2001-02-03', :validTo => '2009-11-12'},
116
+ :child => {:node_name => 'CountryCode', :content => 'US'}
117
+ assert_node xml, 'PostalAddress', :attributes => {:type => 'prior', :validFrom => '2001-02-03', :validTo => '2009-11-12'},
118
+ :child => {:node_name => 'DeliveryAddress', :child => {
119
+ :node_name => 'AddressLine', :content => '222 There St'
120
+ }}
121
+ assert_node xml, 'PostalAddress', :attributes => {:type => 'prior', :validFrom => '2001-02-03', :validTo => '2009-11-12'},
122
+ :child => {:node_name => 'DeliveryAddress', :child => {
123
+ :node_name => 'AddressLine', :content => 'Apt 2'
124
+ }}
125
+ end
126
+
127
+ test 'should get ssnv' do
128
+ bg_hash = background_check_hash(:account => '036483', :password => 'Password2')
129
+ bg_hash.merge!(ssnv_hash({
130
+ :ssn => '333224444',
131
+ :date_of_birth => '1951-02-03'
132
+ }))
133
+ bg = SterlingApi::BackgroundCheck.for_package(2112, bg_hash)
134
+ xml = bg.to_xml
135
+ assert_node xml, 'DemographicDetail', :child => {
136
+ :node_name => 'GovernmentId', :content => '333224444'
137
+ }
138
+ assert_node xml, 'DemographicDetail', :child => {
139
+ :node_name => 'DateOfBirth', :content => '1951-02-03'
140
+ }
141
+ end
142
+
143
+ test 'should have soap wrapper in to_xml' do
144
+ bg_hash = background_check_hash(:account => '036483', :password => 'Password2')
145
+ bg = SterlingApi::BackgroundCheck.for_package(2112, bg_hash)
146
+ xml = bg.to_xml
147
+ assert_node xml, 'soapenv:Envelope'
148
+ end
149
+
150
+ test 'should have order_as user and account' do
151
+ bg_hash = background_check_hash(:account => '036483', :password => 'Password2', :order_as_user_id => 'joeuser', :order_as_account_suffix => 'XYZ')
152
+ bg = SterlingApi::BackgroundCheck.for_package(2112, bg_hash)
153
+ xml = bg.to_xml
154
+
155
+ assert_node xml, 'ClientReferences', :child => {:node_name => 'ClientReference', :content => 'joeuser'}
156
+ assert_node xml, 'OrderAccount', :child => {:node_name => 'Account', :content => '036483XYZ'}
157
+ end
158
+
159
+ test '2112 should have correct parts' do
160
+ bg_hash = background_check_hash(:account => '036483', :password => 'Password2')
161
+ bg_hash[:person_names] << name_hash
162
+ bg_hash[:postal_addresses] << address_hash
163
+ bg_hash[:licenses] << license_hash
164
+ bg_hash.merge!(ssnv_hash)
165
+
166
+ bg = SterlingApi::BackgroundCheck.for_package(2112, bg_hash)
167
+ xml = bg.to_xml
168
+
169
+ assert_node xml, 'PackageId', :content => '2112'
170
+ assert_node xml, 'PersonalData', :child => {:node_name => 'PersonName'}
171
+ assert_node xml, 'PersonalData', :child => {:node_name => 'PostalAddress'}
172
+ assert_node xml, 'PersonalData', :child => {:node_name => 'DemographicDetail', :child => {:node_name => 'GovernmentId'}}
173
+ assert_node xml, 'PersonalData', :child => {:node_name => 'DemographicDetail', :child => {:node_name => 'DateOfBirth'}}
174
+ assert_no_node xml, 'PersonalData', :child => {:node_name => 'Licenses'}
175
+ end
176
+
177
+ test '2113 should have correct parts' do
178
+ bg_hash = background_check_hash(:account => '036483', :password => 'Password2')
179
+ bg_hash[:person_names] << name_hash
180
+ bg_hash[:postal_addresses] << address_hash
181
+ bg_hash[:licenses] << license_hash
182
+ bg_hash.merge!(ssnv_hash)
183
+
184
+ bg = SterlingApi::BackgroundCheck.for_package(2113, bg_hash)
185
+ xml = bg.to_xml
186
+
187
+ assert_node xml, 'PackageId', :content => '2113'
188
+ assert_node xml, 'PersonalData', :child => {:node_name => 'PersonName'}
189
+ assert_node xml, 'PersonalData', :child => {:node_name => 'PostalAddress'}
190
+ assert_node xml, 'PersonalData', :child => {:node_name => 'DemographicDetail', :child => {:node_name => 'GovernmentId'}}
191
+ assert_node xml, 'PersonalData', :child => {:node_name => 'DemographicDetail', :child => {:node_name => 'DateOfBirth'}}
192
+ assert_no_node xml, 'PersonalData', :child => {:node_name => 'Licenses'}
193
+ end
194
+
195
+ test '2114 should have correct parts' do
196
+ bg_hash = background_check_hash(:account => '036483', :password => 'Password2')
197
+ bg_hash[:person_names] << name_hash
198
+ bg_hash[:postal_addresses] << address_hash
199
+ bg_hash[:licenses] << license_hash
200
+ bg_hash.merge!(ssnv_hash)
201
+
202
+ bg = SterlingApi::BackgroundCheck.for_package(2114, bg_hash)
203
+ xml = bg.to_xml
204
+
205
+ assert_node xml, 'PackageId', :content => '2114'
206
+ assert_node xml, 'PersonalData', :child => {:node_name => 'PersonName'}
207
+ assert_node xml, 'PersonalData', :child => {:node_name => 'PostalAddress'}
208
+ assert_node xml, 'PersonalData', :child => {:node_name => 'DemographicDetail', :child => {:node_name => 'GovernmentId'}}
209
+ assert_node xml, 'PersonalData', :child => {:node_name => 'DemographicDetail', :child => {:node_name => 'DateOfBirth'}}
210
+ assert_node xml, 'PersonalData', :child => {:node_name => 'Licenses'}
211
+ end
212
+
213
+ test '2116 should have correct parts' do
214
+ bg_hash = background_check_hash(:account => '036483', :password => 'Password2')
215
+ bg_hash[:person_names] << name_hash
216
+ bg_hash[:postal_addresses] << address_hash
217
+ bg_hash[:licenses] << license_hash
218
+ bg_hash.merge!(ssnv_hash)
219
+
220
+ bg = SterlingApi::BackgroundCheck.for_package(2116, bg_hash)
221
+ xml = bg.to_xml
222
+
223
+ assert_node xml, 'PackageId', :content => '2116'
224
+ assert_node xml, 'PersonalData', :child => {:node_name => 'PersonName'}
225
+ assert_node xml, 'PersonalData', :child => {:node_name => 'PostalAddress'}
226
+ assert_node xml, 'PersonalData', :child => {:node_name => 'DemographicDetail', :child => {:node_name => 'GovernmentId'}}
227
+ assert_node xml, 'PersonalData', :child => {:node_name => 'DemographicDetail', :child => {:node_name => 'DateOfBirth'}}
228
+ assert_node xml, 'PersonalData', :child => {:node_name => 'Licenses'}
229
+ end
230
+
231
+ test '2117 should have correct parts' do
232
+ bg_hash = background_check_hash(:account => '036483', :password => 'Password2')
233
+ bg_hash[:person_names] << name_hash
234
+ bg_hash[:postal_addresses] << address_hash
235
+ bg_hash[:licenses] << license_hash
236
+ bg_hash.merge!(ssnv_hash)
237
+
238
+ bg = SterlingApi::BackgroundCheck.for_package(2117, bg_hash)
239
+ xml = bg.to_xml
240
+
241
+ assert_node xml, 'PackageId', :content => '2117'
242
+ assert_node xml, 'PersonalData', :child => {:node_name => 'PersonName'}
243
+ assert_node xml, 'PersonalData', :child => {:node_name => 'PostalAddress'}
244
+ assert_node xml, 'PersonalData', :child => {:node_name => 'DemographicDetail', :child => {:node_name => 'GovernmentId'}}
245
+ assert_node xml, 'PersonalData', :child => {:node_name => 'DemographicDetail', :child => {:node_name => 'DateOfBirth'}}
246
+ assert_no_node xml, 'PersonalData', :child => {:node_name => 'Licenses'}
247
+ end
248
+
249
+ test '2168 should have correct parts' do
250
+ bg_hash = background_check_hash(:account => '036483', :password => 'Password2')
251
+ bg_hash[:person_names] << name_hash
252
+ bg_hash[:postal_addresses] << address_hash
253
+ bg_hash[:licenses] << license_hash
254
+ bg_hash.merge!(ssnv_hash)
255
+
256
+ bg = SterlingApi::BackgroundCheck.for_package(2168, bg_hash)
257
+ xml = bg.to_xml
258
+
259
+ assert_node xml, 'PackageId', :content => '2168'
260
+ assert_node xml, 'PersonalData', :child => {:node_name => 'PersonName'}
261
+ assert_node xml, 'PersonalData', :child => {:node_name => 'PostalAddress'}
262
+ assert_node xml, 'PersonalData', :child => {:node_name => 'DemographicDetail', :child => {:node_name => 'GovernmentId'}}
263
+ assert_node xml, 'PersonalData', :child => {:node_name => 'DemographicDetail', :child => {:node_name => 'DateOfBirth'}}
264
+ assert_no_node xml, 'PersonalData', :child => {:node_name => 'Licenses'}
265
+ end
266
+
267
+ test '2169 should have correct parts' do
268
+ bg_hash = background_check_hash(:account => '036483', :password => 'Password2')
269
+ bg_hash[:person_names] << name_hash
270
+ bg_hash[:postal_addresses] << address_hash
271
+ bg_hash[:licenses] << license_hash
272
+ bg_hash.merge!(ssnv_hash)
273
+
274
+ bg = SterlingApi::BackgroundCheck.for_package(2169, bg_hash)
275
+ xml = bg.to_xml
276
+
277
+ assert_node xml, 'PackageId', :content => '2169'
278
+ assert_node xml, 'PersonalData', :child => {:node_name => 'PersonName'}
279
+ assert_node xml, 'PersonalData', :child => {:node_name => 'PostalAddress'}
280
+ assert_node xml, 'PersonalData', :child => {:node_name => 'DemographicDetail', :child => {:node_name => 'GovernmentId'}}
281
+ assert_node xml, 'PersonalData', :child => {:node_name => 'DemographicDetail', :child => {:node_name => 'DateOfBirth'}}
282
+ assert_no_node xml, 'PersonalData', :child => {:node_name => 'Licenses'}
283
+ end
284
+
285
+ test '2360 should have correct parts' do
286
+ bg_hash = background_check_hash(:account => '036483', :password => 'Password2')
287
+ bg_hash[:person_names] << name_hash
288
+ bg_hash[:postal_addresses] << address_hash
289
+ bg_hash[:licenses] << license_hash
290
+ bg_hash.merge!(ssnv_hash)
291
+
292
+ bg = SterlingApi::BackgroundCheck.for_package(2360, bg_hash)
293
+ xml = bg.to_xml
294
+
295
+ assert_node xml, 'PackageId', :content => '2360'
296
+ assert_node xml, 'PersonalData', :child => {:node_name => 'PersonName'}
297
+ assert_node xml, 'PersonalData', :child => {:node_name => 'PostalAddress'}
298
+ assert_node xml, 'PersonalData', :child => {:node_name => 'DemographicDetail', :child => {:node_name => 'GovernmentId'}}
299
+ assert_node xml, 'PersonalData', :child => {:node_name => 'DemographicDetail', :child => {:node_name => 'DateOfBirth'}}
300
+ assert_no_node xml, 'PersonalData', :child => {:node_name => 'Licenses'}
301
+ end
302
+
303
+
304
+ end
@@ -0,0 +1,32 @@
1
+ require File.join(File.dirname(__FILE__), 'test_helper')
2
+
3
+ class PasswordChangeTest < ActiveSupport::TestCase
4
+
5
+ test 'should get new without subaccount' do
6
+ pc = SterlingApi::PasswordChange.new(
7
+ '12345',
8
+ 'secret',
9
+ 'secreter'
10
+ )
11
+
12
+ xml = pc.to_xml
13
+
14
+ assert_node xml, 'ChoicePointAdminRequest', :attributes => {:account => '12345'}
15
+ assert_node xml, 'Account', :content => '12345'
16
+ end
17
+
18
+ test 'should get new with subaccount' do
19
+ pc = SterlingApi::PasswordChange.new(
20
+ '12345',
21
+ 'secret',
22
+ 'secreter',
23
+ 'ABC'
24
+ )
25
+
26
+ xml = pc.to_xml
27
+
28
+ assert_node xml, 'ChoicePointAdminRequest', :attributes => {:account => '12345ABC'}
29
+ assert_node xml, 'Account', :content => '12345ABC'
30
+ end
31
+
32
+ end
@@ -0,0 +1,47 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteActionsTest < ActiveSupport::TestCase
4
+
5
+ test 'should get host_from_url' do
6
+ req = SterlingApi::RemoteActions::Request.new(:url => 'http://test.lexisnexis.fake/foo/bar')
7
+ assert_equal 'test.lexisnexis.fake', req.host_from_url
8
+
9
+ req = SterlingApi::RemoteActions::Request.new(:url => 'http://this.that-test.lexisnexis.fake/foo/bar')
10
+ assert_equal 'this.that-test.lexisnexis.fake', req.host_from_url
11
+
12
+ req = SterlingApi::RemoteActions::Request.new(:url => 'http://test2.lexisnexis.fake')
13
+ assert_equal 'test2.lexisnexis.fake', req.host_from_url
14
+
15
+ req = SterlingApi::RemoteActions::Request.new(:url => 'test3.lexisnexis.fake/foo/bar')
16
+ assert_equal 'test3.lexisnexis.fake', req.host_from_url
17
+
18
+ req = SterlingApi::RemoteActions::Request.new(:url => '')
19
+ assert_equal nil, req.host_from_url
20
+ end
21
+
22
+ test 'should get port_from_url' do
23
+ req = SterlingApi::RemoteActions::Request.new(:url => 'http://test.lexisnexis.fake/foo/bar')
24
+ assert_equal 80, req.port_from_url
25
+
26
+ req = SterlingApi::RemoteActions::Request.new(:url => 'https://test.lexisnexis.fake/foo/bar')
27
+ assert_equal 443, req.port_from_url
28
+
29
+ req = SterlingApi::RemoteActions::Request.new(:url => 'http://test.lexisnexis.fake:8765/foo/bar')
30
+ assert_equal 8765, req.port_from_url
31
+ end
32
+
33
+ test 'should get is_ssl?' do
34
+ req = SterlingApi::RemoteActions::Request.new(:url => 'http://test.lexisnexis.fake/foo/bar')
35
+ assert !req.is_ssl?
36
+
37
+ req = SterlingApi::RemoteActions::Request.new(:url => 'https://test.lexisnexis.fake/foo/bar')
38
+ assert req.is_ssl?
39
+ end
40
+
41
+ test 'should get response errors' do
42
+ res = SterlingApi::RemoteActions::MockResponse.new(:body => SterlingApi::XmlSamples::CHANGE_PASSWORD_FAIL_RESPONSE)
43
+ assert_equal '250', res.errors[:error_code]
44
+ assert_equal 'Invalid old password', res.errors[:error_description]
45
+ end
46
+
47
+ end
@@ -0,0 +1,70 @@
1
+ require File.join(File.dirname(__FILE__), 'test_helper')
2
+
3
+ class SterlingApiTest < ActiveSupport::TestCase
4
+
5
+ def setup
6
+ # DO YOU REALLY WANT TO SEND THESE TEST REQUESTS TO LEXIS-NEXIS?
7
+ @SEND_REQUESTS = false
8
+ end
9
+
10
+ test 'should order packages' do
11
+ if @SEND_REQUESTS
12
+ %w(Eligible Ineligible).each do |status|
13
+ @status = status
14
+ @client_reference1 = "Make me #{@status}"
15
+ @order_as_user_id = nil
16
+ @order_as_account_suffix = nil
17
+
18
+ [2112, 2113, 2114, 2116, 2117, 2168, 2169, 2360].each do |id|
19
+ bg_hash = background_check_hash(:account => '036483', :password => 'Password2',
20
+ :order_as_user_id => @order_as_user_id,
21
+ :order_as_account_suffix => @order_as_account_suffix,
22
+ :client_reference1 => @client_reference1
23
+ )
24
+ bg_hash[:person_names] << name_hash(:last_name => @status)
25
+ bg_hash[:postal_addresses] << address_hash
26
+ bg_hash[:licenses] << license_hash
27
+ bg_hash.merge!(ssnv_hash)
28
+
29
+ bg = SterlingApi::BackgroundCheck.for_package(id, bg_hash)
30
+ api = SterlingApi::Api.new(:test)
31
+ response = api.order(bg)
32
+
33
+ puts "response for package #{id}: #{response.inspect}"
34
+ assert_no_match %r{<ErrorReport>}, response.body, "Error on package #{id}"
35
+ end
36
+ end
37
+ end
38
+ end
39
+
40
+ test 'should order packages with suffix' do
41
+ if @SEND_REQUESTS
42
+ %w(Eligible Ineligible).each do |status|
43
+ @status = status
44
+ @client_reference1 = "Make me #{@status}"
45
+ @order_as_user_id = 'test_user'
46
+ @order_as_account_suffix = 'TST'
47
+
48
+ [2112, 2113, 2114, 2116, 2117, 2168, 2169, 2360].each do |id|
49
+ bg_hash = background_check_hash(:account => '036483', :password => 'Password2',
50
+ :order_as_user_id => @order_as_user_id,
51
+ :order_as_account_suffix => @order_as_account_suffix,
52
+ :client_reference1 => @client_reference1
53
+ )
54
+ bg_hash[:person_names] << name_hash(:last_name => @status)
55
+ bg_hash[:postal_addresses] << address_hash
56
+ bg_hash[:licenses] << license_hash
57
+ bg_hash.merge!(ssnv_hash)
58
+
59
+ bg = SterlingApi::BackgroundCheck.for_package(id, bg_hash)
60
+ api = SterlingApi::Api.new(:test)
61
+ response = api.order(bg)
62
+
63
+ puts "response for package #{id}: #{response.inspect}"
64
+ assert_no_match %r{<ErrorReport>}, response.body, "Error on package #{id}"
65
+ end
66
+ end
67
+ end
68
+ end
69
+
70
+ end