esp_sdk 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/esp_sdk/configure.rb +1 -1
- data/lib/esp_sdk/end_points/base.rb +14 -2
- data/lib/esp_sdk/version.rb +1 -1
- data/test/esp_sdk/configure_test.rb +2 -2
- data/test/esp_sdk/end_points/base_test.rb +70 -51
- data/test/esp_sdk/end_points/custom_signatures_test.rb +1 -1
- data/test/esp_sdk/end_points/dashboard_test.rb +1 -1
- data/test/esp_sdk/end_points/signatures_test.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5aa714df3a847288324a32ae65bba48ed237af47
|
4
|
+
data.tar.gz: 8e197b5f6243a21242ef6c2031a880e0443fe3d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c968f9a4ed69d7a4d66a50b9b22bf72925dac0140818f6b93a0f05168a509223e466057d3881f0fd7de1bd572c8743835a9fcd93d75aa9330a246af5d2e14aaf
|
7
|
+
data.tar.gz: db6a83e184df987dba7eef7938a55b2c6065b822e6bec79228b1979c8a6367e58e49e7f793c98087cd5149f67453a694d7f4de4d5483750e272f051b5141dadd
|
data/lib/esp_sdk/configure.rb
CHANGED
@@ -78,12 +78,24 @@ module EspSdk
|
|
78
78
|
@current_record = ActiveSupport::HashWithIndifferentAccess.new(JSON.load(response.body))
|
79
79
|
end
|
80
80
|
|
81
|
+
# Converts the link header into a hash of links
|
82
|
+
#
|
83
|
+
# "<http://test.host/api/v1/custom_signatures?page=2>; rel=\"last\", <http://test.host/api/v1/custom_signatures?page=2>; rel=\"next\""
|
84
|
+
# => { "last" => "http://test.host/api/v1/custom_signatures?page=2",
|
85
|
+
# "next" => "http://test.host/api/v1/custom_signatures?page=2" }
|
81
86
|
def pagination_links(response)
|
82
87
|
@page_links = ActiveSupport::HashWithIndifferentAccess.new(JSON.load(response.headers[:link]))
|
88
|
+
rescue JSON::ParserError
|
89
|
+
@page_links = ActiveSupport::HashWithIndifferentAccess.new.tap do |page_links|
|
90
|
+
response.headers[:link].to_s.split(',').each do |link|
|
91
|
+
/<(?<link>.*)>; rel="(?<key>\w*)"/ =~ link
|
92
|
+
page_links[key] = link
|
93
|
+
end
|
94
|
+
end
|
83
95
|
end
|
84
96
|
|
85
|
-
def current_page=(
|
86
|
-
@current_page =
|
97
|
+
def current_page=(values)
|
98
|
+
@current_page = values.map(&:with_indifferent_access)
|
87
99
|
end
|
88
100
|
end
|
89
101
|
end
|
data/lib/esp_sdk/version.rb
CHANGED
@@ -29,7 +29,7 @@ class ConfigureTest < ActiveSupport::TestCase
|
|
29
29
|
should 'return the development URI when the environment is not release or production' do
|
30
30
|
EspSdk.expects(:production?).returns(false)
|
31
31
|
EspSdk.expects(:release?).returns(false)
|
32
|
-
assert_equal 'http://0.0.0.0:
|
32
|
+
assert_equal 'http://0.0.0.0:3000/api', @config.uri
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -46,4 +46,4 @@ class ConfigureTest < ActiveSupport::TestCase
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
end
|
49
|
-
end
|
49
|
+
end
|
@@ -10,28 +10,39 @@ class BaseTest < ActiveSupport::TestCase
|
|
10
10
|
end
|
11
11
|
|
12
12
|
context '#next_page' do
|
13
|
-
setup do
|
14
|
-
# Setup fakeweb
|
15
|
-
FakeWeb.register_uri(:get, /api\/v1\/base/,
|
16
|
-
:body => { stub: 'Stub' }.to_json)
|
17
|
-
end
|
18
|
-
|
19
13
|
should 'call list if @current_page is blank' do
|
14
|
+
FakeWeb.register_uri(:get, %r{api/v1/base}, body: [{ stub: 'Stub' }].to_json)
|
20
15
|
@base.expects(:list)
|
16
|
+
|
21
17
|
@base.next_page
|
22
18
|
end
|
23
19
|
|
24
20
|
should "return the current page if @page_links['links']' are blank" do
|
21
|
+
FakeWeb.register_uri(:get, %r{api/v1/base}, body: [{ stub: 'Stub' }].to_json)
|
25
22
|
@base.expects(:current_page)
|
23
|
+
|
26
24
|
@base.next_page
|
27
25
|
end
|
26
|
+
|
27
|
+
should 'request next page and set current_page' do
|
28
|
+
FakeWeb.register_uri(:get, 'http://0.0.0.0:3000/api/v1/base',
|
29
|
+
:body => [{ stub: 'page1' }].to_json,
|
30
|
+
:link => %(<http://0.0.0.0:3000/api/v1/base?page=5>; rel="last", <http://0.0.0.0:3000/api/v1/base?page=2>; rel="next"))
|
31
|
+
FakeWeb.register_uri(:get, 'http://0.0.0.0:3000/api/v1/base?page=2',
|
32
|
+
:body => [{ stub: 'page2' }].to_json)
|
33
|
+
|
34
|
+
@base = EspSdk::EndPoints::Base.new(@config)
|
35
|
+
@base.list
|
36
|
+
@base.next_page
|
37
|
+
|
38
|
+
assert_equal 'page2', @base.current_page.first[:stub]
|
39
|
+
end
|
28
40
|
end
|
29
41
|
|
30
42
|
context '#prev_page' do
|
31
43
|
setup do
|
32
|
-
|
33
|
-
|
34
|
-
:body => { stub: 'Stub' }.to_json)
|
44
|
+
FakeWeb.register_uri(:get, %r{api/v1/base},
|
45
|
+
:body => [{ stub: 'Stub' }].to_json)
|
35
46
|
end
|
36
47
|
|
37
48
|
should 'call list if @current_page is blank' do
|
@@ -46,30 +57,26 @@ class BaseTest < ActiveSupport::TestCase
|
|
46
57
|
end
|
47
58
|
|
48
59
|
context '#list' do
|
49
|
-
setup do
|
50
|
-
# Setup fakeweb
|
51
|
-
FakeWeb.register_uri(:get, /api\/v1\/base/,
|
52
|
-
:body => { stub: 'Stub' }.to_json)
|
53
|
-
end
|
54
|
-
|
55
60
|
should 'set the current page and setup link pagination' do
|
61
|
+
FakeWeb.register_uri(:get, %r{api/v1/base},
|
62
|
+
:body => [{ stub: 'Stub' }].to_json)
|
56
63
|
@base.expects(:pagination_links)
|
64
|
+
|
57
65
|
response = @base.list
|
58
|
-
|
66
|
+
|
67
|
+
assert response.first.key?('stub')
|
59
68
|
assert_equal response, @base.current_page
|
60
69
|
end
|
61
70
|
end
|
62
71
|
|
63
72
|
context '#show' do
|
64
|
-
setup do
|
65
|
-
# Setup fakeweb
|
66
|
-
FakeWeb.register_uri(:get, /api\/v1\/base\/1/,
|
67
|
-
:body => { stub: 'Stub' }.to_json)
|
68
|
-
end
|
69
|
-
|
70
73
|
should 'call validate id and return the stub response, and set the current_record' do
|
74
|
+
FakeWeb.register_uri(:get, %r{api/v1/base/1},
|
75
|
+
:body => { stub: 'Stub' }.to_json)
|
71
76
|
payload = { id: 1 }
|
77
|
+
|
72
78
|
@base.expects(:validate_id).with(payload)
|
79
|
+
|
73
80
|
response = @base.show(payload)
|
74
81
|
assert response.key?('stub')
|
75
82
|
assert_equal response, @base.current_record
|
@@ -77,15 +84,13 @@ class BaseTest < ActiveSupport::TestCase
|
|
77
84
|
end
|
78
85
|
|
79
86
|
context '#update' do
|
80
|
-
setup do
|
81
|
-
# Setup fakeweb
|
82
|
-
FakeWeb.register_uri(:get, /api\/v1\/base\/1/,
|
83
|
-
:body => { stub: 'Stub' }.to_json)
|
84
|
-
end
|
85
|
-
|
86
87
|
should 'call validate id and return the stub response, and set the current_record' do
|
88
|
+
FakeWeb.register_uri(:get, %r{api/v1/base/1},
|
89
|
+
:body => { stub: 'Stub' }.to_json)
|
87
90
|
payload = { id: 1, name: 'Test' }
|
91
|
+
|
88
92
|
@base.expects(:validate_id).with(payload)
|
93
|
+
|
89
94
|
response = @base.show(payload)
|
90
95
|
assert response.key?('stub')
|
91
96
|
assert_equal response, @base.current_record
|
@@ -93,15 +98,13 @@ class BaseTest < ActiveSupport::TestCase
|
|
93
98
|
end
|
94
99
|
|
95
100
|
context '#destroy' do
|
96
|
-
|
97
|
-
# Setup fakeweb
|
101
|
+
should 'call validate id and return the stub response, and set the current_record' do
|
98
102
|
FakeWeb.register_uri(:get, /api\/v1\/base\/1/,
|
99
103
|
:body => { success: 'Stub has been destroyed' }.to_json)
|
100
|
-
end
|
101
|
-
|
102
|
-
should 'call validate id and return the stub response, and set the current_record' do
|
103
104
|
payload = { id: 1 }
|
105
|
+
|
104
106
|
@base.expects(:validate_id).with(payload)
|
107
|
+
|
105
108
|
response = @base.show(payload)
|
106
109
|
assert response.key?('success')
|
107
110
|
assert_equal response, @base.current_record
|
@@ -127,7 +130,7 @@ class BaseTest < ActiveSupport::TestCase
|
|
127
130
|
# Test through a different endpoint to get a valid URL
|
128
131
|
EspSdk.instance_variable_set(:@env, :development)
|
129
132
|
external_account = EspSdk::EndPoints::ExternalAccounts.new(@config)
|
130
|
-
assert_equal 'http://0.0.0.0:
|
133
|
+
assert_equal 'http://0.0.0.0:3000/api/v1/external_accounts/1', external_account.send(:id_url, 1)
|
131
134
|
end
|
132
135
|
|
133
136
|
should 'return a valid id url for the release environment' do
|
@@ -152,7 +155,7 @@ class BaseTest < ActiveSupport::TestCase
|
|
152
155
|
# Test through a different endpoint to get a valid URL
|
153
156
|
EspSdk.instance_variable_set(:@env, :development)
|
154
157
|
external_account = EspSdk::EndPoints::ExternalAccounts.new(@config)
|
155
|
-
assert_equal 'http://0.0.0.0:
|
158
|
+
assert_equal 'http://0.0.0.0:3000/api/v1/external_accounts', external_account.send(:base_url)
|
156
159
|
end
|
157
160
|
|
158
161
|
should 'return a valid base url for the release environment' do
|
@@ -173,39 +176,55 @@ class BaseTest < ActiveSupport::TestCase
|
|
173
176
|
end
|
174
177
|
|
175
178
|
context 'current_page' do
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
+
should 'convert hashes to ActiveSupport::HashWithIndifferentAccess' do
|
180
|
+
FakeWeb.register_uri(:get, %r{api/v1/base}, body: [{stub: 'Stub'}, {}].to_json)
|
181
|
+
|
179
182
|
@base.list
|
180
|
-
end
|
181
183
|
|
182
|
-
|
183
|
-
assert @base.current_page.is_a?(ActiveSupport::HashWithIndifferentAccess)
|
184
|
+
assert @base.current_page.first.is_a?(ActiveSupport::HashWithIndifferentAccess)
|
185
|
+
assert @base.current_page.last.is_a?(ActiveSupport::HashWithIndifferentAccess)
|
184
186
|
end
|
185
187
|
end
|
186
188
|
|
187
189
|
context 'current_record' do
|
188
|
-
|
189
|
-
|
190
|
-
|
190
|
+
should 'be ActiveSupport::HashWithIndifferentAccess' do
|
191
|
+
FakeWeb.register_uri(:get, %r{api/v1/base/1}, body: [{ stub: 'Stub' }].to_json)
|
192
|
+
|
191
193
|
@base.show(id: 1)
|
192
|
-
end
|
193
194
|
|
194
|
-
should 'be ActiveSupport::HashWithIndifferentAccess' do
|
195
195
|
assert @base.current_record.is_a?(ActiveSupport::HashWithIndifferentAccess)
|
196
196
|
end
|
197
197
|
end
|
198
198
|
|
199
199
|
context 'page_links' do
|
200
|
-
|
201
|
-
|
202
|
-
|
200
|
+
should 'be ActiveSupport::HashWithIndifferentAccess' do
|
201
|
+
FakeWeb.register_uri(:get, %r{api/v1/base}, body: [{ stub: 'Stub' }].to_json)
|
202
|
+
|
203
203
|
@base.list
|
204
|
-
end
|
205
204
|
|
206
|
-
should 'be ActiveSupport::HashWithIndifferentAccess' do
|
207
205
|
assert @base.instance_variable_get(:@page_links).is_a?(ActiveSupport::HashWithIndifferentAccess)
|
208
206
|
end
|
207
|
+
|
208
|
+
should 'set @page_links to hash with URLs if in JSON format' do
|
209
|
+
FakeWeb.register_uri(:get, %r{api/v1/base}, body: [{ stub: 'Stub' }].to_json,
|
210
|
+
link: %({"next": "http://test.host/api/v1/custom_signatures?page=2", "last": "http://test.host/api/v1/custom_signatures?page=5"}))
|
211
|
+
|
212
|
+
@base.list
|
213
|
+
|
214
|
+
links = @base.instance_variable_get(:@page_links)
|
215
|
+
assert_equal 'http://test.host/api/v1/custom_signatures?page=5', links[:last]
|
216
|
+
assert_equal 'http://test.host/api/v1/custom_signatures?page=2', links[:next]
|
217
|
+
end
|
218
|
+
|
219
|
+
should 'set @page_links to hash with URLs if in HTTP format' do
|
220
|
+
FakeWeb.register_uri(:get, %r{api/v1/base}, body: [{ stub: 'Stub' }].to_json,
|
221
|
+
link: %(<http://test.host/api/v1/custom_signatures?page=5>; rel="last", <http://test.host/api/v1/custom_signatures?page=2>; rel="next"))
|
222
|
+
@base.list
|
223
|
+
|
224
|
+
links = @base.instance_variable_get(:@page_links)
|
225
|
+
assert_equal 'http://test.host/api/v1/custom_signatures?page=5', links[:last]
|
226
|
+
assert_equal 'http://test.host/api/v1/custom_signatures?page=2', links[:next]
|
227
|
+
end
|
209
228
|
end
|
210
229
|
end
|
211
230
|
end
|
@@ -34,7 +34,7 @@ class CustomSignaturesTest < ActiveSupport::TestCase
|
|
34
34
|
context '#run_url' do
|
35
35
|
should 'have the correct run_url for development environment' do
|
36
36
|
EspSdk.instance_variable_set(:@env, :development)
|
37
|
-
assert_equal 'http://0.0.0.0:
|
37
|
+
assert_equal 'http://0.0.0.0:3000/api/v1/custom_signatures/run', @custom_signatures.send(:run_url)
|
38
38
|
end
|
39
39
|
|
40
40
|
should 'have the correct run_url for the release environment' do
|
@@ -22,7 +22,7 @@ class DashboardTest < ActiveSupport::TestCase
|
|
22
22
|
context '#timewarp_url' do
|
23
23
|
should 'have the correct run_url for development environment' do
|
24
24
|
EspSdk.instance_variable_set(:@env, :development)
|
25
|
-
assert_equal 'http://0.0.0.0:
|
25
|
+
assert_equal 'http://0.0.0.0:3000/api/v1/dashboard/timewarp', @dashboard.send(:timewarp_url)
|
26
26
|
end
|
27
27
|
|
28
28
|
should 'have the correct run_url for the release environment' do
|
@@ -30,7 +30,7 @@ class SignaturesTest < ActiveSupport::TestCase
|
|
30
30
|
context '#run_url' do
|
31
31
|
should 'have the correct run_url for development environment' do
|
32
32
|
EspSdk.instance_variable_set(:@env, :development)
|
33
|
-
assert_equal 'http://0.0.0.0:
|
33
|
+
assert_equal 'http://0.0.0.0:3000/api/v1/signatures/run', @signatures.send(:run_url)
|
34
34
|
end
|
35
35
|
|
36
36
|
should 'have the correct run_url for the release environment' do
|
@@ -47,7 +47,7 @@ class SignaturesTest < ActiveSupport::TestCase
|
|
47
47
|
context '#name_url' do
|
48
48
|
should 'have the correct run_url for development environment' do
|
49
49
|
EspSdk.instance_variable_set(:@env, :development)
|
50
|
-
assert_equal 'http://0.0.0.0:
|
50
|
+
assert_equal 'http://0.0.0.0:3000/api/v1/signatures/signature_names', @signatures.send(:name_url)
|
51
51
|
end
|
52
52
|
|
53
53
|
should 'have the correct run_url for the release environment' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: esp_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evident.io
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -245,7 +245,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
245
245
|
version: '0'
|
246
246
|
requirements: []
|
247
247
|
rubyforge_project:
|
248
|
-
rubygems_version: 2.4.
|
248
|
+
rubygems_version: 2.4.5
|
249
249
|
signing_key:
|
250
250
|
specification_version: 4
|
251
251
|
summary: SDK for interacting with the ESP API.
|