checkr-official 1.0.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 (62) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +5 -0
  3. data/.travis.yml +16 -0
  4. data/Gemfile +8 -0
  5. data/History.txt +4 -0
  6. data/README.md +58 -0
  7. data/Rakefile +14 -0
  8. data/VERSION +1 -0
  9. data/bin/checkr-console +7 -0
  10. data/checkr-official.gemspec +28 -0
  11. data/gemfiles/default-with-activesupport.gemfile +10 -0
  12. data/gemfiles/json.gemfile +12 -0
  13. data/gemfiles/yajl.gemfile +12 -0
  14. data/lib/checkr.rb +241 -0
  15. data/lib/checkr/api_class.rb +395 -0
  16. data/lib/checkr/api_list.rb +78 -0
  17. data/lib/checkr/api_resource.rb +18 -0
  18. data/lib/checkr/api_singleton.rb +5 -0
  19. data/lib/checkr/candidate.rb +35 -0
  20. data/lib/checkr/county_criminal_search.rb +19 -0
  21. data/lib/checkr/document.rb +13 -0
  22. data/lib/checkr/document_list.rb +25 -0
  23. data/lib/checkr/errors/api_connection_error.rb +4 -0
  24. data/lib/checkr/errors/api_error.rb +10 -0
  25. data/lib/checkr/errors/authentication_error.rb +4 -0
  26. data/lib/checkr/errors/checkr_error.rb +20 -0
  27. data/lib/checkr/errors/invalid_request_error.rb +10 -0
  28. data/lib/checkr/geo.rb +19 -0
  29. data/lib/checkr/motor_vehicle_report.rb +31 -0
  30. data/lib/checkr/national_criminal_search.rb +17 -0
  31. data/lib/checkr/report.rb +43 -0
  32. data/lib/checkr/report_list.rb +27 -0
  33. data/lib/checkr/sex_offender_search.rb +18 -0
  34. data/lib/checkr/ssn_trace.rb +18 -0
  35. data/lib/checkr/subscription.rb +27 -0
  36. data/lib/checkr/terrorist_watchlist_search.rb +17 -0
  37. data/lib/checkr/util.rb +91 -0
  38. data/lib/checkr/version.rb +3 -0
  39. data/mclovin.jpg +0 -0
  40. data/tasks/api_test.rb +192 -0
  41. data/test/checkr/api_class_test.rb +426 -0
  42. data/test/checkr/api_list_test.rb +27 -0
  43. data/test/checkr/api_resource_test.rb +28 -0
  44. data/test/checkr/api_singleton_test.rb +12 -0
  45. data/test/checkr/authentication_test.rb +50 -0
  46. data/test/checkr/candidate_test.rb +164 -0
  47. data/test/checkr/county_criminal_search_test.rb +82 -0
  48. data/test/checkr/document_test.rb +90 -0
  49. data/test/checkr/geo_test.rb +73 -0
  50. data/test/checkr/motor_vehicle_report_test.rb +130 -0
  51. data/test/checkr/national_criminal_search_test.rb +74 -0
  52. data/test/checkr/report_test.rb +124 -0
  53. data/test/checkr/sex_offender_search_test.rb +75 -0
  54. data/test/checkr/ssn_trace_test.rb +78 -0
  55. data/test/checkr/status_codes_test.rb +63 -0
  56. data/test/checkr/subscription_test.rb +96 -0
  57. data/test/checkr/terrorist_watchlist_search_test.rb +74 -0
  58. data/test/checkr/util_test.rb +50 -0
  59. data/test/mock_resource.rb +88 -0
  60. data/test/test_data.rb +413 -0
  61. data/test/test_helper.rb +43 -0
  62. metadata +230 -0
@@ -0,0 +1,73 @@
1
+ require File.expand_path('../../test_helper', __FILE__)
2
+
3
+ module Checkr
4
+ class GeoTest < Test::Unit::TestCase
5
+ setup do
6
+ @geo_url = "#{Checkr.api_base}/v1/geos"
7
+ end
8
+
9
+ context 'Geo class' do
10
+ should 'be retrieveable' do
11
+ id = "geo_id"
12
+ @mock.expects(:get).once.with("#{@geo_url}/#{id}", anything, anything).returns(test_response(test_geo))
13
+ geo = Geo.retrieve(id)
14
+ assert(geo.is_a?(Geo))
15
+ end
16
+
17
+ should 'be createable' do
18
+ @mock.expects(:post).once.with(@geo_url, anything, test_geo).returns(test_response(test_geo))
19
+ geo = Geo.create(test_geo)
20
+ assert(geo.is_a?(Geo))
21
+ assert_equal(test_geo[:id], geo.id)
22
+ end
23
+ end
24
+
25
+ context 'Geo instance' do
26
+ should 'be refreshable' do
27
+ @mock.expects(:get).once.with("#{@geo_url}/#{test_geo[:id]}", anything, anything).returns(test_response(test_geo))
28
+ geo = Geo.new(test_geo[:id])
29
+ geo.refresh
30
+ assert_equal(test_geo[:name], geo.name)
31
+ end
32
+ end
33
+
34
+
35
+ context 'Retrieved Geo instance' do
36
+ setup do
37
+ @mock.expects(:get).once.returns(test_response(test_geo))
38
+ @geo = Geo.retrieve('geo_id')
39
+ end
40
+
41
+ should 'have the id attribute' do
42
+ assert_equal(test_geo[:id], @geo.id)
43
+ end
44
+
45
+ should 'have the object attribute' do
46
+ assert_equal(test_geo[:object], @geo.object)
47
+ end
48
+
49
+ should 'have the uri attribute' do
50
+ assert_equal(test_geo[:uri], @geo.uri)
51
+ end
52
+
53
+ should 'have the created_at attribute' do
54
+ assert_equal(test_geo[:created_at], @geo.created_at)
55
+ end
56
+
57
+ should 'have the name attribute' do
58
+ assert_equal(test_geo[:name], @geo.name)
59
+ end
60
+
61
+ should 'have the state attribute' do
62
+ assert_equal(test_geo[:state], @geo.state)
63
+ end
64
+
65
+ end
66
+
67
+ should 'be registered' do
68
+ assert(APIClass.subclasses.include?(Geo))
69
+ assert_equal(Geo, APIClass.subclass_fetch("geo"))
70
+ end
71
+
72
+ end
73
+ end
@@ -0,0 +1,130 @@
1
+ require File.expand_path('../../test_helper', __FILE__)
2
+
3
+ module Checkr
4
+ class MotorVehicleReportTest < Test::Unit::TestCase
5
+ setup do
6
+ @motor_vehicle_report_url = "#{Checkr.api_base}/v1/motor_vehicle_reports"
7
+ end
8
+
9
+ context 'MotorVehicleReport class' do
10
+ should 'be retrieveable' do
11
+ id = "motor_vehicle_report_id"
12
+ @mock.expects(:get).once.with("#{@motor_vehicle_report_url}/#{id}", anything, anything).returns(test_response(test_motor_vehicle_report))
13
+ motor_vehicle_report = MotorVehicleReport.retrieve(id)
14
+ assert(motor_vehicle_report.is_a?(MotorVehicleReport))
15
+ end
16
+ end
17
+
18
+ context 'MotorVehicleReport instance' do
19
+ should 'be refreshable' do
20
+ @mock.expects(:get).once.with("#{@motor_vehicle_report_url}/#{test_motor_vehicle_report[:id]}", anything, anything).returns(test_response(test_motor_vehicle_report))
21
+ motor_vehicle_report = MotorVehicleReport.new(test_motor_vehicle_report[:id])
22
+ motor_vehicle_report.refresh
23
+ assert_equal(test_motor_vehicle_report[:status], motor_vehicle_report.status)
24
+ end
25
+ end
26
+
27
+
28
+ context 'Retrieved MotorVehicleReport instance' do
29
+ setup do
30
+ @mock.expects(:get).once.returns(test_response(test_motor_vehicle_report))
31
+ @motor_vehicle_report = MotorVehicleReport.retrieve('motor_vehicle_report_id')
32
+ end
33
+
34
+ should 'have the id attribute' do
35
+ assert_equal(test_motor_vehicle_report[:id], @motor_vehicle_report.id)
36
+ end
37
+
38
+ should 'have the object attribute' do
39
+ assert_equal(test_motor_vehicle_report[:object], @motor_vehicle_report.object)
40
+ end
41
+
42
+ should 'have the uri attribute' do
43
+ assert_equal(test_motor_vehicle_report[:uri], @motor_vehicle_report.uri)
44
+ end
45
+
46
+ should 'have the status attribute' do
47
+ assert_equal(test_motor_vehicle_report[:status], @motor_vehicle_report.status)
48
+ end
49
+
50
+ should 'have the created_at attribute' do
51
+ assert_equal(test_motor_vehicle_report[:created_at], @motor_vehicle_report.created_at)
52
+ end
53
+
54
+ should 'have the completed_at attribute' do
55
+ assert_equal(test_motor_vehicle_report[:completed_at], @motor_vehicle_report.completed_at)
56
+ end
57
+
58
+ should 'have the turnaround_time attribute' do
59
+ assert_equal(test_motor_vehicle_report[:turnaround_time], @motor_vehicle_report.turnaround_time)
60
+ end
61
+
62
+ should 'have the full_name attribute' do
63
+ assert_equal(test_motor_vehicle_report[:full_name], @motor_vehicle_report.full_name)
64
+ end
65
+
66
+ should 'have the license_number attribute' do
67
+ assert_equal(test_motor_vehicle_report[:license_number], @motor_vehicle_report.license_number)
68
+ end
69
+
70
+ should 'have the license_state attribute' do
71
+ assert_equal(test_motor_vehicle_report[:license_state], @motor_vehicle_report.license_state)
72
+ end
73
+
74
+ should 'have the previous_license_number attribute' do
75
+ assert_equal(test_motor_vehicle_report[:previous_license_number], @motor_vehicle_report.previous_license_number)
76
+ end
77
+
78
+ should 'have the previous_license_state attribute' do
79
+ assert_equal(test_motor_vehicle_report[:previous_license_state], @motor_vehicle_report.previous_license_state)
80
+ end
81
+
82
+ should 'have the license_status attribute' do
83
+ assert_equal(test_motor_vehicle_report[:license_status], @motor_vehicle_report.license_status)
84
+ end
85
+
86
+ should 'have the license_type attribute' do
87
+ assert_equal(test_motor_vehicle_report[:license_type], @motor_vehicle_report.license_type)
88
+ end
89
+
90
+ should 'have the license_class attribute' do
91
+ assert_equal(test_motor_vehicle_report[:license_class], @motor_vehicle_report.license_class)
92
+ end
93
+
94
+ should 'have the expiration_date attribute' do
95
+ assert_equal(test_motor_vehicle_report[:expiration_date], @motor_vehicle_report.expiration_date)
96
+ end
97
+
98
+ should 'have the issued_date attribute' do
99
+ assert_equal(test_motor_vehicle_report[:issued_date], @motor_vehicle_report.issued_date)
100
+ end
101
+
102
+ should 'have the first_issued_date attribute' do
103
+ assert_equal(test_motor_vehicle_report[:first_issued_date], @motor_vehicle_report.first_issued_date)
104
+ end
105
+
106
+ should 'have the inferred_issued_date attribute' do
107
+ assert_equal(test_motor_vehicle_report[:inferred_issued_date], @motor_vehicle_report.inferred_issued_date)
108
+ end
109
+
110
+ should 'have the restrictions attribute' do
111
+ assert_equal(test_motor_vehicle_report[:restrictions], @motor_vehicle_report.restrictions)
112
+ end
113
+
114
+ should 'have the accidents attribute' do
115
+ assert_equal(test_motor_vehicle_report[:accidents], @motor_vehicle_report.accidents)
116
+ end
117
+
118
+ should 'have the violations attribute' do
119
+ assert_equal(test_motor_vehicle_report[:violations], @motor_vehicle_report.violations)
120
+ end
121
+
122
+ end
123
+
124
+ should 'be registered' do
125
+ assert(APIClass.subclasses.include?(MotorVehicleReport))
126
+ assert_equal(MotorVehicleReport, APIClass.subclass_fetch("motor_vehicle_report"))
127
+ end
128
+
129
+ end
130
+ end
@@ -0,0 +1,74 @@
1
+ require File.expand_path('../../test_helper', __FILE__)
2
+
3
+ module Checkr
4
+ class NationalCriminalSearchTest < Test::Unit::TestCase
5
+ setup do
6
+ @national_criminal_search_url = "#{Checkr.api_base}/v1/national_criminal_searches"
7
+ end
8
+
9
+ context 'NationalCriminalSearch class' do
10
+ should 'be retrieveable' do
11
+ id = "national_criminal_search_id"
12
+ @mock.expects(:get).once.with("#{@national_criminal_search_url}/#{id}", anything, anything).returns(test_response(test_national_criminal_search))
13
+ national_criminal_search = NationalCriminalSearch.retrieve(id)
14
+ assert(national_criminal_search.is_a?(NationalCriminalSearch))
15
+ end
16
+ end
17
+
18
+ context 'NationalCriminalSearch instance' do
19
+ should 'be refreshable' do
20
+ @mock.expects(:get).once.with("#{@national_criminal_search_url}/#{test_national_criminal_search[:id]}", anything, anything).returns(test_response(test_national_criminal_search))
21
+ national_criminal_search = NationalCriminalSearch.new(test_national_criminal_search[:id])
22
+ national_criminal_search.refresh
23
+ assert_equal(test_national_criminal_search[:status], national_criminal_search.status)
24
+ end
25
+ end
26
+
27
+
28
+ context 'Retrieved NationalCriminalSearch instance' do
29
+ setup do
30
+ @mock.expects(:get).once.returns(test_response(test_national_criminal_search))
31
+ @national_criminal_search = NationalCriminalSearch.retrieve('national_criminal_search_id')
32
+ end
33
+
34
+ should 'have the id attribute' do
35
+ assert_equal(test_national_criminal_search[:id], @national_criminal_search.id)
36
+ end
37
+
38
+ should 'have the object attribute' do
39
+ assert_equal(test_national_criminal_search[:object], @national_criminal_search.object)
40
+ end
41
+
42
+ should 'have the uri attribute' do
43
+ assert_equal(test_national_criminal_search[:uri], @national_criminal_search.uri)
44
+ end
45
+
46
+ should 'have the status attribute' do
47
+ assert_equal(test_national_criminal_search[:status], @national_criminal_search.status)
48
+ end
49
+
50
+ should 'have the created_at attribute' do
51
+ assert_equal(test_national_criminal_search[:created_at], @national_criminal_search.created_at)
52
+ end
53
+
54
+ should 'have the completed_at attribute' do
55
+ assert_equal(test_national_criminal_search[:completed_at], @national_criminal_search.completed_at)
56
+ end
57
+
58
+ should 'have the turnaround_time attribute' do
59
+ assert_equal(test_national_criminal_search[:turnaround_time], @national_criminal_search.turnaround_time)
60
+ end
61
+
62
+ should 'have the records attribute' do
63
+ assert_equal(test_national_criminal_search[:records], @national_criminal_search.records)
64
+ end
65
+
66
+ end
67
+
68
+ should 'be registered' do
69
+ assert(APIClass.subclasses.include?(NationalCriminalSearch))
70
+ assert_equal(NationalCriminalSearch, APIClass.subclass_fetch("national_criminal_search"))
71
+ end
72
+
73
+ end
74
+ end
@@ -0,0 +1,124 @@
1
+ require File.expand_path('../../test_helper', __FILE__)
2
+
3
+ module Checkr
4
+ class ReportTest < Test::Unit::TestCase
5
+ setup do
6
+ @report_url = "#{Checkr.api_base}/v1/reports"
7
+ end
8
+
9
+ context 'Report class' do
10
+ should 'be retrieveable' do
11
+ id = "report_id"
12
+ @mock.expects(:get).once.with("#{@report_url}/#{id}", anything, anything).returns(test_response(test_report))
13
+ report = Report.retrieve(id)
14
+ assert(report.is_a?(Report))
15
+ end
16
+
17
+ should 'be createable' do
18
+ @mock.expects(:post).once.with(@report_url, anything, test_report).returns(test_response(test_report))
19
+ report = Report.create(test_report)
20
+ assert(report.is_a?(Report))
21
+ assert_equal(test_report[:id], report.id)
22
+ end
23
+ end
24
+
25
+ context 'Report instance' do
26
+ should 'be refreshable' do
27
+ @mock.expects(:get).once.with("#{@report_url}/#{test_report[:id]}", anything, anything).returns(test_response(test_report))
28
+ report = Report.new(test_report[:id])
29
+ report.refresh
30
+ assert_equal(test_report[:package], report.package)
31
+ end
32
+
33
+ should 'be updateable' do
34
+ report = Report.new(test_report)
35
+ report.package = "driver_plus"
36
+
37
+ @mock.expects(:post).once.with do |url, headers, params|
38
+ params == report.changed_attributes && url == "#{@report_url}/#{report.id}"
39
+ end.returns(test_response(test_report))
40
+
41
+ # This should update this instance with test_report since it was returned
42
+ report.save
43
+ assert_equal(test_report[:package], report.package)
44
+ end
45
+ end
46
+
47
+
48
+ context 'Retrieved Report instance' do
49
+ setup do
50
+ @mock.expects(:get).once.returns(test_response(test_report))
51
+ @report = Report.retrieve('report_id')
52
+ end
53
+
54
+ should 'have the id attribute' do
55
+ assert_equal(test_report[:id], @report.id)
56
+ end
57
+
58
+ should 'have the object attribute' do
59
+ assert_equal(test_report[:object], @report.object)
60
+ end
61
+
62
+ should 'have the uri attribute' do
63
+ assert_equal(test_report[:uri], @report.uri)
64
+ end
65
+
66
+ should 'have the status attribute' do
67
+ assert_equal(test_report[:status], @report.status)
68
+ end
69
+
70
+ should 'have the created_at attribute' do
71
+ assert_equal(test_report[:created_at], @report.created_at)
72
+ end
73
+
74
+ should 'have the completed_at attribute' do
75
+ assert_equal(test_report[:completed_at], @report.completed_at)
76
+ end
77
+
78
+ should 'have the turnaround_time attribute' do
79
+ assert_equal(test_report[:turnaround_time], @report.turnaround_time)
80
+ end
81
+
82
+ should 'have the package attribute' do
83
+ assert_equal(test_report[:package], @report.package)
84
+ end
85
+
86
+ should 'have the candidate_id attribute' do
87
+ assert_equal(test_report[:candidate_id], @report.candidate.id)
88
+ assert(@report.candidate.is_a?(Candidate))
89
+ end
90
+
91
+ should 'have the ssn_trace_id attribute' do
92
+ assert_equal(test_report[:ssn_trace_id], @report.ssn_trace.id)
93
+ assert(@report.ssn_trace.is_a?(SSNTrace))
94
+ end
95
+
96
+ should 'have the sex_offender_search_id attribute' do
97
+ assert_equal(test_report[:sex_offender_search_id], @report.sex_offender_search.id)
98
+ assert(@report.sex_offender_search.is_a?(SexOffenderSearch))
99
+ end
100
+
101
+ should 'have the national_criminal_search_id attribute' do
102
+ assert_equal(test_report[:national_criminal_search_id], @report.national_criminal_search.id)
103
+ assert(@report.national_criminal_search.is_a?(NationalCriminalSearch))
104
+ end
105
+
106
+ should 'have the county_criminal_search_ids attribute' do
107
+ assert_equal(test_report[:county_criminal_search_ids], @report.county_criminal_searches.json)
108
+ assert(@report.county_criminal_searches.is_a?(APIList))
109
+ end
110
+
111
+ should 'have the motor_vehicle_report_id attribute' do
112
+ assert_equal(test_report[:motor_vehicle_report_id], @report.motor_vehicle_report.id)
113
+ assert(@report.motor_vehicle_report.is_a?(MotorVehicleReport))
114
+ end
115
+
116
+ end
117
+
118
+ should 'be registered' do
119
+ assert(APIClass.subclasses.include?(Report))
120
+ assert_equal(Report, APIClass.subclass_fetch("report"))
121
+ end
122
+
123
+ end
124
+ end
@@ -0,0 +1,75 @@
1
+ require File.expand_path('../../test_helper', __FILE__)
2
+
3
+ module Checkr
4
+ class SexOffenderSearchTest < Test::Unit::TestCase
5
+ setup do
6
+ @sex_offender_search_url = "#{Checkr.api_base}/v1/sex_offender_searches"
7
+ end
8
+
9
+ context 'SexOffenderSearch class' do
10
+ should 'be retrieveable' do
11
+ id = "sex_offender_search_id"
12
+ @mock.expects(:get).once.with("#{@sex_offender_search_url}/#{id}", anything, anything).returns(test_response(test_sex_offender_search))
13
+ sex_offender_search = SexOffenderSearch.retrieve(id)
14
+ assert(sex_offender_search.is_a?(SexOffenderSearch))
15
+ end
16
+ end
17
+
18
+ context 'SexOffenderSearch instance' do
19
+ should 'be refreshable' do
20
+ @mock.expects(:get).once.with("#{@sex_offender_search_url}/#{test_sex_offender_search[:id]}", anything, anything).returns(test_response(test_sex_offender_search))
21
+ sex_offender_search = SexOffenderSearch.new(test_sex_offender_search[:id])
22
+ sex_offender_search.refresh
23
+ assert_equal(test_sex_offender_search[:status], sex_offender_search.status)
24
+ end
25
+ end
26
+
27
+
28
+ context 'Retrieved SexOffenderSearch instance' do
29
+ setup do
30
+ @mock.expects(:get).once.returns(test_response(test_sex_offender_search))
31
+ @sex_offender_search = SexOffenderSearch.retrieve('sex_offender_search_id')
32
+ end
33
+
34
+ should 'have the id attribute' do
35
+ assert_equal(test_sex_offender_search[:id], @sex_offender_search.id)
36
+ end
37
+
38
+ should 'have the object attribute' do
39
+ assert_equal(test_sex_offender_search[:object], @sex_offender_search.object)
40
+ end
41
+
42
+ should 'have the uri attribute' do
43
+ assert_equal(test_sex_offender_search[:uri], @sex_offender_search.uri)
44
+ end
45
+
46
+ should 'have the status attribute' do
47
+ assert_equal(test_sex_offender_search[:status], @sex_offender_search.status)
48
+ end
49
+
50
+ should 'have the created_at attribute' do
51
+ assert_equal(test_sex_offender_search[:created_at], @sex_offender_search.created_at)
52
+ end
53
+
54
+ should 'have the completed_at attribute' do
55
+ assert_equal(test_sex_offender_search[:completed_at], @sex_offender_search.completed_at)
56
+ end
57
+
58
+ should 'have the turnaround_time attribute' do
59
+ assert_equal(test_sex_offender_search[:turnaround_time], @sex_offender_search.turnaround_time)
60
+ end
61
+
62
+ should 'have the records attribute' do
63
+ assert_equal(test_sex_offender_search[:records], @sex_offender_search.records)
64
+ end
65
+
66
+
67
+ end
68
+
69
+ should 'be registered' do
70
+ assert(APIClass.subclasses.include?(SexOffenderSearch))
71
+ assert_equal(SexOffenderSearch, APIClass.subclass_fetch("sex_offender_search"))
72
+ end
73
+
74
+ end
75
+ end