gds-api-adapters 4.9.0 → 5.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.
- data/lib/gds_api/asset_manager.rb +37 -0
- data/lib/gds_api/base.rb +1 -1
- data/lib/gds_api/content_api.rb +1 -17
- data/lib/gds_api/imminence.rb +2 -2
- data/lib/gds_api/json_client.rb +10 -4
- data/lib/gds_api/test_helpers/asset_manager.rb +26 -0
- data/lib/gds_api/test_helpers/content_api.rb +0 -17
- data/lib/gds_api/version.rb +1 -1
- data/test/asset_manager_test.rb +39 -0
- data/test/content_api_test.rb +0 -26
- data/test/fixtures/hello.txt +1 -0
- data/test/imminence_api_test.rb +28 -1
- data/test/json_client_test.rb +28 -0
- data/test/test_helper.rb +4 -0
- metadata +41 -35
@@ -0,0 +1,37 @@
|
|
1
|
+
require_relative 'base'
|
2
|
+
require_relative 'exceptions'
|
3
|
+
|
4
|
+
class GdsApi::AssetManager < GdsApi::Base
|
5
|
+
include GdsApi::ExceptionHandling
|
6
|
+
|
7
|
+
# Creates an asset given attributes
|
8
|
+
#
|
9
|
+
# Makes a `POST` request to the asset manager api to create an asset. The api accepts
|
10
|
+
# the following attributes:
|
11
|
+
#
|
12
|
+
# * `file` - a File object
|
13
|
+
#
|
14
|
+
# @param asset [Hash] The attributes for the asset to send to the api.
|
15
|
+
# @return [Net::HTTPResponse] The raw http response from the api.
|
16
|
+
#
|
17
|
+
# @raise [HTTPErrorResponse] if the request returns an error
|
18
|
+
def create_asset(asset)
|
19
|
+
post_multipart("#{base_url}/assets", { :asset => asset })
|
20
|
+
end
|
21
|
+
|
22
|
+
# Fetches an asset given the id
|
23
|
+
#
|
24
|
+
# @param id [String] The asset identifier
|
25
|
+
# @return [Response, nil] A response object containing the parsed JSON response. If
|
26
|
+
# the asset cannot be found, nil wil be returned.
|
27
|
+
#
|
28
|
+
# @raise [HTTPErrorResponse] if the request returns an error
|
29
|
+
def asset(id)
|
30
|
+
get_json("#{base_url}/assets/#{id}")
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
def base_url
|
35
|
+
endpoint
|
36
|
+
end
|
37
|
+
end
|
data/lib/gds_api/base.rb
CHANGED
data/lib/gds_api/content_api.rb
CHANGED
@@ -45,16 +45,13 @@ class GdsApi::ContentApi < GdsApi::Base
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def artefact(slug, params={})
|
48
|
-
edition = params[:edition]
|
49
|
-
snac = params[:snac]
|
50
|
-
|
51
48
|
url = "#{base_url}/#{CGI.escape(slug)}.json"
|
52
49
|
query = params.map { |k,v| "#{k}=#{v}" }
|
53
50
|
if query.any?
|
54
51
|
url += "?#{query.join("&")}"
|
55
52
|
end
|
56
53
|
|
57
|
-
if edition && ! options.include?(:bearer_token)
|
54
|
+
if params[:edition] && ! options.include?(:bearer_token)
|
58
55
|
raise GdsApi::NoBearerToken
|
59
56
|
end
|
60
57
|
get_json(url)
|
@@ -122,10 +119,6 @@ class GdsApi::ContentApi < GdsApi::Base
|
|
122
119
|
super(url, &create_response)
|
123
120
|
end
|
124
121
|
|
125
|
-
def countries
|
126
|
-
parse_times(get_json!("#{base_url}/foreign-travel-advice.json"))
|
127
|
-
end
|
128
|
-
|
129
122
|
private
|
130
123
|
def base_url
|
131
124
|
endpoint
|
@@ -141,13 +134,4 @@ class GdsApi::ContentApi < GdsApi::Base
|
|
141
134
|
batch_response
|
142
135
|
end
|
143
136
|
end
|
144
|
-
|
145
|
-
def parse_times(response)
|
146
|
-
response["results"].map do |result|
|
147
|
-
if result.has_key?("updated_at")
|
148
|
-
result["updated_at"] = Time.parse(result["updated_at"])
|
149
|
-
end
|
150
|
-
end
|
151
|
-
response
|
152
|
-
end
|
153
137
|
end
|
data/lib/gds_api/imminence.rb
CHANGED
@@ -19,9 +19,9 @@ class GdsApi::Imminence < GdsApi::Base
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def places_kml(type)
|
22
|
-
get_raw("#{@endpoint}/places/#{type}.kml")
|
22
|
+
get_raw("#{@endpoint}/places/#{type}.kml").body
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
def business_support_schemes(facets_hash)
|
26
26
|
query = facets_hash.keys.sort.map { |k| "#{k.to_s}=#{facets_hash[k]}" }.join("&")
|
27
27
|
query = "?#{query}" unless query.empty?
|
data/lib/gds_api/json_client.rb
CHANGED
@@ -72,16 +72,22 @@ module GdsApi
|
|
72
72
|
do_request(:delete, url, params)
|
73
73
|
end
|
74
74
|
|
75
|
+
def post_multipart(url, params)
|
76
|
+
r = do_raw_request(:post, url, params.merge({
|
77
|
+
:multipart => true
|
78
|
+
}))
|
79
|
+
Response.new(r)
|
80
|
+
end
|
81
|
+
|
75
82
|
private
|
76
83
|
def do_raw_request(method, url, params = nil)
|
77
84
|
response = do_request(method, url, params)
|
78
|
-
response.body
|
79
85
|
|
80
86
|
rescue RestClient::ResourceNotFound => e
|
81
87
|
raise GdsApi::HTTPNotFound.new(e.http_code)
|
82
88
|
|
83
89
|
rescue RestClient::Exception => e
|
84
|
-
raise GdsApi::HTTPErrorResponse.new(response.code.to_i), e.response.body
|
90
|
+
raise GdsApi::HTTPErrorResponse.new(e.response.code.to_i), e.response.body
|
85
91
|
end
|
86
92
|
|
87
93
|
# method: the symbolic name of the method to use, e.g. :get, :post
|
@@ -92,7 +98,7 @@ module GdsApi
|
|
92
98
|
def do_json_request(method, url, params = nil, &create_response)
|
93
99
|
|
94
100
|
begin
|
95
|
-
response = do_request_with_cache(method, url, params)
|
101
|
+
response = do_request_with_cache(method, url, params.to_json)
|
96
102
|
|
97
103
|
rescue RestClient::ResourceNotFound => e
|
98
104
|
raise GdsApi::HTTPNotFound.new(e.http_code)
|
@@ -169,7 +175,7 @@ module GdsApi
|
|
169
175
|
url: url,
|
170
176
|
headers: DEFAULT_REQUEST_HEADERS
|
171
177
|
}
|
172
|
-
method_params[:payload] = params
|
178
|
+
method_params[:payload] = params
|
173
179
|
method_params = with_auth_options(method_params)
|
174
180
|
method_params = with_timeout(method_params)
|
175
181
|
if URI.parse(url).is_a? URI::HTTPS
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module GdsApi
|
2
|
+
module TestHelpers
|
3
|
+
module AssetManager
|
4
|
+
|
5
|
+
ASSET_ENDPOINT = Plek.current.find('asset-manager')
|
6
|
+
|
7
|
+
def asset_manager_has_an_asset(id, atts)
|
8
|
+
response = atts.merge({
|
9
|
+
"_response_info" => { "status" => "ok" }
|
10
|
+
})
|
11
|
+
|
12
|
+
stub_request(:get, "#{ASSET_ENDPOINT}/assets/#{id}")
|
13
|
+
.to_return(:body => response.to_json, :status => 200)
|
14
|
+
end
|
15
|
+
|
16
|
+
def asset_manager_does_not_have_an_asset(id)
|
17
|
+
response = {
|
18
|
+
"_response_info" => { "status" => "not found" }
|
19
|
+
}
|
20
|
+
|
21
|
+
stub_request(:get, "#{ASSET_ENDPOINT}/assets/#{id}")
|
22
|
+
.to_return(:body => response.to_json, :status => 404)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -301,23 +301,6 @@ module GdsApi
|
|
301
301
|
@stubbed_content_api_licences << details
|
302
302
|
end
|
303
303
|
|
304
|
-
def content_api_has_countries(countries)
|
305
|
-
response = response_base.merge({
|
306
|
-
"results" => countries.map { |slug, values|
|
307
|
-
updated_at = values.has_key?(:updated_at) ? {"updated_at" => values[:updated_at]} : {}
|
308
|
-
{
|
309
|
-
"id" => "#{CONTENT_API_ENDPOINT}/foreign-travel-advice/#{slug}.json",
|
310
|
-
"name" => values[:name],
|
311
|
-
"identifier" => slug,
|
312
|
-
"web_url" => "http://www.test.gov.uk/foreign-travel-advice/#{slug}",
|
313
|
-
}.merge(updated_at)
|
314
|
-
},
|
315
|
-
"total" => countries.length
|
316
|
-
})
|
317
|
-
|
318
|
-
stub_request(:get, %r{\A#{CONTENT_API_ENDPOINT}/foreign-travel-advice\.json}).to_return(status: 200, body: response.to_json, headers: { })
|
319
|
-
end
|
320
|
-
|
321
304
|
private
|
322
305
|
|
323
306
|
def titleize_slug(slug)
|
data/lib/gds_api/version.rb
CHANGED
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'gds_api/asset_manager'
|
3
|
+
require 'gds_api/test_helpers/asset_manager'
|
4
|
+
|
5
|
+
describe GdsApi::AssetManager do
|
6
|
+
include GdsApi::TestHelpers::AssetManager
|
7
|
+
|
8
|
+
before do
|
9
|
+
@base_api_url = Plek.current.find("asset-manager")
|
10
|
+
@api = GdsApi::AssetManager.new(@base_api_url)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "can create an asset with a file" do
|
14
|
+
stub_request(:post, "#{@base_api_url}/assets").
|
15
|
+
with(:body => %r{Content\-Disposition: form\-data; name="asset\[file\]"; filename="hello\.txt"\r\nContent\-Type: text/plain}).
|
16
|
+
to_return(:body => '{"asset":{"id":"http://asset-manager.dev.gov.uk/assets/51278b2b686c82076c000003"}}', :status => 201)
|
17
|
+
|
18
|
+
file = load_fixture_file("hello.txt")
|
19
|
+
response = @api.create_asset(:file => file)
|
20
|
+
|
21
|
+
assert_equal "http://asset-manager.dev.gov.uk/assets/51278b2b686c82076c000003", response.asset.id
|
22
|
+
end
|
23
|
+
|
24
|
+
it "can get an asset" do
|
25
|
+
asset_manager_has_an_asset("test-id", { "name" => "photo.jpg", "content_type" => "image/jpeg", "file_url" => "http://fooey.gov.uk/media/photo.jpg" })
|
26
|
+
|
27
|
+
asset = @api.asset("test-id")
|
28
|
+
|
29
|
+
assert_equal "photo.jpg", asset.name
|
30
|
+
assert_equal "image/jpeg", asset.content_type
|
31
|
+
assert_equal "http://fooey.gov.uk/media/photo.jpg", asset.file_url
|
32
|
+
end
|
33
|
+
|
34
|
+
it "returns nil when an asset does not exist" do
|
35
|
+
asset_manager_does_not_have_an_asset("not-really-here")
|
36
|
+
|
37
|
+
assert_nil @api.asset("not-really-here")
|
38
|
+
end
|
39
|
+
end
|
data/test/content_api_test.rb
CHANGED
@@ -556,32 +556,6 @@ describe GdsApi::ContentApi do
|
|
556
556
|
end
|
557
557
|
end
|
558
558
|
|
559
|
-
describe "countries" do
|
560
|
-
before(:each) do
|
561
|
-
content_api_has_countries({
|
562
|
-
'afghanistan' => {:name => 'Afghanistan', :updated_at => "2013-02-11T16:12:22+00:00" },
|
563
|
-
'albania' => {:name => 'Albania'},
|
564
|
-
'algeria' => {:name => 'Algeria'}
|
565
|
-
})
|
566
|
-
|
567
|
-
@results = @api.countries['results']
|
568
|
-
end
|
569
|
-
|
570
|
-
it "should fetch the list of countries" do
|
571
|
-
assert_equal 3, @results.length
|
572
|
-
|
573
|
-
assert_equal ['afghanistan', 'albania', 'algeria'], @results.map {|c| c['identifier'] }
|
574
|
-
assert_equal ['Afghanistan', 'Albania', 'Algeria'], @results.map {|c| c['name'] }
|
575
|
-
|
576
|
-
assert_equal "#{@base_api_url}/foreign-travel-advice/afghanistan.json", @results.first['id']
|
577
|
-
assert_equal 'http://www.test.gov.uk/foreign-travel-advice/afghanistan', @results.first['web_url']
|
578
|
-
end
|
579
|
-
|
580
|
-
it "should parse all updated_at values to Time objects" do
|
581
|
-
assert_equal [Time.parse("2013-02-11T16:12:22+00:00"), nil, nil], @results.map {|c| c['updated_at'] }
|
582
|
-
end
|
583
|
-
end
|
584
|
-
|
585
559
|
def api_response_for_results(results)
|
586
560
|
{
|
587
561
|
"_response_info" => {
|
@@ -0,0 +1 @@
|
|
1
|
+
Hello, world!
|
data/test/imminence_api_test.rb
CHANGED
@@ -111,9 +111,36 @@ class ImminenceApiTest < MiniTest::Unit::TestCase
|
|
111
111
|
|
112
112
|
schemes = c.business_support_schemes(sectors: "agriculture,healthcare,manufacturing",
|
113
113
|
business_types: "private-company", stages: "grow-and-sustain", types: "award,loan")
|
114
|
-
|
114
|
+
|
115
115
|
assert_equal 3, schemes.size
|
116
116
|
assert_equal "bar-business-award", schemes.first["business_support_identifier"]
|
117
117
|
assert_equal "Foo small business loan.", schemes.last["title"]
|
118
118
|
end
|
119
|
+
|
120
|
+
def test_places_kml
|
121
|
+
kml_body = <<-EOS
|
122
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
123
|
+
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
|
124
|
+
<Document>
|
125
|
+
<name>DVLA Offices</name>
|
126
|
+
<Placemark>
|
127
|
+
<atom:link/>
|
128
|
+
<name>DVLA Aberdeen local office</name>
|
129
|
+
<description>For enquiries about vehicles: 0300 790 6802 (Textphone minicom users 0300 123 1279).For enquiries about driving licences: 0300 790 6801 (Textphone minicom users 0300 123 1278).Please note, all calls are handled initially by our call centre based in Swansea</description>
|
130
|
+
<address>Greyfriars House, Gallowgate, Aberdeen, AB10 1WG, UK</address>
|
131
|
+
<Point>
|
132
|
+
<coordinates>-2.0971999005177566,57.150739708305785,0</coordinates>
|
133
|
+
</Point>
|
134
|
+
</Placemark>
|
135
|
+
</document>
|
136
|
+
</kml>
|
137
|
+
EOS
|
138
|
+
|
139
|
+
stub_request(:get, "#{ROOT}/places/test.kml").
|
140
|
+
with(headers: GdsApi::JsonClient::DEFAULT_REQUEST_HEADERS).
|
141
|
+
to_return(status: 200, body: kml_body )
|
142
|
+
|
143
|
+
response_body = api_client.places_kml("test")
|
144
|
+
assert_equal kml_body, response_body
|
145
|
+
end
|
119
146
|
end
|
data/test/json_client_test.rb
CHANGED
@@ -443,4 +443,32 @@ class JsonClientTest < MiniTest::Spec
|
|
443
443
|
|
444
444
|
assert_equal "hello", response["test"]
|
445
445
|
end
|
446
|
+
|
447
|
+
def test_client_can_post_multipart_responses
|
448
|
+
url = "http://some.endpoint/some.json"
|
449
|
+
stub_request(:post, url).
|
450
|
+
with(:body => %r{Content\-Disposition: form\-data; name="a"\r\n\r\n123}, :headers => {'Content-Type' => %r{multipart/form-data; boundary=\d+}}).
|
451
|
+
to_return(:body => '{"b": "1"}', :status => 200)
|
452
|
+
|
453
|
+
response = @client.post_multipart("http://some.endpoint/some.json", {"a" => "123"})
|
454
|
+
assert_equal "1", response["b"]
|
455
|
+
end
|
456
|
+
|
457
|
+
def test_post_multipart_should_raise_exception_if_not_found
|
458
|
+
url = "http://some.endpoint/some.json"
|
459
|
+
stub_request(:post, url).to_return(:body => '', :status => 404)
|
460
|
+
|
461
|
+
assert_raises GdsApi::HTTPNotFound do
|
462
|
+
@client.post_multipart("http://some.endpoint/some.json", {"a" => "123"})
|
463
|
+
end
|
464
|
+
end
|
465
|
+
|
466
|
+
def test_post_multipart_should_raise_error_responses
|
467
|
+
url = "http://some.endpoint/some.json"
|
468
|
+
stub_request(:post, url).to_return(:body => '', :status => 500)
|
469
|
+
|
470
|
+
assert_raises GdsApi::HTTPErrorResponse do
|
471
|
+
@client.post_multipart("http://some.endpoint/some.json", {"a" => "123"})
|
472
|
+
end
|
473
|
+
end
|
446
474
|
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: gds-api-adapters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version:
|
5
|
+
version: 5.0.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- James Stewart
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2013-02-
|
13
|
+
date: 2013-02-25 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: plek
|
@@ -188,46 +188,50 @@ extra_rdoc_files: []
|
|
188
188
|
|
189
189
|
files:
|
190
190
|
- lib/gds_api/version.rb
|
191
|
-
- lib/gds_api/
|
192
|
-
- lib/gds_api/licence_application.rb
|
191
|
+
- lib/gds_api/publisher.rb
|
193
192
|
- lib/gds_api/panopticon/registerer.rb
|
194
|
-
- lib/gds_api/
|
195
|
-
- lib/gds_api/imminence.rb
|
196
|
-
- lib/gds_api/rummager.rb
|
193
|
+
- lib/gds_api/asset_manager.rb
|
197
194
|
- lib/gds_api/content_api.rb
|
198
|
-
- lib/gds_api/
|
199
|
-
- lib/gds_api/
|
200
|
-
- lib/gds_api/
|
201
|
-
- lib/gds_api/core-ext/openstruct.rb
|
202
|
-
- lib/gds_api/response.rb
|
203
|
-
- lib/gds_api/content_api/list_response.rb
|
204
|
-
- lib/gds_api/content_api/response.rb
|
205
|
-
- lib/gds_api/publisher.rb
|
206
|
-
- lib/gds_api/test_helpers/licence_application.rb
|
207
|
-
- lib/gds_api/test_helpers/imminence.rb
|
195
|
+
- lib/gds_api/imminence.rb
|
196
|
+
- lib/gds_api/test_helpers/publisher.rb
|
197
|
+
- lib/gds_api/test_helpers/asset_manager.rb
|
208
198
|
- lib/gds_api/test_helpers/content_api.rb
|
199
|
+
- lib/gds_api/test_helpers/imminence.rb
|
200
|
+
- lib/gds_api/test_helpers/licence_application.rb
|
209
201
|
- lib/gds_api/test_helpers/mapit.rb
|
210
202
|
- lib/gds_api/test_helpers/content_api/artefact_stub.rb
|
211
|
-
- lib/gds_api/test_helpers/publisher.rb
|
212
203
|
- lib/gds_api/test_helpers/panopticon.rb
|
213
204
|
- lib/gds_api/test_helpers/json_client_helper.rb
|
214
|
-
- lib/gds_api/
|
205
|
+
- lib/gds_api/licence_application.rb
|
206
|
+
- lib/gds_api/base.rb
|
207
|
+
- lib/gds_api/mapit.rb
|
208
|
+
- lib/gds_api/json_client.rb
|
209
|
+
- lib/gds_api/response.rb
|
210
|
+
- lib/gds_api/content_api/list_response.rb
|
211
|
+
- lib/gds_api/content_api/response.rb
|
212
|
+
- lib/gds_api/rummager.rb
|
215
213
|
- lib/gds_api/panopticon.rb
|
214
|
+
- lib/gds_api/core-ext/openstruct.rb
|
215
|
+
- lib/gds_api/part_methods.rb
|
216
|
+
- lib/gds_api/needotron.rb
|
217
|
+
- lib/gds_api/exceptions.rb
|
216
218
|
- lib/gds_api/helpers.rb
|
217
219
|
- README.md
|
218
220
|
- Rakefile
|
219
|
-
- test/
|
221
|
+
- test/panopticon_api_test.rb
|
220
222
|
- test/publisher_api_test.rb
|
221
|
-
- test/content_api_response_test.rb
|
222
|
-
- test/licence_application_api_test.rb
|
223
223
|
- test/mapit_test.rb
|
224
|
-
- test/
|
224
|
+
- test/rummager_test.rb
|
225
225
|
- test/imminence_api_test.rb
|
226
|
+
- test/panopticon_registerer_test.rb
|
227
|
+
- test/content_api_test.rb
|
228
|
+
- test/asset_manager_test.rb
|
229
|
+
- test/content_api_response_test.rb
|
226
230
|
- test/json_client_test.rb
|
227
|
-
- test/test_helper.rb
|
228
231
|
- test/gds_api_base_test.rb
|
229
|
-
- test/
|
230
|
-
- test/
|
232
|
+
- test/licence_application_api_test.rb
|
233
|
+
- test/fixtures/hello.txt
|
234
|
+
- test/test_helper.rb
|
231
235
|
homepage: http://github.com/alphagov/gds-api-adapters
|
232
236
|
licenses: []
|
233
237
|
|
@@ -241,7 +245,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
241
245
|
requirements:
|
242
246
|
- - ">="
|
243
247
|
- !ruby/object:Gem::Version
|
244
|
-
hash:
|
248
|
+
hash: 2029378621472477619
|
245
249
|
segments:
|
246
250
|
- 0
|
247
251
|
version: "0"
|
@@ -250,7 +254,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
250
254
|
requirements:
|
251
255
|
- - ">="
|
252
256
|
- !ruby/object:Gem::Version
|
253
|
-
hash:
|
257
|
+
hash: 2029378621472477619
|
254
258
|
segments:
|
255
259
|
- 0
|
256
260
|
version: "0"
|
@@ -262,15 +266,17 @@ signing_key:
|
|
262
266
|
specification_version: 3
|
263
267
|
summary: Adapters to work with GDS APIs
|
264
268
|
test_files:
|
265
|
-
- test/
|
269
|
+
- test/panopticon_api_test.rb
|
266
270
|
- test/publisher_api_test.rb
|
267
|
-
- test/content_api_response_test.rb
|
268
|
-
- test/licence_application_api_test.rb
|
269
271
|
- test/mapit_test.rb
|
270
|
-
- test/
|
272
|
+
- test/rummager_test.rb
|
271
273
|
- test/imminence_api_test.rb
|
274
|
+
- test/panopticon_registerer_test.rb
|
275
|
+
- test/content_api_test.rb
|
276
|
+
- test/asset_manager_test.rb
|
277
|
+
- test/content_api_response_test.rb
|
272
278
|
- test/json_client_test.rb
|
273
|
-
- test/test_helper.rb
|
274
279
|
- test/gds_api_base_test.rb
|
275
|
-
- test/
|
276
|
-
- test/
|
280
|
+
- test/licence_application_api_test.rb
|
281
|
+
- test/fixtures/hello.txt
|
282
|
+
- test/test_helper.rb
|