gds-api-adapters 10.13.0 → 10.14.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.
@@ -7,13 +7,13 @@ module GdsApi
|
|
7
7
|
module TestHelpers
|
8
8
|
module BusinessSupportHelper
|
9
9
|
def setup_business_support_stubs(endpoint, path)
|
10
|
-
@stubbed_business_supports =
|
10
|
+
@stubbed_business_supports = []
|
11
11
|
stub_request(:get, %r{\A#{endpoint}/#{path}\.json}).to_return do |request|
|
12
12
|
if request.uri.query_values
|
13
|
-
|
14
|
-
results =
|
13
|
+
facets = sanitise_facets(request.uri.query_values)
|
14
|
+
results = stubs_for_facets(facets) || []
|
15
15
|
else
|
16
|
-
results = @stubbed_business_supports
|
16
|
+
results = @stubbed_business_supports
|
17
17
|
end
|
18
18
|
{:body => plural_response_base.merge("results" => results, "total" => results.size).to_json}
|
19
19
|
end
|
@@ -21,19 +21,34 @@ module GdsApi
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def api_has_business_support(business_support, facets={})
|
24
|
-
|
25
|
-
|
26
|
-
|
24
|
+
facets = sanitise_facets(facets)
|
25
|
+
if business_support.is_a?(Symbol)
|
26
|
+
bs_with_facets = facets.merge(:title => business_support)
|
27
|
+
else
|
28
|
+
bs_with_facets = facets.merge(business_support)
|
27
29
|
end
|
28
|
-
@stubbed_business_supports
|
30
|
+
@stubbed_business_supports << bs_with_facets unless @stubbed_business_supports.include?(bs_with_facets)
|
29
31
|
end
|
30
32
|
|
31
33
|
private
|
32
34
|
|
33
|
-
def
|
34
|
-
|
35
|
-
|
36
|
-
|
35
|
+
def stubs_for_facets(facets)
|
36
|
+
@stubbed_business_supports.select do |bs|
|
37
|
+
facet_matches = 0
|
38
|
+
facets.each do |k,v|
|
39
|
+
if bs[k] and (v & bs[k]).any?
|
40
|
+
facet_matches += 1
|
41
|
+
end
|
42
|
+
end
|
43
|
+
facet_matches == facets.keys.size
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def sanitise_facets(facets)
|
48
|
+
Hash[facets.map{ |k, v|
|
49
|
+
v = v.split(',') if v.is_a?(String)
|
50
|
+
[k.to_sym, v]
|
51
|
+
}]
|
37
52
|
end
|
38
53
|
end
|
39
54
|
end
|
data/lib/gds_api/version.rb
CHANGED
@@ -15,12 +15,13 @@ describe GdsApi::BusinessSupportApi do
|
|
15
15
|
it "should return all schemes when called with no facets" do
|
16
16
|
business_support_api_has_schemes([:scheme1, :scheme2, :scheme3])
|
17
17
|
response = @api.schemes
|
18
|
-
assert_equal ["scheme1", "scheme2", "scheme3"], response['results']
|
18
|
+
assert_equal [{"title" => "scheme1"}, {"title" => "scheme2"}, {"title" => "scheme3"}], response['results']
|
19
19
|
end
|
20
20
|
it "should return schemes for applicable facets" do
|
21
21
|
business_support_api_has_scheme(:scottish_manufacturing, {locations: 'scotland', sectors: 'manufacturing', support_types: 'grant,loan'})
|
22
22
|
response = @api.schemes({locations: 'scotland', sectors: 'manufacturing', support_types: 'grant,loan'})
|
23
|
-
assert_equal
|
23
|
+
assert_equal 1, response["results"].size
|
24
|
+
assert_equal "scottish_manufacturing", response["results"].first["title"]
|
24
25
|
end
|
25
26
|
it "should return an empty result when facets are not applicable" do
|
26
27
|
business_support_api_has_scheme(:super_secret, {locations: 'the moon', sectors: 'espionage'})
|
data/test/content_api_test.rb
CHANGED
@@ -620,7 +620,8 @@ describe GdsApi::ContentApi do
|
|
620
620
|
response = @api.business_support_schemes(:locations => "england", :sectors => "farming").to_hash
|
621
621
|
|
622
622
|
assert_equal 2, response["total"]
|
623
|
-
assert_equal [
|
623
|
+
assert_equal s1["title"], response["results"].first["title"]
|
624
|
+
assert_equal s3["title"], response["results"].last["title"]
|
624
625
|
end
|
625
626
|
end
|
626
627
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gds-api-adapters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 10.
|
4
|
+
version: 10.14.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-06-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: plek
|
@@ -382,7 +382,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
382
382
|
version: '0'
|
383
383
|
segments:
|
384
384
|
- 0
|
385
|
-
hash:
|
385
|
+
hash: -4129704915142926265
|
386
386
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
387
387
|
none: false
|
388
388
|
requirements:
|
@@ -391,7 +391,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
391
391
|
version: '0'
|
392
392
|
segments:
|
393
393
|
- 0
|
394
|
-
hash:
|
394
|
+
hash: -4129704915142926265
|
395
395
|
requirements: []
|
396
396
|
rubyforge_project:
|
397
397
|
rubygems_version: 1.8.23
|