eligible 1.0 → 3.0.0.beta17

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 (94) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +76 -0
  3. data/.codeclimate.yml +23 -0
  4. data/.gitignore +3 -0
  5. data/.rspec +3 -0
  6. data/.rubocop.yml +1158 -0
  7. data/.ruby-version +1 -0
  8. data/CHANGELOG.md +170 -0
  9. data/Gemfile +4 -0
  10. data/Gemfile.lock +66 -0
  11. data/LICENSE +1 -1
  12. data/README.md +700 -93
  13. data/Rakefile +12 -2
  14. data/eligible.gemspec +14 -16
  15. data/lib/eligible/api_resource.rb +49 -5
  16. data/lib/eligible/calculator_deploy_url.rb +7 -0
  17. data/lib/eligible/claim.rb +22 -6
  18. data/lib/eligible/coverage.rb +19 -0
  19. data/lib/eligible/coverage_resource.rb +23 -0
  20. data/lib/eligible/customer.rb +19 -0
  21. data/lib/eligible/demographic.rb +6 -35
  22. data/lib/eligible/eligible_object.rb +12 -15
  23. data/lib/eligible/encryptor.rb +121 -0
  24. data/lib/eligible/enrollment.rb +23 -0
  25. data/lib/eligible/errors/eligible_error.rb +6 -3
  26. data/lib/eligible/errors/invalid_request_error.rb +4 -0
  27. data/lib/eligible/icd.rb +16 -0
  28. data/lib/eligible/json.rb +5 -15
  29. data/lib/eligible/lockbox.rb +39 -0
  30. data/lib/eligible/medicare.rb +11 -0
  31. data/lib/eligible/oauth_token.rb +9 -0
  32. data/lib/eligible/ocr.rb +15 -0
  33. data/lib/eligible/original_signature_pdf.rb +45 -0
  34. data/lib/eligible/payer.rb +17 -0
  35. data/lib/eligible/payer_mapping.rb +37 -0
  36. data/lib/eligible/payment.rb +11 -0
  37. data/lib/eligible/preauth_resource.rb +11 -0
  38. data/lib/eligible/precert.rb +15 -0
  39. data/lib/eligible/provider_model.rb +7 -0
  40. data/lib/eligible/public_key.rb +27 -0
  41. data/lib/eligible/received_pdf.rb +26 -0
  42. data/lib/eligible/referral.rb +11 -0
  43. data/lib/eligible/risk_assessment.rb +15 -0
  44. data/lib/eligible/session_token.rb +11 -0
  45. data/lib/eligible/ticket.rb +40 -0
  46. data/lib/eligible/util.rb +29 -38
  47. data/lib/eligible/v1_0/action.rb +9 -0
  48. data/lib/eligible/v1_0/attribute.rb +9 -0
  49. data/lib/eligible/v1_0/charge.rb +13 -0
  50. data/lib/eligible/v1_0/claim.rb +25 -0
  51. data/lib/eligible/v1_0/claim_service_line.rb +9 -0
  52. data/lib/eligible/v1_0/contract.rb +9 -0
  53. data/lib/eligible/v1_0/device.rb +9 -0
  54. data/lib/eligible/v1_0/discount.rb +9 -0
  55. data/lib/eligible/v1_0/enrollment.rb +17 -0
  56. data/lib/eligible/v1_0/estimate.rb +29 -0
  57. data/lib/eligible/v1_0/estimate_service_line.rb +17 -0
  58. data/lib/eligible/v1_0/fee.rb +21 -0
  59. data/lib/eligible/v1_0/fee_refund.rb +29 -0
  60. data/lib/eligible/v1_0/file.rb +17 -0
  61. data/lib/eligible/v1_0/file_link.rb +13 -0
  62. data/lib/eligible/v1_0/insurance_company.rb +21 -0
  63. data/lib/eligible/v1_0/insurance_company_alias.rb +9 -0
  64. data/lib/eligible/v1_0/insurance_policy.rb +9 -0
  65. data/lib/eligible/v1_0/patient_question.rb +9 -0
  66. data/lib/eligible/v1_0/patient_questionnaire.rb +9 -0
  67. data/lib/eligible/v1_0/patient_record.rb +9 -0
  68. data/lib/eligible/v1_0/patient_statement.rb +54 -0
  69. data/lib/eligible/v1_0/patient_statement_service_line.rb +13 -0
  70. data/lib/eligible/v1_0/payment_report.rb +21 -0
  71. data/lib/eligible/v1_0/product.rb +9 -0
  72. data/lib/eligible/v1_0/provider.rb +9 -0
  73. data/lib/eligible/v1_0/remark.rb +21 -0
  74. data/lib/eligible/v1_0/reports/accuracy_stats.rb +23 -0
  75. data/lib/eligible/v1_0/reports/estimate_friction.rb +23 -0
  76. data/lib/eligible/v1_0/reports/in_scope_distribution.rb +23 -0
  77. data/lib/eligible/v1_0/rest_api_base.rb +44 -0
  78. data/lib/eligible/v1_0/rule.rb +13 -0
  79. data/lib/eligible/v1_0/session.rb +21 -0
  80. data/lib/eligible/v1_0/transaction.rb +21 -0
  81. data/lib/eligible/v1_0/treatment.rb +9 -0
  82. data/lib/eligible/v1_0/value_list.rb +9 -0
  83. data/lib/eligible/v1_0/value_list_item.rb +9 -0
  84. data/lib/eligible/v1_0/verification.rb +17 -0
  85. data/lib/eligible/version.rb +1 -1
  86. data/lib/eligible/visit_type.rb +11 -0
  87. data/lib/eligible/x12.rb +8 -0
  88. data/lib/eligible.rb +320 -110
  89. metadata +148 -67
  90. data/CONTRIBUTORS +0 -1
  91. data/lib/eligible/plan.rb +0 -42
  92. data/lib/eligible/service.rb +0 -39
  93. data/test/test_eligible.rb +0 -279
  94. data/test/test_helper.rb +0 -67
metadata CHANGED
@@ -1,141 +1,222 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eligible
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.0'
5
- prerelease:
4
+ version: 3.0.0.beta17
6
5
  platform: ruby
7
6
  authors:
8
- - Andy Brett
7
+ - Katelyn Gleaon
8
+ - Rodrigo Dominguez
9
+ - Aaron Bedra
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2013-02-07 00:00:00.000000000 Z
13
+ date: 2020-07-13 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
- name: mocha
16
- requirement: &70130122371040 !ruby/object:Gem::Requirement
17
- none: false
16
+ name: rest-client
17
+ requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - ! '>='
19
+ - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :development
21
+ version: 2.0.0
22
+ type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70130122371040
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: 2.0.0
25
29
  - !ruby/object:Gem::Dependency
26
- name: shoulda
27
- requirement: &70130122370000 !ruby/object:Gem::Requirement
28
- none: false
30
+ name: multi_json
31
+ requirement: !ruby/object:Gem::Requirement
29
32
  requirements:
30
- - - ! '>='
33
+ - - "~>"
31
34
  - !ruby/object:Gem::Version
32
- version: '0'
33
- type: :development
35
+ version: '1.7'
36
+ type: :runtime
34
37
  prerelease: false
35
- version_requirements: *70130122370000
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '1.7'
36
43
  - !ruby/object:Gem::Dependency
37
- name: test-unit
38
- requirement: &70130122368580 !ruby/object:Gem::Requirement
39
- none: false
44
+ name: rake
45
+ requirement: !ruby/object:Gem::Requirement
40
46
  requirements:
41
- - - ! '>='
47
+ - - "~>"
42
48
  - !ruby/object:Gem::Version
43
- version: '0'
49
+ version: '12.0'
44
50
  type: :development
45
51
  prerelease: false
46
- version_requirements: *70130122368580
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '12.0'
47
57
  - !ruby/object:Gem::Dependency
48
- name: rake
49
- requirement: &70130122367240 !ruby/object:Gem::Requirement
50
- none: false
58
+ name: rspec
59
+ requirement: !ruby/object:Gem::Requirement
51
60
  requirements:
52
- - - ! '>='
61
+ - - "~>"
53
62
  - !ruby/object:Gem::Version
54
- version: '0'
63
+ version: '3.4'
55
64
  type: :development
56
65
  prerelease: false
57
- version_requirements: *70130122367240
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '3.4'
58
71
  - !ruby/object:Gem::Dependency
59
- name: rest-client
60
- requirement: &70130122450000 !ruby/object:Gem::Requirement
61
- none: false
72
+ name: rspec_junit_formatter
73
+ requirement: !ruby/object:Gem::Requirement
62
74
  requirements:
63
- - - ~>
75
+ - - "~>"
64
76
  - !ruby/object:Gem::Version
65
- version: '1.4'
66
- type: :runtime
77
+ version: 0.3.0
78
+ type: :development
67
79
  prerelease: false
68
- version_requirements: *70130122450000
69
- - !ruby/object:Gem::Dependency
70
- name: multi_json
71
- requirement: &70130122473580 !ruby/object:Gem::Requirement
72
- none: false
80
+ version_requirements: !ruby/object:Gem::Requirement
73
81
  requirements:
74
- - - ! '>='
82
+ - - "~>"
75
83
  - !ruby/object:Gem::Version
76
- version: 1.0.4
77
- - - <
84
+ version: 0.3.0
85
+ - !ruby/object:Gem::Dependency
86
+ name: simplecov
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
78
90
  - !ruby/object:Gem::Version
79
- version: '2'
80
- type: :runtime
91
+ version: '0.11'
92
+ type: :development
81
93
  prerelease: false
82
- version_requirements: *70130122473580
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "~>"
97
+ - !ruby/object:Gem::Version
98
+ version: '0.11'
83
99
  description: Eligible is a developer-friendly way to process health care eligibility
84
- checks. Learn more at https://eligibleapi.com
100
+ checks. Learn more at https://eligible.com
85
101
  email:
86
- - andy@andybrett.com
102
+ - k@eligible.com
103
+ - rod@eligible.com
104
+ - abedra@eligible.com
87
105
  executables: []
88
106
  extensions: []
89
107
  extra_rdoc_files: []
90
108
  files:
91
- - .gitignore
92
- - CONTRIBUTORS
109
+ - ".circleci/config.yml"
110
+ - ".codeclimate.yml"
111
+ - ".gitignore"
112
+ - ".rspec"
113
+ - ".rubocop.yml"
114
+ - ".ruby-version"
115
+ - CHANGELOG.md
93
116
  - Gemfile
117
+ - Gemfile.lock
94
118
  - LICENSE
95
119
  - README.md
96
120
  - Rakefile
97
121
  - eligible.gemspec
98
122
  - lib/eligible.rb
99
123
  - lib/eligible/api_resource.rb
124
+ - lib/eligible/calculator_deploy_url.rb
100
125
  - lib/eligible/claim.rb
126
+ - lib/eligible/coverage.rb
127
+ - lib/eligible/coverage_resource.rb
128
+ - lib/eligible/customer.rb
101
129
  - lib/eligible/demographic.rb
102
130
  - lib/eligible/eligible_object.rb
131
+ - lib/eligible/encryptor.rb
132
+ - lib/eligible/enrollment.rb
103
133
  - lib/eligible/errors/api_connection_error.rb
104
134
  - lib/eligible/errors/api_error.rb
105
135
  - lib/eligible/errors/authentication_error.rb
106
136
  - lib/eligible/errors/eligible_error.rb
137
+ - lib/eligible/errors/invalid_request_error.rb
138
+ - lib/eligible/icd.rb
107
139
  - lib/eligible/json.rb
108
- - lib/eligible/plan.rb
109
- - lib/eligible/service.rb
140
+ - lib/eligible/lockbox.rb
141
+ - lib/eligible/medicare.rb
142
+ - lib/eligible/oauth_token.rb
143
+ - lib/eligible/ocr.rb
144
+ - lib/eligible/original_signature_pdf.rb
145
+ - lib/eligible/payer.rb
146
+ - lib/eligible/payer_mapping.rb
147
+ - lib/eligible/payment.rb
148
+ - lib/eligible/preauth_resource.rb
149
+ - lib/eligible/precert.rb
150
+ - lib/eligible/provider_model.rb
151
+ - lib/eligible/public_key.rb
152
+ - lib/eligible/received_pdf.rb
153
+ - lib/eligible/referral.rb
154
+ - lib/eligible/risk_assessment.rb
155
+ - lib/eligible/session_token.rb
156
+ - lib/eligible/ticket.rb
110
157
  - lib/eligible/util.rb
158
+ - lib/eligible/v1_0/action.rb
159
+ - lib/eligible/v1_0/attribute.rb
160
+ - lib/eligible/v1_0/charge.rb
161
+ - lib/eligible/v1_0/claim.rb
162
+ - lib/eligible/v1_0/claim_service_line.rb
163
+ - lib/eligible/v1_0/contract.rb
164
+ - lib/eligible/v1_0/device.rb
165
+ - lib/eligible/v1_0/discount.rb
166
+ - lib/eligible/v1_0/enrollment.rb
167
+ - lib/eligible/v1_0/estimate.rb
168
+ - lib/eligible/v1_0/estimate_service_line.rb
169
+ - lib/eligible/v1_0/fee.rb
170
+ - lib/eligible/v1_0/fee_refund.rb
171
+ - lib/eligible/v1_0/file.rb
172
+ - lib/eligible/v1_0/file_link.rb
173
+ - lib/eligible/v1_0/insurance_company.rb
174
+ - lib/eligible/v1_0/insurance_company_alias.rb
175
+ - lib/eligible/v1_0/insurance_policy.rb
176
+ - lib/eligible/v1_0/patient_question.rb
177
+ - lib/eligible/v1_0/patient_questionnaire.rb
178
+ - lib/eligible/v1_0/patient_record.rb
179
+ - lib/eligible/v1_0/patient_statement.rb
180
+ - lib/eligible/v1_0/patient_statement_service_line.rb
181
+ - lib/eligible/v1_0/payment_report.rb
182
+ - lib/eligible/v1_0/product.rb
183
+ - lib/eligible/v1_0/provider.rb
184
+ - lib/eligible/v1_0/remark.rb
185
+ - lib/eligible/v1_0/reports/accuracy_stats.rb
186
+ - lib/eligible/v1_0/reports/estimate_friction.rb
187
+ - lib/eligible/v1_0/reports/in_scope_distribution.rb
188
+ - lib/eligible/v1_0/rest_api_base.rb
189
+ - lib/eligible/v1_0/rule.rb
190
+ - lib/eligible/v1_0/session.rb
191
+ - lib/eligible/v1_0/transaction.rb
192
+ - lib/eligible/v1_0/treatment.rb
193
+ - lib/eligible/v1_0/value_list.rb
194
+ - lib/eligible/v1_0/value_list_item.rb
195
+ - lib/eligible/v1_0/verification.rb
111
196
  - lib/eligible/version.rb
112
- - test/test_eligible.rb
113
- - test/test_helper.rb
114
- homepage: https://eligibleapi.com/
197
+ - lib/eligible/visit_type.rb
198
+ - lib/eligible/x12.rb
199
+ homepage: https://github.com/eligible/eligible-ruby
115
200
  licenses:
116
201
  - MIT
202
+ metadata: {}
117
203
  post_install_message:
118
204
  rdoc_options: []
119
205
  require_paths:
120
206
  - lib
121
207
  required_ruby_version: !ruby/object:Gem::Requirement
122
- none: false
123
208
  requirements:
124
- - - ! '>='
209
+ - - ">="
125
210
  - !ruby/object:Gem::Version
126
211
  version: '0'
127
212
  required_rubygems_version: !ruby/object:Gem::Requirement
128
- none: false
129
213
  requirements:
130
- - - ! '>='
214
+ - - ">"
131
215
  - !ruby/object:Gem::Version
132
- version: '0'
216
+ version: 1.3.1
133
217
  requirements: []
134
- rubyforge_project:
135
- rubygems_version: 1.8.13
218
+ rubygems_version: 3.0.6
136
219
  signing_key:
137
- specification_version: 3
220
+ specification_version: 4
138
221
  summary: Ruby wrapper for the Eligible API
139
- test_files:
140
- - test/test_eligible.rb
141
- - test/test_helper.rb
222
+ test_files: []
data/CONTRIBUTORS DELETED
@@ -1 +0,0 @@
1
- Andy Brett <andy@andybrett.com>
data/lib/eligible/plan.rb DELETED
@@ -1,42 +0,0 @@
1
- module Eligible
2
- COMMON_ATTRIBUTES = [:timestamp, :eligible_id, :mapping_version, :primary_insurance, :additional_insurance]
3
- STATUS_ATTRIBUTES = [:type, :coverage_status]
4
- BALANCE_ATTRIBUTES = [:balance, :comments]
5
- STOP_LOSS_ATTRIBUTES = [:stop_loss_in_network, :stop_loss_out_network]
6
-
7
- class Plan < APIResource
8
- def self.get(params, api_key=nil)
9
- response, api_key = Eligible.request(:get, url, api_key, params)
10
- Util.convert_to_eligible_object(response, api_key)
11
- end
12
-
13
- def all
14
- error ? nil : to_hash
15
- end
16
-
17
- def status
18
- keys = COMMON_ATTRIBUTES + STATUS_ATTRIBUTES
19
- error ? nil : to_hash.select { |k, v| keys.include?(k) }
20
- end
21
-
22
- def deductible
23
- keys = COMMON_ATTRIBUTES + STATUS_ATTRIBUTES + [:deductible_in_network, :deductible_out_network]
24
- error ? nil : to_hash.select { |k, v| keys.include?(k) }
25
- end
26
-
27
- def dates
28
- keys = COMMON_ATTRIBUTES
29
- error ? nil : to_hash.select { |k, v| keys.include?(k) }
30
- end
31
-
32
- def balance
33
- keys = COMMON_ATTRIBUTES + BALANCE_ATTRIBUTES
34
- error ? nil : to_hash.select { |k, v| keys.include?(k) }
35
- end
36
-
37
- def stop_loss
38
- keys = COMMON_ATTRIBUTES + STOP_LOSS_ATTRIBUTES
39
- error ? nil : to_hash.select { |k, v| keys.include?(k) }
40
- end
41
- end
42
- end
@@ -1,39 +0,0 @@
1
- module Eligible
2
- class Service < APIResource
3
- COMMON_ATTRIBUTES = [:timestamp, :eligible_id, :mapping_version, :additional_insurance]
4
- STATUS_ATTRIBUTES = [:type, :coverage_status]
5
- VISITS_ATTRIBUTES = [:not_covered, :comments, :precertification_needed, :visits_in_network, :visits_out_network]
6
- COPAYMENT_ATTRIBUTES = [:copayment_in_network, :copayment_out_network]
7
- COINSURANCE_ATTRIBUTES = [:coinsurance_in_network, :coinsurance_out_network]
8
- DEDUCTIBLE_ATTRIBUTES = [:deductible_in_network, :deductible_out_network]
9
-
10
- def self.get(params, api_key=nil)
11
- response, api_key = Eligible.request(:get, url, api_key, params)
12
- Util.convert_to_eligible_object(response, api_key)
13
- end
14
-
15
- def all
16
- error ? nil : to_hash
17
- end
18
-
19
- def visits
20
- keys = COMMON_ATTRIBUTES + STATUS_ATTRIBUTES + VISITS_ATTRIBUTES
21
- error ? nil : to_hash.select { |k, v| keys.include?(k) }
22
- end
23
-
24
- def copayment
25
- keys = COMMON_ATTRIBUTES + STATUS_ATTRIBUTES + COPAYMENT_ATTRIBUTES
26
- error ? nil : to_hash.select { |k, v| keys.include?(k) }
27
- end
28
-
29
- def coinsurance
30
- keys = COMMON_ATTRIBUTES + STATUS_ATTRIBUTES + COINSURANCE_ATTRIBUTES
31
- error ? nil : to_hash.select { |k, v| keys.include?(k) }
32
- end
33
-
34
- def deductible
35
- keys = COMMON_ATTRIBUTES + STATUS_ATTRIBUTES + DEDUCTIBLE_ATTRIBUTES
36
- error ? nil : to_hash.select { |k, v| keys.include?(k) }
37
- end
38
- end
39
- end
@@ -1,279 +0,0 @@
1
- require File.expand_path('../test_helper', __FILE__)
2
- require 'test/unit'
3
- require 'shoulda'
4
- require 'mocha'
5
- require 'rest-client'
6
-
7
- class TestEligible < Test::Unit::TestCase
8
- include Mocha
9
-
10
- context "Version" do
11
- should "have a version number" do
12
- assert_not_nil Eligible::VERSION
13
- end
14
- end
15
-
16
- context "General API" do
17
- setup do
18
- Eligible.api_key = "TEST"
19
- @mock = mock
20
- Eligible.mock_rest_client = @mock
21
- end
22
-
23
- teardown do
24
- Eligible.mock_rest_client = nil
25
- Eligible.api_key = nil
26
- end
27
-
28
- should "not specifying api credentials should raise an exception" do
29
- Eligible.api_key = nil
30
- assert_raises Eligible::AuthenticationError do
31
- Eligible::Plan.get({})
32
- end
33
- end
34
-
35
- should "specifying invalid api credentials should raise an exception" do
36
- Eligible.api_key = "invalid"
37
- response = test_response(test_invalid_api_key_error, 401)
38
- assert_raises Eligible::AuthenticationError do
39
- @mock.expects(:get).once.raises(RestClient::ExceptionWithResponse.new(response, 401))
40
- Eligible::Plan.get({})
41
- end
42
- end
43
- end
44
-
45
- context "Plan" do
46
- setup do
47
- Eligible.api_key = "TEST"
48
- @mock = mock
49
- Eligible.mock_rest_client = @mock
50
- end
51
-
52
- teardown do
53
- Eligible.mock_rest_client = nil
54
- Eligible.api_key = nil
55
- end
56
-
57
- should "return an error if no params are supplied" do
58
- params = {}
59
- response = test_response(test_plan_missing_params)
60
- @mock.expects(:get).returns(response)
61
- plan = Eligible::Plan.get(params)
62
- assert_not_nil plan.error
63
- end
64
-
65
- should "return plan information if valid params are supplied" do
66
- params = {
67
- :payer_name => "Aetna",
68
- :payer_id => "000001",
69
- :service_provider_last_name => "Last",
70
- :service_provider_first_name => "First",
71
- :service_provider_NPI => "1928384219",
72
- :subscriber_id => "W120923801",
73
- :subscriber_last_name => "Austen",
74
- :subscriber_first_name => "Jane",
75
- :subscriber_dob => "1955-12-14"
76
- }
77
- response = test_response(test_plan)
78
- @mock.expects(:get).returns(response)
79
- plan = Eligible::Plan.get(params)
80
- assert_nil plan.error
81
- assert_not_nil plan.all
82
- end
83
-
84
- should "return the right subsets of the data when requested" do
85
- params = {
86
- :payer_name => "Aetna",
87
- :payer_id => "000001",
88
- :service_provider_last_name => "Last",
89
- :service_provider_first_name => "First",
90
- :service_provider_NPI => "1928384219",
91
- :subscriber_id => "W120923801",
92
- :subscriber_last_name => "Austen",
93
- :subscriber_first_name => "Jane",
94
- :subscriber_dob => "1955-12-14"
95
- }
96
- response = test_response(test_plan)
97
- @mock.expects(:get).returns(response)
98
- plan = Eligible::Plan.get(params)
99
-
100
- assert_not_nil plan.all[:primary_insurance]
101
- assert_not_nil plan.status[:coverage_status]
102
- assert_nil plan.status[:deductible_in_network]
103
- assert_not_nil plan.deductible[:deductible_in_network]
104
- assert_nil plan.deductible[:balance]
105
- assert_not_nil plan.dates[:primary_insurance][:plan_begins]
106
- assert_nil plan.dates[:deductible_in_network]
107
- assert_not_nil plan.balance[:balance]
108
- assert_nil plan.balance[:deductible_in_network]
109
- assert_not_nil plan.stop_loss[:stop_loss_in_network]
110
- assert_nil plan.stop_loss[:deductible_in_network]
111
- end
112
- end
113
-
114
- context "Service" do
115
- setup do
116
- Eligible.api_key = "TEST"
117
- @mock = mock
118
- Eligible.mock_rest_client = @mock
119
- end
120
-
121
- teardown do
122
- Eligible.mock_rest_client = nil
123
- Eligible.api_key = nil
124
- end
125
-
126
- should "return an error if no params are supplied" do
127
- params = {}
128
- response = test_response(test_service_missing_params)
129
- @mock.expects(:get).returns(response)
130
- service = Eligible::Service.get(params)
131
- assert_not_nil service.error
132
- end
133
-
134
- should "return eligibility information if valid params are supplied" do
135
- params = {
136
- :payer_name => "Aetna",
137
- :payer_id => "000001",
138
- :service_provider_last_name => "Last",
139
- :service_provider_first_name => "First",
140
- :service_provider_NPI => "1928384219",
141
- :subscriber_id => "W120923801",
142
- :subscriber_last_name => "Austen",
143
- :subscriber_first_name => "Jane",
144
- :subscriber_dob => "1955-12-14"
145
- }
146
- response = test_response(test_service)
147
- @mock.expects(:get).returns(response)
148
- service = Eligible::Service.get(params)
149
- assert_nil service.error
150
- assert_not_nil service.all
151
- end
152
-
153
- should "return the right subsets of the data when requested" do
154
- params = {
155
- :payer_name => "Aetna",
156
- :payer_id => "000001",
157
- :service_provider_last_name => "Last",
158
- :service_provider_first_name => "First",
159
- :service_provider_NPI => "1928384219",
160
- :subscriber_id => "W120923801",
161
- :subscriber_last_name => "Austen",
162
- :subscriber_first_name => "Jane",
163
- :subscriber_dob => "1955-12-14"
164
- }
165
- response = test_response(test_service)
166
- @mock.expects(:get).returns(response)
167
- service = Eligible::Service.get(params)
168
-
169
- assert_not_nil service.all[:service_begins]
170
- assert_not_nil service.visits[:visits_in_network]
171
- assert_nil service.visits[:copayment_in_network]
172
- assert_not_nil service.copayment[:copayment_in_network]
173
- assert_nil service.copayment[:visits_in_network]
174
- assert_not_nil service.coinsurance[:coinsurance_in_network]
175
- assert_nil service.coinsurance[:visits_in_network]
176
- assert_not_nil service.deductible[:deductible_in_network]
177
- assert_nil service.deductible[:visits_in_network]
178
- end
179
- end
180
-
181
- context "Demographic" do
182
- setup do
183
- Eligible.api_key = "TEST"
184
- @mock = mock
185
- Eligible.mock_rest_client = @mock
186
- end
187
-
188
- teardown do
189
- Eligible.mock_rest_client = nil
190
- Eligible.api_key = nil
191
- end
192
-
193
- should "return an error if no params are supplied" do
194
- params = {}
195
- response = test_response(test_demographic_missing_params)
196
- @mock.expects(:get).returns(response)
197
- demographic = Eligible::Demographic.get(params)
198
- assert_not_nil demographic.error
199
- end
200
-
201
- should "return demographic information if valid params are supplied" do
202
- params = {
203
- :payer_name => "Aetna",
204
- :payer_id => "000001",
205
- :service_provider_last_name => "Last",
206
- :service_provider_first_name => "First",
207
- :service_provider_NPI => "1928384219",
208
- :subscriber_id => "W120923801",
209
- :subscriber_last_name => "Austen",
210
- :subscriber_first_name => "Jane",
211
- :subscriber_dob => "1955-12-14"
212
- }
213
- response = test_response(test_demographic)
214
- @mock.expects(:get).returns(response)
215
- demographic = Eligible::Demographic.get(params)
216
- assert_nil demographic.error
217
- assert_not_nil demographic.all
218
- end
219
-
220
- should "return the right subsets of the data when requested" do
221
- params = {
222
- :payer_name => "Aetna",
223
- :payer_id => "000001",
224
- :service_provider_last_name => "Last",
225
- :service_provider_first_name => "First",
226
- :service_provider_NPI => "1928384219",
227
- :subscriber_id => "W120923801",
228
- :subscriber_last_name => "Austen",
229
- :subscriber_first_name => "Jane",
230
- :subscriber_dob => "1955-12-14"
231
- }
232
- response = test_response(test_demographic)
233
- @mock.expects(:get).returns(response)
234
- demographic = Eligible::Demographic.get(params)
235
-
236
- assert_not_nil demographic.all[:timestamp]
237
- assert_not_nil demographic.zip[:zip]
238
- assert_nil demographic.zip[:group_id]
239
- assert_not_nil demographic.employer[:group_id]
240
- assert_nil demographic.employer[:zip]
241
- assert_not_nil demographic.address[:address]
242
- assert_nil demographic.address[:group_id]
243
- assert_not_nil demographic.dob[:dob]
244
- assert_nil demographic.dob[:address]
245
- end
246
- end
247
-
248
- context "Claim" do
249
- setup do
250
- Eligible.api_key = "TEST"
251
- @mock = mock
252
- Eligible.mock_rest_client = @mock
253
- end
254
-
255
- teardown do
256
- Eligible.mock_rest_client = nil
257
- Eligible.api_key = nil
258
- end
259
-
260
- should "return an error if no params are supplied" do
261
- params = {}
262
- response = test_response(test_claim_missing_params)
263
- @mock.expects(:get).returns(response)
264
- claim = Eligible::Claim.get(params)
265
- assert_not_nil claim.error
266
- end
267
-
268
- should "return claim information if valid params are supplied" do
269
- params = {
270
- :tbd => true
271
- }
272
- response = test_response(test_claim)
273
- @mock.expects(:get).returns(response)
274
- claim = Eligible::Claim.get(params)
275
- assert_nil claim.error
276
- assert_not_nil claim.status
277
- end
278
- end
279
- end