blueline_services 0.1.5
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/.gitignore +3 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +46 -0
- data/README.md +66 -0
- data/Rakefile +26 -0
- data/blueline_services.gemspec +31 -0
- data/lib/blueline_services.rb +19 -0
- data/lib/blueline_services/configuration.rb +54 -0
- data/lib/blueline_services/dsl.rb +30 -0
- data/lib/blueline_services/person_name.rb +29 -0
- data/lib/blueline_services/request.rb +155 -0
- data/lib/blueline_services/response.rb +43 -0
- data/lib/blueline_services/screening/civil_county.rb +17 -0
- data/lib/blueline_services/screening/credit.rb +16 -0
- data/lib/blueline_services/screening/criminal_county.rb +17 -0
- data/lib/blueline_services/screening/criminal_federal.rb +17 -0
- data/lib/blueline_services/screening/criminal_security.rb +12 -0
- data/lib/blueline_services/screening/criminal_state.rb +16 -0
- data/lib/blueline_services/screening/eviction.rb +16 -0
- data/lib/blueline_services/screening/model.rb +27 -0
- data/lib/blueline_services/screening/person_search.rb +16 -0
- data/lib/blueline_services/version.rb +3 -0
- data/test/integration/initial_request_test.rb +21 -0
- data/test/test-updated.xml +111 -0
- data/test/test_helper.rb +115 -0
- data/test/unit/request_test.rb +93 -0
- data/test/unit/response_test.rb +65 -0
- data/test/unit/screening/civil_county_test.rb +12 -0
- data/test/unit/screening/credit_test.rb +12 -0
- data/test/unit/screening/criminal_county_test.rb +12 -0
- data/test/unit/screening/criminal_federal_test.rb +12 -0
- data/test/unit/screening/criminal_security_test.rb +11 -0
- data/test/unit/screening/criminal_state_test.rb +12 -0
- data/test/unit/screening/eviction_test.rb +11 -0
- data/test/unit/screening/model_test.rb +37 -0
- data/test/unit/screening/person_search_test.rb +11 -0
- metadata +229 -0
@@ -0,0 +1,93 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module BluelineServices
|
4
|
+
class RequestTest < Test::Unit::TestCase
|
5
|
+
subject do
|
6
|
+
request = Request.new(TEST_HASH)
|
7
|
+
request.alias do |a|
|
8
|
+
a.given_name = "Steve"
|
9
|
+
a.family_name = "Jobs"
|
10
|
+
end
|
11
|
+
request.criminal_county_screen do |screen|
|
12
|
+
screen.region = "WA"
|
13
|
+
screen.county = "KING"
|
14
|
+
end
|
15
|
+
request
|
16
|
+
end
|
17
|
+
|
18
|
+
context "#as_xml" do
|
19
|
+
should "be correctly structured nokogiri builder object" do
|
20
|
+
root_node = subject.as_xml.parent
|
21
|
+
|
22
|
+
# this is seeing if there is an attribute "somewhere" inside
|
23
|
+
# the document that matches this name and value
|
24
|
+
assert_xml_attr_equal root_node, :user_name, :userId
|
25
|
+
assert_xml_attr_equal root_node, :password
|
26
|
+
assert_xml_attr_equal root_node, :type
|
27
|
+
assert_xml_attr_equal root_node, :action
|
28
|
+
assert_xml_attr_equal root_node, :country_code, :countryCode
|
29
|
+
assert_xml_attr_equal root_node, :issuing_authority, :issuingAuthority
|
30
|
+
assert_equal "yes", root_node.at("//@useConfigurationDefaults").value
|
31
|
+
|
32
|
+
assert_xml_text_equal root_node, :reference_id
|
33
|
+
assert_xml_text_equal root_node, :email_address
|
34
|
+
assert_xml_text_equal root_node, :telephone
|
35
|
+
assert_xml_text_equal root_node, :given_name
|
36
|
+
assert_xml_text_equal root_node, :middle_name
|
37
|
+
assert_xml_text_equal root_node, :family_name
|
38
|
+
assert_xml_text_equal root_node, :government_id
|
39
|
+
assert_xml_text_equal root_node, :postal_code
|
40
|
+
assert_xml_text_equal root_node, :region
|
41
|
+
assert_xml_text_equal root_node, :municipality
|
42
|
+
assert_xml_text_equal root_node, :address_line
|
43
|
+
assert_xml_text_equal root_node, :street_name
|
44
|
+
|
45
|
+
item_nodes = root_node.xpath("//AdditionalItems")
|
46
|
+
subject.additional_items.each do |k,v|
|
47
|
+
next if v.nil?
|
48
|
+
attr_name = "x:#{k}"
|
49
|
+
item_node = item_nodes.at("[@type='#{attr_name}']")
|
50
|
+
assert_not_nil item_node
|
51
|
+
assert_equal v.to_s, item_node.at(".//Text").try(:text)
|
52
|
+
end
|
53
|
+
|
54
|
+
region = root_node.at("//Screening//Region").text
|
55
|
+
county = root_node.at("//Screening//County").text
|
56
|
+
assert_equal "WA", region
|
57
|
+
assert_equal "KING", county
|
58
|
+
|
59
|
+
alias_given_name = root_node.at("//Aliases//PersonName//GivenName").text
|
60
|
+
alias_family_name = root_node.at("//Aliases//PersonName//FamilyName").text
|
61
|
+
assert_equal "Steve", alias_given_name
|
62
|
+
assert_equal "Jobs", alias_family_name
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
context "#submit" do
|
67
|
+
should "send a post request and wrap the response" do
|
68
|
+
response = mock
|
69
|
+
request_xml = "request xml"
|
70
|
+
response_xml = "reponse_xml"
|
71
|
+
http_response = mock(:parsed_response => response_xml)
|
72
|
+
body = {:body => {:request => request_xml}}
|
73
|
+
subject.expects(:to_xml).returns(request_xml)
|
74
|
+
subject.class.expects(:post).
|
75
|
+
with("", body).
|
76
|
+
returns(http_response)
|
77
|
+
Response.expects(:new).with(response_xml).returns(response)
|
78
|
+
assert_equal response, subject.submit
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
should_have_attr_accessor :user_name, :password
|
83
|
+
should_have_attr_accessor :action, :type, :reference_id
|
84
|
+
should_have_attr_accessor :email_address, :telephone
|
85
|
+
should_have_attr_accessor :given_name, :middle_name, :family_name
|
86
|
+
should_have_attr_accessor :government_id, :country_code,
|
87
|
+
:issuing_authority, :date_of_birth, :postal_code, :region,
|
88
|
+
:municipality, :address_line, :street_name
|
89
|
+
should_have_attr_accessor :use_defaults
|
90
|
+
should_have_attr_accessor *Request::ADDITIONAL_ITEMS
|
91
|
+
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module BluelineServices
|
4
|
+
class ResponseTest < Test::Unit::TestCase
|
5
|
+
subject { Response.new(TEST_ERROR_RESPONSE) }
|
6
|
+
|
7
|
+
should_have_attr_reader :user_id, :password, :reference_id,
|
8
|
+
:order_id, :order_status
|
9
|
+
should_have_attr_reader :error_code, :error_description
|
10
|
+
should_have_attr_reader :result_status,
|
11
|
+
:order_status_flag,
|
12
|
+
:screening_results_type,
|
13
|
+
:screening_results_media_type,
|
14
|
+
:screening_results_result_type,
|
15
|
+
:result_url
|
16
|
+
should_have_attr_reader :data
|
17
|
+
|
18
|
+
context "#new" do
|
19
|
+
context "error response" do
|
20
|
+
subject { Response.new(TEST_ERROR_RESPONSE) }
|
21
|
+
|
22
|
+
should "have populated error attributes" do
|
23
|
+
assert_equal "x:error", subject.order_status
|
24
|
+
assert_equal "4", subject.error_code
|
25
|
+
assert_equal "Invalid username and/or password.",
|
26
|
+
subject.error_description
|
27
|
+
|
28
|
+
assert_equal "some_id_value", subject.reference_id
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
context "pending response" do
|
33
|
+
subject { Response.new(TEST_PENDING_RESPONSE) }
|
34
|
+
|
35
|
+
should "have populated order status" do
|
36
|
+
assert_equal "x:pending", subject.order_status
|
37
|
+
assert_equal "12358", subject.order_id
|
38
|
+
|
39
|
+
assert_equal "some_id_value", subject.reference_id
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context "callback response" do
|
44
|
+
subject { Response.new(TEST_CALLBACK_RESPONSE) }
|
45
|
+
|
46
|
+
should "have a result status and result info" do
|
47
|
+
assert_equal "x:ready", subject.order_status
|
48
|
+
assert_equal "Pass", subject.result_status
|
49
|
+
assert_equal "FALSE", subject.order_status_flag
|
50
|
+
assert_equal "result", subject.screening_results_type
|
51
|
+
assert_equal "html", subject.screening_results_media_type
|
52
|
+
assert_equal "report", subject.screening_results_result_type
|
53
|
+
assert_equal "display.php", subject.result_url
|
54
|
+
|
55
|
+
assert_equal "username", subject.user_id
|
56
|
+
assert_equal "password", subject.password
|
57
|
+
|
58
|
+
assert_equal "12358", subject.order_id
|
59
|
+
assert_equal "some_id_value", subject.reference_id
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module BluelineServices
|
4
|
+
module Screening
|
5
|
+
class CriminalCountyTest < Test::Unit::TestCase
|
6
|
+
|
7
|
+
should_have_attr_accessor :region, :county
|
8
|
+
should_call_builder_with(:type => "criminal", :qualifier => "county")
|
9
|
+
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module BluelineServices
|
4
|
+
module Screening
|
5
|
+
class CriminalFederalTest < Test::Unit::TestCase
|
6
|
+
|
7
|
+
should_have_attr_accessor :region, :district
|
8
|
+
should_call_builder_with(:type => "criminal", :qualifier => "federal")
|
9
|
+
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ScreenUsingModel
|
4
|
+
include BluelineServices::Screening::Model
|
5
|
+
|
6
|
+
attr_accessor :a, :b, :c
|
7
|
+
|
8
|
+
end
|
9
|
+
|
10
|
+
module BluelineServices
|
11
|
+
module Screening
|
12
|
+
class ModelTest < Test::Unit::TestCase
|
13
|
+
subject { ScreenUsingModel.new }
|
14
|
+
|
15
|
+
context "#to_xml" do
|
16
|
+
should "call as_xml and to_xml on that object" do
|
17
|
+
xml = "<a>woot</a>"
|
18
|
+
subject.expects(:as_xml).returns(mock(:to_xml => xml))
|
19
|
+
assert_equal xml, subject.to_xml
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context "#builder" do
|
24
|
+
should "build a Screening xml node with supplied attributes" do
|
25
|
+
node = mock
|
26
|
+
attributes = {:a => "a"}
|
27
|
+
Nokogiri::XML::Builder.any_instance.expects(:Screening).
|
28
|
+
with(attributes)
|
29
|
+
Nokogiri::XML::Builder.any_instance.expects(:parent => mock(
|
30
|
+
:root => node))
|
31
|
+
assert_equal node, subject.builder(attributes)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
metadata
ADDED
@@ -0,0 +1,229 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: blueline_services
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 17
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 5
|
10
|
+
version: 0.1.5
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Jon Karna
|
14
|
+
- Ed Lebert
|
15
|
+
autorequire:
|
16
|
+
bindir: bin
|
17
|
+
cert_chain: []
|
18
|
+
|
19
|
+
date: 2012-05-01 00:00:00 Z
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
32
|
+
requirement: *id001
|
33
|
+
name: httparty
|
34
|
+
type: :runtime
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
46
|
+
requirement: *id002
|
47
|
+
name: nokogiri
|
48
|
+
type: :runtime
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
59
|
+
version: "0"
|
60
|
+
requirement: *id003
|
61
|
+
name: activesupport
|
62
|
+
type: :runtime
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
hash: 3
|
71
|
+
segments:
|
72
|
+
- 0
|
73
|
+
version: "0"
|
74
|
+
requirement: *id004
|
75
|
+
name: i18n
|
76
|
+
type: :runtime
|
77
|
+
- !ruby/object:Gem::Dependency
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
80
|
+
none: false
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
hash: 3
|
85
|
+
segments:
|
86
|
+
- 0
|
87
|
+
version: "0"
|
88
|
+
requirement: *id005
|
89
|
+
name: pry
|
90
|
+
type: :development
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
hash: 3
|
99
|
+
segments:
|
100
|
+
- 0
|
101
|
+
version: "0"
|
102
|
+
requirement: *id006
|
103
|
+
name: rake
|
104
|
+
type: :development
|
105
|
+
- !ruby/object:Gem::Dependency
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
108
|
+
none: false
|
109
|
+
requirements:
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
hash: 3
|
113
|
+
segments:
|
114
|
+
- 0
|
115
|
+
version: "0"
|
116
|
+
requirement: *id007
|
117
|
+
name: shoulda
|
118
|
+
type: :development
|
119
|
+
- !ruby/object:Gem::Dependency
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
hash: 3
|
127
|
+
segments:
|
128
|
+
- 0
|
129
|
+
version: "0"
|
130
|
+
requirement: *id008
|
131
|
+
name: mocha
|
132
|
+
type: :development
|
133
|
+
description: |-
|
134
|
+
The blueline_services gem is a ruby gem used for
|
135
|
+
submitting background check requests to Blueline Services
|
136
|
+
email:
|
137
|
+
- jon.karna@tstmedia.com
|
138
|
+
- ed.lebert@tstmedia.com
|
139
|
+
executables: []
|
140
|
+
|
141
|
+
extensions: []
|
142
|
+
|
143
|
+
extra_rdoc_files: []
|
144
|
+
|
145
|
+
files:
|
146
|
+
- .gitignore
|
147
|
+
- Gemfile
|
148
|
+
- Gemfile.lock
|
149
|
+
- README.md
|
150
|
+
- Rakefile
|
151
|
+
- blueline_services.gemspec
|
152
|
+
- lib/blueline_services.rb
|
153
|
+
- lib/blueline_services/configuration.rb
|
154
|
+
- lib/blueline_services/dsl.rb
|
155
|
+
- lib/blueline_services/person_name.rb
|
156
|
+
- lib/blueline_services/request.rb
|
157
|
+
- lib/blueline_services/response.rb
|
158
|
+
- lib/blueline_services/screening/civil_county.rb
|
159
|
+
- lib/blueline_services/screening/credit.rb
|
160
|
+
- lib/blueline_services/screening/criminal_county.rb
|
161
|
+
- lib/blueline_services/screening/criminal_federal.rb
|
162
|
+
- lib/blueline_services/screening/criminal_security.rb
|
163
|
+
- lib/blueline_services/screening/criminal_state.rb
|
164
|
+
- lib/blueline_services/screening/eviction.rb
|
165
|
+
- lib/blueline_services/screening/model.rb
|
166
|
+
- lib/blueline_services/screening/person_search.rb
|
167
|
+
- lib/blueline_services/version.rb
|
168
|
+
- test/integration/initial_request_test.rb
|
169
|
+
- test/test-updated.xml
|
170
|
+
- test/test_helper.rb
|
171
|
+
- test/unit/request_test.rb
|
172
|
+
- test/unit/response_test.rb
|
173
|
+
- test/unit/screening/civil_county_test.rb
|
174
|
+
- test/unit/screening/credit_test.rb
|
175
|
+
- test/unit/screening/criminal_county_test.rb
|
176
|
+
- test/unit/screening/criminal_federal_test.rb
|
177
|
+
- test/unit/screening/criminal_security_test.rb
|
178
|
+
- test/unit/screening/criminal_state_test.rb
|
179
|
+
- test/unit/screening/eviction_test.rb
|
180
|
+
- test/unit/screening/model_test.rb
|
181
|
+
- test/unit/screening/person_search_test.rb
|
182
|
+
homepage: ""
|
183
|
+
licenses: []
|
184
|
+
|
185
|
+
post_install_message:
|
186
|
+
rdoc_options: []
|
187
|
+
|
188
|
+
require_paths:
|
189
|
+
- lib
|
190
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
191
|
+
none: false
|
192
|
+
requirements:
|
193
|
+
- - ">="
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
hash: 3
|
196
|
+
segments:
|
197
|
+
- 0
|
198
|
+
version: "0"
|
199
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
200
|
+
none: false
|
201
|
+
requirements:
|
202
|
+
- - ">="
|
203
|
+
- !ruby/object:Gem::Version
|
204
|
+
hash: 3
|
205
|
+
segments:
|
206
|
+
- 0
|
207
|
+
version: "0"
|
208
|
+
requirements: []
|
209
|
+
|
210
|
+
rubyforge_project: blueline_services
|
211
|
+
rubygems_version: 1.8.15
|
212
|
+
signing_key:
|
213
|
+
specification_version: 3
|
214
|
+
summary: Submit background checks to Blueline Services
|
215
|
+
test_files:
|
216
|
+
- test/integration/initial_request_test.rb
|
217
|
+
- test/test-updated.xml
|
218
|
+
- test/test_helper.rb
|
219
|
+
- test/unit/request_test.rb
|
220
|
+
- test/unit/response_test.rb
|
221
|
+
- test/unit/screening/civil_county_test.rb
|
222
|
+
- test/unit/screening/credit_test.rb
|
223
|
+
- test/unit/screening/criminal_county_test.rb
|
224
|
+
- test/unit/screening/criminal_federal_test.rb
|
225
|
+
- test/unit/screening/criminal_security_test.rb
|
226
|
+
- test/unit/screening/criminal_state_test.rb
|
227
|
+
- test/unit/screening/eviction_test.rb
|
228
|
+
- test/unit/screening/model_test.rb
|
229
|
+
- test/unit/screening/person_search_test.rb
|