gds-api-adapters 38.1.0 → 39.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/lib/gds_api/test_helpers/need_api.rb +0 -15
  3. data/lib/gds_api/test_helpers/organisations.rb +5 -0
  4. data/lib/gds_api/version.rb +1 -1
  5. metadata +3 -103
  6. data/test/asset_manager_test.rb +0 -94
  7. data/test/business_support_api_test.rb +0 -45
  8. data/test/content_api_test.rb +0 -712
  9. data/test/content_store_test.rb +0 -55
  10. data/test/email_alert_api_test.rb +0 -189
  11. data/test/fixtures/finder_api/cma-case-schema.json +0 -103
  12. data/test/fixtures/hello.txt +0 -1
  13. data/test/fixtures/new_policies_for_dwp.json +0 -298
  14. data/test/fixtures/no_services_and_info_data_found_fixture.json +0 -14
  15. data/test/fixtures/old_policies_for_dwp.json +0 -413
  16. data/test/fixtures/services_and_info_fixture.json +0 -73
  17. data/test/fixtures/sub_sector_organisations.json +0 -57
  18. data/test/fixtures/world_organisations_australia.json +0 -490
  19. data/test/gds_api_base_test.rb +0 -110
  20. data/test/gov_uk_delivery_test.rb +0 -67
  21. data/test/govuk_headers_test.rb +0 -30
  22. data/test/helpers_test.rb +0 -23
  23. data/test/imminence_api_test.rb +0 -196
  24. data/test/json_client_test.rb +0 -879
  25. data/test/licence_application_api_test.rb +0 -196
  26. data/test/list_response_test.rb +0 -189
  27. data/test/local_links_manager_api_test.rb +0 -236
  28. data/test/mapit_test.rb +0 -117
  29. data/test/maslow_test.rb +0 -12
  30. data/test/middleware/govuk_header_sniffer_test.rb +0 -18
  31. data/test/need_api_test.rb +0 -345
  32. data/test/organisations_api_test.rb +0 -58
  33. data/test/panopticon_registerer_test.rb +0 -118
  34. data/test/panopticon_test.rb +0 -190
  35. data/test/pp_data_in_test.rb +0 -52
  36. data/test/pp_data_out_test.rb +0 -24
  37. data/test/publishing_api/special_route_publisher_test.rb +0 -104
  38. data/test/publishing_api_test.rb +0 -186
  39. data/test/publishing_api_v2/get_expanded_links_test.rb +0 -85
  40. data/test/publishing_api_v2/get_links_test.rb +0 -89
  41. data/test/publishing_api_v2/lookup_test.rb +0 -70
  42. data/test/publishing_api_v2_test.rb +0 -1649
  43. data/test/response_test.rb +0 -245
  44. data/test/router_test.rb +0 -456
  45. data/test/rummager_helpers_test.rb +0 -20
  46. data/test/rummager_test.rb +0 -150
  47. data/test/support_api_test.rb +0 -189
  48. data/test/support_test.rb +0 -95
  49. data/test/test_helper.rb +0 -55
  50. data/test/test_helpers/email_alert_api_test.rb +0 -24
  51. data/test/test_helpers/pact_helper.rb +0 -13
  52. data/test/test_helpers/panopticon_test.rb +0 -44
  53. data/test/test_helpers/publishing_api_test.rb +0 -129
  54. data/test/test_helpers/publishing_api_v2_test.rb +0 -170
  55. data/test/worldwide_api_test.rb +0 -82
@@ -1,196 +0,0 @@
1
- require "test_helper"
2
- require "gds_api/licence_application"
3
- require "gds_api/test_helpers/licence_application"
4
-
5
- class LicenceApplicationApiTest < Minitest::Test
6
- include GdsApi::TestHelpers::LicenceApplication
7
-
8
- def setup
9
- @core_url = LICENCE_APPLICATION_ENDPOINT
10
- end
11
-
12
- def api
13
- GdsApi::LicenceApplication.new LICENCE_APPLICATION_ENDPOINT
14
- end
15
-
16
- def test_should_not_be_nil
17
- assert_equal false, api.nil?
18
- end
19
-
20
- def test_should_return_list_of_licences
21
- stub_request(:get, "#{@core_url}/api/licences").
22
- with(headers: GdsApi::JsonClient.default_request_headers).
23
- to_return(status: 200,
24
- body: <<-EOS
25
- [
26
- {
27
- "code":"1324-5-1",
28
- "name":"Land drainage consents",
29
- "legislation":[
30
- "Land Drainage Act 1991"
31
- ]
32
- },
33
- {
34
- "code":"695-5-1",
35
- "name":"Skip operator licence",
36
- "legislation":[
37
- "Highways Act 1980, Section 139"
38
- ]
39
- },
40
- {
41
- "code":"1251-4-1",
42
- "name":"Residential care homes",
43
- "legislation":[
44
- "Health and Personal Social Services (Quality, Improvement and Regulation) (Northern Ireland) Order 2003"
45
- ]
46
- }
47
- ]
48
- EOS
49
- )
50
-
51
- land_drainage = {
52
- "code" => "1324-5-1",
53
- "name" => "Land drainage consents",
54
- "legislation" => ["Land Drainage Act 1991"],
55
- }
56
-
57
- assert_includes api.all_licences, land_drainage
58
- end
59
-
60
- def test_should_return_error_message_if_licences_collection_not_found
61
- stub_request(:get, "#{@core_url}/api/licences").
62
- with(headers: GdsApi::JsonClient.default_request_headers).
63
- to_return(status: 404,
64
- body: "{\"error\": \"Error\"}")
65
-
66
- assert_raises GdsApi::HTTPNotFound do
67
- api.all_licences
68
- end
69
- end
70
-
71
- def test_should_return_nil_if_id_nil
72
- assert_nil api.details_for_licence(nil)
73
- end
74
-
75
- def test_should_raise_if_licence_is_unrecognised
76
- licence_does_not_exist('bloop')
77
-
78
- assert_raises(GdsApi::HTTPNotFound) do
79
- api.details_for_licence("bloop")
80
- end
81
- end
82
-
83
- def test_should_provide_full_licence_details_for_canonical_id
84
- licence_exists('590001', "isLocationSpecific" => true, "geographicalAvailability" => %w(England Wales), "issuingAuthorities" => [])
85
-
86
- expected = {
87
- "isLocationSpecific" => true,
88
- "geographicalAvailability" => %w(England Wales),
89
- "issuingAuthorities" => []
90
- }
91
-
92
- assert_equal expected, api.details_for_licence("590001").to_hash
93
- end
94
-
95
- def test_should_raise_for_bad_snac_code_entry
96
- licence_does_not_exist('590001/bleep')
97
-
98
- assert_raises(GdsApi::HTTPNotFound) do
99
- api.details_for_licence("590001", "bleep")
100
- end
101
- end
102
-
103
- def test_should_raise_for_bad_licence_id_and_snac_code
104
- licence_does_not_exist('bloop/bleep')
105
-
106
- assert_raises(GdsApi::HTTPNotFound) do
107
- api.details_for_licence("bloop", "bleep")
108
- end
109
- end
110
-
111
- def test_should_return_error_message_to_pick_a_relevant_snac_code_for_the_provided_licence_id
112
- stub_request(:get, "#{@core_url}/api/licence/590001/sw10").
113
- with(headers: GdsApi::JsonClient.default_request_headers).
114
- to_return(status: 404,
115
- body: "{\"error\": \"No authorities found for the licence 590001 and for the snacCode sw10\"}")
116
-
117
- assert_raises(GdsApi::HTTPNotFound) do
118
- api.details_for_licence("590001", "sw10")
119
- end
120
- end
121
-
122
- def test_should_return_full_licence_details_with_location_specific_information
123
- licence_exists('866-5-1/00AA', <<-EOS
124
- {
125
- "isLocationSpecific":true,
126
- "geographicalAvailability":[
127
- "England",
128
- "Wales"
129
- ],
130
- "issuingAuthorities":[
131
- {
132
- "authorityName":"City of London",
133
- "authorityInteractions":{
134
- "apply":[
135
- {
136
- "url":"https://www.gov.uk/motor-salvage-operator-registration/city-of-london/apply-1",
137
- "usesLicensify":true,
138
- "description":"Application to register as a motor salvage operator",
139
- "payment":"none"
140
- }
141
- ],
142
- "renew":[
143
- {
144
- "url":"https://www.gov.uk/motor-salvage-operator-registration/city-of-london/renew-1",
145
- "usesLicensify":true,
146
- "description":"Application to renew a registration as motor salvage operator",
147
- "payment":"none"
148
- }
149
- ],
150
- "change":[
151
- {
152
- "url":"https://www.gov.uk/motor-salvage-operator-registration/city-of-london/change-1",
153
- "usesLicensify":true,
154
- "description":"Application to change a registration as motor salvage operator",
155
- "payment":"none"
156
- },
157
- {
158
- "url":"https://www.gov.uk/motor-salvage-operator-registration/city-of-london/change-2",
159
- "usesLicensify":true,
160
- "description":"Application to surrender a registration as motor salvage operator",
161
- "payment":"none"
162
- }
163
- ]
164
- }
165
- }
166
- ]
167
- }
168
- EOS
169
- )
170
-
171
- response = api.details_for_licence("866-5-1", "00AA")
172
-
173
- assert_equal true, response["isLocationSpecific"]
174
-
175
- assert_includes response["issuingAuthorities"][0]["authorityInteractions"]["apply"], "url" => "https://www.gov.uk/motor-salvage-operator-registration/city-of-london/apply-1",
176
- "usesLicensify" => true,
177
- "description" => "Application to register as a motor salvage operator",
178
- "payment" => "none"
179
- end
180
-
181
- def test_should_raise_exception_on_timeout
182
- licence_times_out("866-5-1")
183
-
184
- assert_raises GdsApi::TimedOutException do
185
- api.details_for_licence("866-5-1")
186
- end
187
- end
188
-
189
- def test_should_raise_exception_on_api_error
190
- licence_returns_error("866-5-1")
191
-
192
- assert_raises GdsApi::HTTPServerError do
193
- api.details_for_licence("866-5-1")
194
- end
195
- end
196
- end
@@ -1,189 +0,0 @@
1
- require_relative 'test_helper'
2
- require 'gds_api/list_response'
3
-
4
- describe GdsApi::ListResponse do
5
- describe "accessing results" do
6
- before :each do
7
- end
8
-
9
- it "should allow Enumerable access to the results array" do
10
- data = {
11
- "results" => %w(foo bar baz),
12
- "total" => 3,
13
- "_response_info" => {
14
- "status" => "ok",
15
- }
16
- }
17
- response = GdsApi::ListResponse.new(stub(body: data.to_json), nil)
18
-
19
- assert_equal "foo", response.first
20
- assert_equal %w(foo bar baz), response.to_a
21
- assert response.any?
22
- end
23
-
24
- it "should handle an empty result set" do
25
- data = {
26
- "results" => [],
27
- "total" => 0,
28
- "_response_info" => {
29
- "status" => "ok",
30
- }
31
- }
32
- response = GdsApi::ListResponse.new(stub(body: data.to_json), nil)
33
-
34
- assert_equal [], response.to_a
35
- assert ! response.any?
36
- end
37
- end
38
-
39
- describe "handling pagination" do
40
- before :each do
41
- page_1 = {
42
- "results" => %w(foo1 bar1),
43
- "total" => 6,
44
- "current_page" => 1, "pages" => 3, "page_size" => 2,
45
- "_response_info" => {
46
- "status" => "ok",
47
- "links" => [
48
- { "href" => "http://www.example.com/2", "rel" => "next" },
49
- { "href" => "http://www.example.com/1", "rel" => "self" },
50
- ]
51
- }
52
- }
53
- page_2 = {
54
- "results" => %w(foo2 bar2),
55
- "total" => 6,
56
- "current_page" => 2, "pages" => 3, "page_size" => 2,
57
- "_response_info" => {
58
- "status" => "ok",
59
- "links" => [
60
- { "href" => "http://www.example.com/1", "rel" => "previous" },
61
- { "href" => "http://www.example.com/3", "rel" => "next" },
62
- { "href" => "http://www.example.com/2", "rel" => "self" },
63
- ]
64
- }
65
- }
66
- page_3 = {
67
- "results" => %w(foo3 bar3),
68
- "total" => 6,
69
- "current_page" => 3, "pages" => 3, "page_size" => 2,
70
- "_response_info" => {
71
- "status" => "ok",
72
- "links" => [
73
- { "href" => "http://www.example.com/2", "rel" => "previous" },
74
- { "href" => "http://www.example.com/3", "rel" => "self" },
75
- ]
76
- }
77
- }
78
- @p1_response = stub(
79
- body: page_1.to_json,
80
- status: 200,
81
- headers: {
82
- link: '<http://www.example.com/1>; rel="self", <http://www.example.com/2>; rel="next"'
83
- }
84
- )
85
- @p2_response = stub(
86
- body: page_2.to_json,
87
- status: 200,
88
- headers: {
89
- link: '<http://www.example.com/2>; rel="self", <http://www.example.com/3>; rel="next", <http://www.example.com/1>; rel="previous"'
90
- }
91
- )
92
- @p3_response = stub(
93
- body: page_3.to_json,
94
- status: 200,
95
- headers: {
96
- link: '<http://www.example.com/3>; rel="self", <http://www.example.com/1>; rel="previous"'
97
- }
98
- )
99
-
100
- @client = stub
101
- @client.stubs(:get_list).with("http://www.example.com/1").returns(GdsApi::ListResponse.new(@p1_response, @client))
102
- @client.stubs(:get_list).with("http://www.example.com/2").returns(GdsApi::ListResponse.new(@p2_response, @client))
103
- @client.stubs(:get_list).with("http://www.example.com/3").returns(GdsApi::ListResponse.new(@p3_response, @client))
104
- end
105
-
106
- describe "accessing next page" do
107
- it "should allow accessing the next page" do
108
- resp = GdsApi::ListResponse.new(@p1_response, @client)
109
- assert resp.has_next_page?
110
- assert_equal %w(foo2 bar2), resp.next_page['results']
111
- end
112
-
113
- it "should return nil with no next page" do
114
- resp = GdsApi::ListResponse.new(@p3_response, @client)
115
- assert ! resp.has_next_page?
116
- assert_equal nil, resp.next_page
117
- end
118
-
119
- it "should memoize the next_page" do
120
- resp = GdsApi::ListResponse.new(@p1_response, @client)
121
- first_call = resp.next_page
122
-
123
- @client.unstub(:get_list) # Necessary because of https://github.com/freerange/mocha/issues/44
124
- @client.expects(:get_list).never
125
- second_call = resp.next_page
126
- assert_equal first_call, second_call
127
- end
128
- end
129
-
130
- describe "accessing previous page" do
131
- it "should allow accessing the previous page" do
132
- resp = GdsApi::ListResponse.new(@p2_response, @client)
133
- assert resp.has_previous_page?
134
- assert_equal %w(foo1 bar1), resp.previous_page['results']
135
- end
136
-
137
- it "should return nil with no previous page" do
138
- resp = GdsApi::ListResponse.new(@p1_response, @client)
139
- assert ! resp.has_previous_page?
140
- assert_equal nil, resp.previous_page
141
- end
142
-
143
- it "should memoize the previous_page" do
144
- resp = GdsApi::ListResponse.new(@p3_response, @client)
145
- first_call = resp.previous_page
146
-
147
- @client.unstub(:get_list) # Necessary because of https://github.com/freerange/mocha/issues/44
148
- @client.expects(:get_list).never
149
- second_call = resp.previous_page
150
- assert_equal first_call, second_call
151
- end
152
- end
153
-
154
- describe "accessing content across all pages" do
155
- before :each do
156
- @response = GdsApi::ListResponse.new(@p1_response, @client)
157
- end
158
-
159
- it "should allow iteration across multiple pages" do
160
- assert_equal 6, @response.with_subsequent_pages.count
161
- assert_equal %w(foo1 bar1 foo2 bar2 foo3 bar3), @response.with_subsequent_pages.to_a
162
- assert_equal %w(foo1 foo2 foo3), @response.with_subsequent_pages.select { |s| s =~ /foo/ }
163
- end
164
-
165
- it "should not load a page multiple times" do
166
- @client.unstub(:get_list) # Necessary because of https://github.com/freerange/mocha/issues/44
167
- @client.expects(:get_list).with("http://www.example.com/2").once.returns(GdsApi::ListResponse.new(@p2_response, @client))
168
- @client.expects(:get_list).with("http://www.example.com/3").once.returns(GdsApi::ListResponse.new(@p3_response, @client))
169
-
170
- 3.times do
171
- @response.with_subsequent_pages.to_a
172
- end
173
- end
174
-
175
- it "should work with a non-paginated response" do
176
- data = {
177
- "results" => %w(foo1 bar1),
178
- "total" => 2,
179
- "_response_info" => {
180
- "status" => "ok",
181
- }
182
- }
183
- response = GdsApi::ListResponse.new(stub(body: data.to_json, status: 200, headers: {}), nil)
184
-
185
- assert_equal %w(foo1 bar1), response.with_subsequent_pages.to_a
186
- end
187
- end
188
- end
189
- end
@@ -1,236 +0,0 @@
1
- require "test_helper"
2
- require "gds_api/local_links_manager"
3
- require "gds_api/test_helpers/local_links_manager"
4
-
5
- describe GdsApi::LocalLinksManager do
6
- include GdsApi::TestHelpers::LocalLinksManager
7
-
8
- before do
9
- @base_api_url = Plek.current.find("local-links-manager")
10
- @api = GdsApi::LocalLinksManager.new(@base_api_url)
11
- end
12
-
13
- describe "#link" do
14
- describe "when making request for specific LGIL" do
15
- it "returns the local authority and local interaction details if link present" do
16
- local_links_manager_has_a_link(
17
- authority_slug: "blackburn",
18
- lgsl: 2,
19
- lgil: 4,
20
- url: "http://blackburn.example.com/abandoned-shopping-trolleys/report"
21
- )
22
-
23
- expected_response = {
24
- "local_authority" => {
25
- "name" => "Blackburn",
26
- "snac" => "00AG",
27
- "tier" => "unitary",
28
- "homepage_url" => "http://blackburn.example.com",
29
- },
30
- "local_interaction" => {
31
- "lgsl_code" => 2,
32
- "lgil_code" => 4,
33
- "url" => "http://blackburn.example.com/abandoned-shopping-trolleys/report",
34
- }
35
- }
36
-
37
- response = @api.local_link("blackburn", 2, 4)
38
- assert_equal expected_response, response.to_hash
39
- end
40
-
41
- it "returns the local authority details only if no link present" do
42
- local_links_manager_has_no_link(
43
- authority_slug: "blackburn",
44
- lgsl: 2,
45
- lgil: 4,
46
- )
47
-
48
- expected_response = {
49
- "local_authority" => {
50
- "name" => "Blackburn",
51
- "snac" => "00AG",
52
- "tier" => "unitary",
53
- "homepage_url" => "http://blackburn.example.com",
54
- },
55
- }
56
-
57
- response = @api.local_link("blackburn", 2, 4)
58
- assert_equal expected_response, response.to_hash
59
- end
60
-
61
- it 'returns the local authority without a homepage url if no homepage link present' do
62
- local_links_manager_has_no_link_and_no_homepage_url(
63
- authority_slug: "blackburn",
64
- lgsl: 2,
65
- lgil: 4,
66
- )
67
-
68
- expected_response = {
69
- "local_authority" => {
70
- "name" => "Blackburn",
71
- "snac" => "00AG",
72
- "tier" => "unitary",
73
- "homepage_url" => nil,
74
- },
75
- }
76
-
77
- response = @api.local_link("blackburn", 2, 4)
78
- assert_equal expected_response, response.to_hash
79
- end
80
- end
81
-
82
- describe "when making request without LGIL" do
83
- it "returns the local authority and local interaction details if link present" do
84
- local_links_manager_has_a_fallback_link(
85
- authority_slug: "blackburn",
86
- lgsl: 2,
87
- lgil: 3,
88
- url: "http://blackburn.example.com/abandoned-shopping-trolleys/report"
89
- )
90
-
91
- expected_response = {
92
- "local_authority" => {
93
- "name" => "Blackburn",
94
- "snac" => "00AG",
95
- "tier" => "unitary",
96
- "homepage_url" => "http://blackburn.example.com",
97
- },
98
- "local_interaction" => {
99
- "lgsl_code" => 2,
100
- "lgil_code" => 3,
101
- "url" => "http://blackburn.example.com/abandoned-shopping-trolleys/report",
102
- }
103
- }
104
-
105
- response = @api.local_link("blackburn", 2)
106
- assert_equal expected_response, response.to_hash
107
- end
108
-
109
- it "returns the local authority and local interaction details if no link present" do
110
- local_links_manager_has_no_fallback_link(
111
- authority_slug: "blackburn",
112
- lgsl: 2
113
- )
114
-
115
- expected_response = {
116
- "local_authority" => {
117
- "name" => "Blackburn",
118
- "snac" => "00AG",
119
- "tier" => "unitary",
120
- "homepage_url" => "http://blackburn.example.com",
121
- },
122
- }
123
-
124
- response = @api.local_link("blackburn", 2)
125
- assert_equal expected_response, response.to_hash
126
- end
127
- end
128
-
129
- describe "when making request with missing required parameters" do
130
- it "raises HTTPClientError when authority_slug is missing" do
131
- local_links_manager_request_with_missing_parameters(nil, 2)
132
-
133
- assert_raises GdsApi::HTTPClientError do
134
- @api.local_link(nil, 2)
135
- end
136
- end
137
-
138
- it "raises HTTPClientError when LGSL is missing" do
139
- local_links_manager_request_with_missing_parameters('blackburn', nil)
140
-
141
- assert_raises GdsApi::HTTPClientError do
142
- @api.local_link('blackburn', nil)
143
- end
144
- end
145
- end
146
-
147
- describe "when making request with invalid required parameters" do
148
- it "raises when authority_slug is invalid" do
149
- local_links_manager_does_not_have_required_objects("hogwarts", 2)
150
-
151
- assert_raises(GdsApi::HTTPNotFound) do
152
- @api.local_link("hogwarts", 2)
153
- end
154
- end
155
-
156
- it "raises when LGSL is invalid" do
157
- local_links_manager_does_not_have_required_objects("blackburn", 999)
158
-
159
- assert_raises(GdsApi::HTTPNotFound) do
160
- @api.local_link("blackburn", 999)
161
- end
162
- end
163
-
164
- it "raises when the LGSL and LGIL combination is invalid" do
165
- local_links_manager_does_not_have_required_objects("blackburn", 2, 9)
166
-
167
- assert_raises(GdsApi::HTTPNotFound) do
168
- @api.local_link("blackburn", 2, 9)
169
- end
170
- end
171
- end
172
- end
173
-
174
- describe '#local_authority' do
175
- describe 'when making a request for a local authority with a parent' do
176
- it 'should return the local authority and its parent' do
177
- local_links_manager_has_a_district_and_county_local_authority('blackburn', 'rochester')
178
-
179
- expected_response = {
180
- "local_authorities" => [
181
- {
182
- "name" => 'Blackburn',
183
- "homepage_url" => "http://blackburn.example.com",
184
- "tier" => "district"
185
- },
186
- {
187
- "name" => 'Rochester',
188
- "homepage_url" => "http://rochester.example.com",
189
- "tier" => "county"
190
- }
191
- ]
192
- }
193
-
194
- response = @api.local_authority('blackburn')
195
- assert_equal expected_response, response.to_hash
196
- end
197
- end
198
-
199
- describe 'when making a request for a local authority without a parent' do
200
- it 'should return the local authority' do
201
- local_links_manager_has_a_local_authority('blackburn')
202
-
203
- expected_response = {
204
- "local_authorities" => [
205
- {
206
- "name" => 'Blackburn',
207
- "homepage_url" => "http://blackburn.example.com",
208
- "tier" => "unitary"
209
- }
210
- ]
211
- }
212
-
213
- response = @api.local_authority('blackburn')
214
- assert_equal expected_response, response.to_hash
215
- end
216
- end
217
-
218
- describe 'when making a request without the required parameters' do
219
- it "raises HTTPClientError when authority_slug is missing" do
220
- local_links_manager_request_without_local_authority_slug
221
-
222
- assert_raises GdsApi::HTTPClientError do
223
- @api.local_authority(nil)
224
- end
225
- end
226
- end
227
-
228
- describe 'when making a request with invalid required parameters' do
229
- it "raises when authority_slug is invalid" do
230
- local_links_manager_does_not_have_an_authority("hogwarts")
231
-
232
- assert_raises(GdsApi::HTTPNotFound) { @api.local_authority("hogwarts") }
233
- end
234
- end
235
- end
236
- end