ssci_inc 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +26 -0
- data/.octopolo.yml +2 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +22 -0
- data/CHANGELOG.markdown +0 -0
- data/Gemfile +3 -0
- data/README.md +66 -0
- data/Rakefile +26 -0
- data/lib/ssci_inc/configuration.rb +62 -0
- data/lib/ssci_inc/dsl.rb +30 -0
- data/lib/ssci_inc/person_name.rb +29 -0
- data/lib/ssci_inc/request.rb +196 -0
- data/lib/ssci_inc/response.rb +44 -0
- data/lib/ssci_inc/screening/civil_county.rb +17 -0
- data/lib/ssci_inc/screening/credit.rb +16 -0
- data/lib/ssci_inc/screening/criminal_county.rb +17 -0
- data/lib/ssci_inc/screening/criminal_federal.rb +17 -0
- data/lib/ssci_inc/screening/criminal_security.rb +12 -0
- data/lib/ssci_inc/screening/criminal_state.rb +16 -0
- data/lib/ssci_inc/screening/eviction.rb +16 -0
- data/lib/ssci_inc/screening/model.rb +27 -0
- data/lib/ssci_inc/screening/person_search.rb +16 -0
- data/lib/ssci_inc/version.rb +3 -0
- data/lib/ssci_inc.rb +19 -0
- data/ssci_inc.gemspec +32 -0
- data/test/integration/initial_request_test.rb +21 -0
- data/test/test-updated.xml +113 -0
- data/test/test_helper.rb +120 -0
- data/test/unit/request_test.rb +93 -0
- data/test/unit/response_test.rb +68 -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 +233 -0
data/lib/ssci_inc.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'active_support/all'
|
2
|
+
require 'nokogiri'
|
3
|
+
require 'httparty'
|
4
|
+
|
5
|
+
require 'ssci_inc/configuration'
|
6
|
+
require 'ssci_inc/dsl'
|
7
|
+
require 'ssci_inc/person_name'
|
8
|
+
require 'ssci_inc/request'
|
9
|
+
require 'ssci_inc/response'
|
10
|
+
|
11
|
+
require 'ssci_inc/screening/model'
|
12
|
+
require 'ssci_inc/screening/civil_county'
|
13
|
+
require 'ssci_inc/screening/credit'
|
14
|
+
require 'ssci_inc/screening/criminal_county'
|
15
|
+
require 'ssci_inc/screening/criminal_federal'
|
16
|
+
require 'ssci_inc/screening/criminal_security'
|
17
|
+
require 'ssci_inc/screening/criminal_state'
|
18
|
+
require 'ssci_inc/screening/eviction'
|
19
|
+
require 'ssci_inc/screening/person_search'
|
data/ssci_inc.gemspec
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "ssci_inc/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "ssci_inc"
|
7
|
+
s.version = SsciInc::VERSION
|
8
|
+
s.authors = ["Jon Karna", "Jon Alme"]
|
9
|
+
s.email = ["jon.karna@sportsengine.com", "jonathan.alme@sportsengine.com"]
|
10
|
+
s.homepage = ""
|
11
|
+
s.summary = %q{Submit background checks to SSCI, Inc}
|
12
|
+
s.description = %q{The ssci_inc gem is a ruby gem used for
|
13
|
+
submitting background check requests to SSCI}
|
14
|
+
|
15
|
+
s.rubyforge_project = "ssci_inc"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
|
22
|
+
s.add_runtime_dependency "httparty"
|
23
|
+
s.add_runtime_dependency "nokogiri"
|
24
|
+
s.add_runtime_dependency "activesupport", ['> 3.0.0', '< 5.0']
|
25
|
+
s.add_runtime_dependency "i18n"
|
26
|
+
|
27
|
+
s.add_development_dependency "pry"
|
28
|
+
s.add_development_dependency "rake"
|
29
|
+
s.add_development_dependency "shoulda", "~> 3.0"
|
30
|
+
s.add_development_dependency "mocha", "~> 0.10"
|
31
|
+
s.add_development_dependency "test-unit"
|
32
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module SsciInc
|
4
|
+
class InitialRequestTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
context "#submit" do
|
7
|
+
context "with no credentials" do
|
8
|
+
subject { Request.new(user_name: 'test') }
|
9
|
+
|
10
|
+
should "get an error response" do
|
11
|
+
response = subject.submit
|
12
|
+
assert_equal "x:error", response.order_status
|
13
|
+
assert_equal "120", response.error_code
|
14
|
+
assert_equal "Invalid login transaction. Bad credentials.",
|
15
|
+
response.error_description
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,113 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<BackgroundCheck password="" userId="">
|
3
|
+
<BackgroundSearchPackage action="submit" type="TST Media">
|
4
|
+
<ReferenceId>112233</ReferenceId>
|
5
|
+
<Reference>ABC Company Inc.</Reference>
|
6
|
+
<PersonalData>
|
7
|
+
<EmailAddresss></EmailAddresss>
|
8
|
+
<Telephone></Telephone>
|
9
|
+
<PersonName>
|
10
|
+
<GivenName>HANK</GivenName>
|
11
|
+
<MiddleName></MiddleName>
|
12
|
+
<FamilyName>MESS</FamilyName>
|
13
|
+
</PersonName>
|
14
|
+
<DemographicDetail>
|
15
|
+
<GovernmentId countryCode="US" issuingAuthority="SSN">333-22-1111</GovernmentId>
|
16
|
+
</DemographicDetail>
|
17
|
+
<PostalAddress>
|
18
|
+
<CountryCode>US</CountryCode>
|
19
|
+
<PostalCode>60750</PostalCode>
|
20
|
+
<Region>IL</Region>
|
21
|
+
<Municipality>FANTASY ISLAND</Municipality>
|
22
|
+
<DeliveryAddress>
|
23
|
+
<AddressLine>899</AddressLine>
|
24
|
+
<StreetName>LINCOLN RD</StreetName>
|
25
|
+
</DeliveryAddress>
|
26
|
+
</PostalAddress>
|
27
|
+
</PersonalData>
|
28
|
+
<Screenings useConfigurationDefaults="no">
|
29
|
+
<!-- Person Search / SSN verification -->
|
30
|
+
<Screening type="personsearch">
|
31
|
+
</Screening>
|
32
|
+
<!-- County Criminal -->
|
33
|
+
<Screening type="criminal" qualifier="county">
|
34
|
+
</Screening>
|
35
|
+
<!-- Federal Criminal -->
|
36
|
+
<Screening type="criminal" qualifier="federal">
|
37
|
+
</Screening>
|
38
|
+
<!-- Instant Nationwide DB check -->
|
39
|
+
<Screening type="criminal" qualifier="national">
|
40
|
+
</Screening>
|
41
|
+
<!-- Manual Statewide Criminal -->
|
42
|
+
<Screening type="criminal" qualifier="statewide">
|
43
|
+
</Screening>
|
44
|
+
<!-- Employment Verification -->
|
45
|
+
<Screening type="employment" verify="yes">
|
46
|
+
<OrganizationName>Burger Shack</OrganizationName>
|
47
|
+
<Title>Fry Cook</Title>
|
48
|
+
<StartDate>2005-05-05</StartDate>
|
49
|
+
<EndDate>2005-06-16</EndDate>
|
50
|
+
<Compensation>6.50/hr</Compensation>
|
51
|
+
<ContactInfo>
|
52
|
+
<PersonName>
|
53
|
+
<FormattedName>Susan Boss</FormattedName>
|
54
|
+
</PersonName>
|
55
|
+
<Telephone>801-123-4567</Telephone>
|
56
|
+
<Fax>801-999-9999</Fax>
|
57
|
+
<EmailAddress>susan@example.com</EmailAddress>
|
58
|
+
<PostalAddress>
|
59
|
+
<PostalCode>84020</PostalCode>
|
60
|
+
<Region>UT</Region>
|
61
|
+
<Municipality>Draper</Municipality>
|
62
|
+
<DeliveryAddress>
|
63
|
+
<AddressLine>1192</AddressLine>
|
64
|
+
<StreetName>Draper Parkway #401</StreetName>
|
65
|
+
</DeliveryAddress>
|
66
|
+
</PostalAddress>
|
67
|
+
</ContactInfo>
|
68
|
+
</Screening>
|
69
|
+
<!-- Education Verification -->
|
70
|
+
<Screening type="education">
|
71
|
+
<Region>UT</Region>
|
72
|
+
<EducationHistory>
|
73
|
+
<SchoolOrInstitution schoolType="university">
|
74
|
+
<SchoolName>UNIVERSITY OF UTAH</SchoolName>
|
75
|
+
<LocationSummary>
|
76
|
+
<Municipality>SALT LAKE CITY</Municipality>
|
77
|
+
<Region>UT</Region>
|
78
|
+
</LocationSummary>
|
79
|
+
<Degree degreeType="bachelors">
|
80
|
+
<DegreeName>COMMUNICATIONS</DegreeName>
|
81
|
+
</Degree>
|
82
|
+
<DatesOfAttendance>
|
83
|
+
<StartDate>
|
84
|
+
<StringDate>2002-09 TO 2006-01</StringDate>
|
85
|
+
</StartDate>
|
86
|
+
</DatesOfAttendance>
|
87
|
+
</SchoolOrInstitution>
|
88
|
+
</EducationHistory>
|
89
|
+
</Screening>
|
90
|
+
<!-- Instant Driving Records -->
|
91
|
+
<Screening type="license" qualifier="imvPersonal">
|
92
|
+
<Region>UT</Region>
|
93
|
+
<SearchLicense>
|
94
|
+
<License>
|
95
|
+
<LicenseNumber>123456789</LicenseNumber>
|
96
|
+
<LicensingAgency>UT</LicensingAgency>
|
97
|
+
<LicenseName>mvPersonal</LicenseName>
|
98
|
+
</License>
|
99
|
+
</SearchLicense>
|
100
|
+
</Screening>
|
101
|
+
|
102
|
+
<AdditionalItems type="x:postback_username">
|
103
|
+
<Text>user</Text>
|
104
|
+
</AdditionalItems>
|
105
|
+
<AdditionalItems type="x:postback_password">
|
106
|
+
<Text>secret</Text>
|
107
|
+
</AdditionalItems>
|
108
|
+
<AdditionalItems type="x:postback_url">
|
109
|
+
<Text>http://127.0.0.1/listen.php</Text>
|
110
|
+
</AdditionalItems>
|
111
|
+
</Screenings>
|
112
|
+
</BackgroundSearchPackage>
|
113
|
+
</BackgroundCheck>
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,120 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'shoulda'
|
4
|
+
require 'mocha'
|
5
|
+
require 'ssci_inc'
|
6
|
+
|
7
|
+
class Test::Unit::TestCase
|
8
|
+
|
9
|
+
def self.should_have_attr_accessor(*args)
|
10
|
+
should "have attr_accessor for #{args.inspect}" do
|
11
|
+
args.each do |a|
|
12
|
+
assert_respond_to subject, a
|
13
|
+
assert_respond_to subject, "#{a}="
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.should_have_attr_reader(*args)
|
19
|
+
should "have attr_reader for #{args.inspect}" do
|
20
|
+
args.each do |a|
|
21
|
+
assert_respond_to subject, a
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.should_call_builder_with(*args)
|
27
|
+
should "should set type and qualifier attributes" do
|
28
|
+
node = mock
|
29
|
+
subject.expects(:builder).
|
30
|
+
with(*args).
|
31
|
+
returns(node)
|
32
|
+
assert_equal node, subject.as_xml
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def assert_xml_attr_equal(node, method_name, attribute_name=method_name)
|
37
|
+
assert_equal subject.send(method_name).to_s,
|
38
|
+
node.at("//@#{attribute_name}").value
|
39
|
+
end
|
40
|
+
|
41
|
+
def assert_xml_text_equal(node, method_name, attribute_name=method_name.to_s.camelize)
|
42
|
+
expected = subject.send(method_name).to_s
|
43
|
+
actual = node.at("//#{attribute_name}").try(:text).to_s
|
44
|
+
#puts "for #{method_name}, assert_equal #{expected}, #{actual}"
|
45
|
+
assert_equal expected, actual
|
46
|
+
end
|
47
|
+
|
48
|
+
TEST_HASH = {
|
49
|
+
:user_name => "username",
|
50
|
+
:password => "password",
|
51
|
+
:type => "My Package",
|
52
|
+
:reference_id => 112233,
|
53
|
+
:reference => "ABC Company Inc.",
|
54
|
+
:given_name => "HANK",
|
55
|
+
:family_name => "MESS",
|
56
|
+
:ssn => "333-22-1111",
|
57
|
+
:date_of_birth => "1960-01-01",
|
58
|
+
:country_code => "US",
|
59
|
+
:postal_code => "60750",
|
60
|
+
:region => "IL",
|
61
|
+
:municipality => "FANTASY ISLAND",
|
62
|
+
:address_line => 899,
|
63
|
+
:street_name => "LINCOLN RD",
|
64
|
+
:postback_url => "http://127.0.0.1/listen.php",
|
65
|
+
:postback_username => "user",
|
66
|
+
:postback_password => "secret",
|
67
|
+
:use_defaults => true
|
68
|
+
}
|
69
|
+
|
70
|
+
TEST_ERROR_RESPONSE = %Q{
|
71
|
+
<BackgroundReports>
|
72
|
+
<BackgroundReportPackage>
|
73
|
+
<ReferenceId>some_id_value</ReferenceId>
|
74
|
+
<Reference>ABC Company Inc.</Reference>
|
75
|
+
<ScreeningStatus>
|
76
|
+
<OrderStatus>x:error</OrderStatus>
|
77
|
+
</ScreeningStatus>
|
78
|
+
<ErrorReport>
|
79
|
+
<ErrorCode>4</ErrorCode>
|
80
|
+
<ErrorDescription>Invalid username and/or password.</ErrorDescription>
|
81
|
+
</ErrorReport>
|
82
|
+
</BackgroundReportPackage>
|
83
|
+
</BackgroundReports>
|
84
|
+
}
|
85
|
+
|
86
|
+
TEST_PENDING_RESPONSE = %Q{
|
87
|
+
<BackgroundReports>
|
88
|
+
<BackgroundReportPackage>
|
89
|
+
<ReferenceId>some_id_value</ReferenceId>
|
90
|
+
<Reference>ABC Company Inc.</Reference>
|
91
|
+
<OrderId>12358</OrderId>
|
92
|
+
<ScreeningStatus>
|
93
|
+
<OrderStatus>x:pending</OrderStatus>
|
94
|
+
</ScreeningStatus>
|
95
|
+
</BackgroundReportPackage>
|
96
|
+
</BackgroundReports>
|
97
|
+
}
|
98
|
+
|
99
|
+
TEST_CALLBACK_RESPONSE = %Q{
|
100
|
+
<BackgroundReports userId="username" password="password">
|
101
|
+
<BackgroundReportPackage>
|
102
|
+
<ReferenceId>some_id_value</ReferenceId>
|
103
|
+
<Reference>ABC Company Inc.</Reference>
|
104
|
+
<OrderId>12358</OrderId>
|
105
|
+
<ScreeningStatus>
|
106
|
+
<OrderStatus flag="FALSE">x:ready</OrderStatus>
|
107
|
+
<ResultStatus>Pass</ResultStatus>
|
108
|
+
</ScreeningStatus>
|
109
|
+
<Screenings>
|
110
|
+
<Screening>
|
111
|
+
<ScreeningResults type="result" mediaType="html" resultType="report">
|
112
|
+
<InternetWebAddress>display.php</InternetWebAddress>
|
113
|
+
</ScreeningResults>
|
114
|
+
</Screening>
|
115
|
+
</Screenings>
|
116
|
+
</BackgroundReportPackage>
|
117
|
+
</BackgroundReports>
|
118
|
+
}
|
119
|
+
|
120
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module SsciInc
|
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, :ssn_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, :reference
|
34
|
+
assert_xml_text_equal root_node, :email_address
|
35
|
+
assert_xml_text_equal root_node, :telephone
|
36
|
+
assert_xml_text_equal root_node, :given_name
|
37
|
+
assert_xml_text_equal root_node, :middle_name
|
38
|
+
assert_xml_text_equal root_node, :family_name
|
39
|
+
assert_xml_text_equal root_node, :government_id
|
40
|
+
assert_xml_text_equal root_node, :date_of_birth
|
41
|
+
assert_xml_text_equal root_node, :country_code
|
42
|
+
assert_xml_text_equal root_node, :postal_code
|
43
|
+
assert_xml_text_equal root_node, :region
|
44
|
+
assert_xml_text_equal root_node, :municipality
|
45
|
+
assert_xml_text_equal root_node, :address_line
|
46
|
+
assert_xml_text_equal root_node, :street_name
|
47
|
+
|
48
|
+
item_nodes = root_node.xpath("//AdditionalItems")
|
49
|
+
subject.additional_items.each do |k,v|
|
50
|
+
next if v.nil?
|
51
|
+
attr_name = "x:#{k}"
|
52
|
+
item_node = item_nodes.at("[@type='#{attr_name}']")
|
53
|
+
assert_not_nil item_node
|
54
|
+
assert_equal v.to_s, item_node.at(".//Text").try(:text)
|
55
|
+
end
|
56
|
+
|
57
|
+
region = root_node.at("//Screening//Region").text
|
58
|
+
county = root_node.at("//Screening//County").text
|
59
|
+
assert_equal "WA", region
|
60
|
+
assert_equal "KING", county
|
61
|
+
|
62
|
+
alias_given_name = root_node.at("//Aliases//PersonName//GivenName").text
|
63
|
+
alias_family_name = root_node.at("//Aliases//PersonName//FamilyName").text
|
64
|
+
assert_equal "Steve", alias_given_name
|
65
|
+
assert_equal "Jobs", alias_family_name
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
context "#submit" do
|
70
|
+
should "send a post request and wrap the response" do
|
71
|
+
response = mock
|
72
|
+
request_xml = "request xml"
|
73
|
+
response_xml = "reponse_xml"
|
74
|
+
http_response = mock(:parsed_response => response_xml)
|
75
|
+
subject.expects(:to_xml).returns(request_xml)
|
76
|
+
HTTParty::Request.any_instance.stubs(perform: 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 :config, :base_uri, :user_name, :password
|
83
|
+
should_have_attr_accessor :action, :type, :reference_id, :reference
|
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, :ssn_country_code,
|
87
|
+
:issuing_authority, :date_of_birth, :country_code, :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,68 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module SsciInc
|
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
|
+
:reference, :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
|
+
assert_equal "ABC Company Inc.", subject.reference
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context "pending response" do
|
34
|
+
subject { Response.new(TEST_PENDING_RESPONSE) }
|
35
|
+
|
36
|
+
should "have populated order status" do
|
37
|
+
assert_equal "x:pending", subject.order_status
|
38
|
+
assert_equal "12358", subject.order_id
|
39
|
+
|
40
|
+
assert_equal "some_id_value", subject.reference_id
|
41
|
+
assert_equal "ABC Company Inc.", subject.reference
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
context "callback response" do
|
46
|
+
subject { Response.new(TEST_CALLBACK_RESPONSE) }
|
47
|
+
|
48
|
+
should "have a result status and result info" do
|
49
|
+
assert_equal "x:ready", subject.order_status
|
50
|
+
assert_equal "Pass", subject.result_status
|
51
|
+
assert_equal "FALSE", subject.order_status_flag
|
52
|
+
assert_equal "result", subject.screening_results_type
|
53
|
+
assert_equal "html", subject.screening_results_media_type
|
54
|
+
assert_equal "report", subject.screening_results_result_type
|
55
|
+
assert_equal "display.php", subject.result_url
|
56
|
+
|
57
|
+
assert_equal "username", subject.user_id
|
58
|
+
assert_equal "password", subject.password
|
59
|
+
|
60
|
+
assert_equal "12358", subject.order_id
|
61
|
+
assert_equal "some_id_value", subject.reference_id
|
62
|
+
assert_equal "ABC Company Inc.", subject.reference
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ScreenUsingModel
|
4
|
+
include SsciInc::Screening::Model
|
5
|
+
|
6
|
+
attr_accessor :a, :b, :c
|
7
|
+
|
8
|
+
end
|
9
|
+
|
10
|
+
module SsciInc
|
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
|