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.
Files changed (37) hide show
  1. data/.gitignore +3 -0
  2. data/Gemfile +3 -0
  3. data/Gemfile.lock +46 -0
  4. data/README.md +66 -0
  5. data/Rakefile +26 -0
  6. data/blueline_services.gemspec +31 -0
  7. data/lib/blueline_services.rb +19 -0
  8. data/lib/blueline_services/configuration.rb +54 -0
  9. data/lib/blueline_services/dsl.rb +30 -0
  10. data/lib/blueline_services/person_name.rb +29 -0
  11. data/lib/blueline_services/request.rb +155 -0
  12. data/lib/blueline_services/response.rb +43 -0
  13. data/lib/blueline_services/screening/civil_county.rb +17 -0
  14. data/lib/blueline_services/screening/credit.rb +16 -0
  15. data/lib/blueline_services/screening/criminal_county.rb +17 -0
  16. data/lib/blueline_services/screening/criminal_federal.rb +17 -0
  17. data/lib/blueline_services/screening/criminal_security.rb +12 -0
  18. data/lib/blueline_services/screening/criminal_state.rb +16 -0
  19. data/lib/blueline_services/screening/eviction.rb +16 -0
  20. data/lib/blueline_services/screening/model.rb +27 -0
  21. data/lib/blueline_services/screening/person_search.rb +16 -0
  22. data/lib/blueline_services/version.rb +3 -0
  23. data/test/integration/initial_request_test.rb +21 -0
  24. data/test/test-updated.xml +111 -0
  25. data/test/test_helper.rb +115 -0
  26. data/test/unit/request_test.rb +93 -0
  27. data/test/unit/response_test.rb +65 -0
  28. data/test/unit/screening/civil_county_test.rb +12 -0
  29. data/test/unit/screening/credit_test.rb +12 -0
  30. data/test/unit/screening/criminal_county_test.rb +12 -0
  31. data/test/unit/screening/criminal_federal_test.rb +12 -0
  32. data/test/unit/screening/criminal_security_test.rb +11 -0
  33. data/test/unit/screening/criminal_state_test.rb +12 -0
  34. data/test/unit/screening/eviction_test.rb +11 -0
  35. data/test/unit/screening/model_test.rb +37 -0
  36. data/test/unit/screening/person_search_test.rb +11 -0
  37. 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 CivilCountyTest < Test::Unit::TestCase
6
+
7
+ should_have_attr_accessor :region, :county
8
+ should_call_builder_with(:type => "civil", :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 CreditTest < Test::Unit::TestCase
6
+
7
+ should_have_attr_accessor :score, :fraud, :vendor
8
+ should_call_builder_with(:type => "credit")
9
+
10
+ end
11
+ end
12
+ 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,11 @@
1
+ require 'test_helper'
2
+
3
+ module BluelineServices
4
+ module Screening
5
+ class CriminalSecurityTest < Test::Unit::TestCase
6
+
7
+ should_call_builder_with(:type => "criminal", :qualifier => "security")
8
+
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ require 'test_helper'
2
+
3
+ module BluelineServices
4
+ module Screening
5
+ class CriminalStateTest < Test::Unit::TestCase
6
+
7
+ should_have_attr_accessor :region
8
+ should_call_builder_with(:type => "criminal", :qualifier => "statewide")
9
+
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ require 'test_helper'
2
+
3
+ module BluelineServices
4
+ module Screening
5
+ class EvictionTest < Test::Unit::TestCase
6
+
7
+ should_have_attr_accessor :region
8
+
9
+ end
10
+ end
11
+ 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
@@ -0,0 +1,11 @@
1
+ require 'test_helper'
2
+
3
+ module BluelineServices
4
+ module Screening
5
+ class PersonSearchTest < Test::Unit::TestCase
6
+
7
+ should_have_attr_accessor :vendor
8
+
9
+ end
10
+ end
11
+ 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