wavefront-sdk 0.0.1
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.
- checksums.yaml +7 -0
- data/.codeclimate.yml +20 -0
- data/.gitignore +4 -0
- data/.rubocop.yml +1157 -0
- data/.travis.yml +16 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +58 -0
- data/LICENSE.txt +27 -0
- data/README.md +103 -0
- data/Rakefile +18 -0
- data/lib/wavefront-sdk/alert.rb +195 -0
- data/lib/wavefront-sdk/base.rb +251 -0
- data/lib/wavefront-sdk/cloudintegration.rb +88 -0
- data/lib/wavefront-sdk/credentials.rb +79 -0
- data/lib/wavefront-sdk/dashboard.rb +157 -0
- data/lib/wavefront-sdk/event.rb +173 -0
- data/lib/wavefront-sdk/exception.rb +39 -0
- data/lib/wavefront-sdk/externallink.rb +77 -0
- data/lib/wavefront-sdk/maintenancewindow.rb +75 -0
- data/lib/wavefront-sdk/message.rb +36 -0
- data/lib/wavefront-sdk/metric.rb +52 -0
- data/lib/wavefront-sdk/mixins.rb +60 -0
- data/lib/wavefront-sdk/proxy.rb +95 -0
- data/lib/wavefront-sdk/query.rb +96 -0
- data/lib/wavefront-sdk/response.rb +56 -0
- data/lib/wavefront-sdk/savedsearch.rb +88 -0
- data/lib/wavefront-sdk/search.rb +58 -0
- data/lib/wavefront-sdk/source.rb +131 -0
- data/lib/wavefront-sdk/user.rb +108 -0
- data/lib/wavefront-sdk/validators.rb +395 -0
- data/lib/wavefront-sdk/version.rb +1 -0
- data/lib/wavefront-sdk/webhook.rb +73 -0
- data/lib/wavefront-sdk/write.rb +225 -0
- data/pkg/wavefront-client-3.5.0.gem +0 -0
- data/spec/.rubocop.yml +14 -0
- data/spec/spec_helper.rb +157 -0
- data/spec/wavefront-sdk/alert_spec.rb +83 -0
- data/spec/wavefront-sdk/base_spec.rb +88 -0
- data/spec/wavefront-sdk/cloudintegration_spec.rb +54 -0
- data/spec/wavefront-sdk/credentials_spec.rb +55 -0
- data/spec/wavefront-sdk/dashboard_spec.rb +74 -0
- data/spec/wavefront-sdk/event_spec.rb +83 -0
- data/spec/wavefront-sdk/externallink_spec.rb +65 -0
- data/spec/wavefront-sdk/maintenancewindow_spec.rb +48 -0
- data/spec/wavefront-sdk/message_spec.rb +19 -0
- data/spec/wavefront-sdk/metric_spec.rb +21 -0
- data/spec/wavefront-sdk/mixins_spec.rb +27 -0
- data/spec/wavefront-sdk/proxy_spec.rb +41 -0
- data/spec/wavefront-sdk/query_spec.rb +51 -0
- data/spec/wavefront-sdk/resources/test.conf +10 -0
- data/spec/wavefront-sdk/response_spec.rb +47 -0
- data/spec/wavefront-sdk/savedsearch_spec.rb +54 -0
- data/spec/wavefront-sdk/search_spec.rb +47 -0
- data/spec/wavefront-sdk/source_spec.rb +48 -0
- data/spec/wavefront-sdk/user_spec.rb +56 -0
- data/spec/wavefront-sdk/validators_spec.rb +238 -0
- data/spec/wavefront-sdk/webhook_spec.rb +50 -0
- data/spec/wavefront-sdk/write_spec.rb +167 -0
- data/wavefront-sdk.gemspec +34 -0
- metadata +269 -0
@@ -0,0 +1,83 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require_relative '../spec_helper'
|
4
|
+
|
5
|
+
ALERT = '1481553823153'.freeze
|
6
|
+
ALERT_BODY = {
|
7
|
+
name: 'SDK test alert',
|
8
|
+
target: 'user@example.com',
|
9
|
+
condition: 'ts("app.errors") > 0',
|
10
|
+
displayExpression: 'ts("app.errors")',
|
11
|
+
minutes: 5,
|
12
|
+
resolveAfterMinutes: 5,
|
13
|
+
severity: 'INFO'
|
14
|
+
}.freeze
|
15
|
+
|
16
|
+
# Unit tests for Alert class
|
17
|
+
#
|
18
|
+
class WavefrontAlertTest < WavefrontTestBase
|
19
|
+
def test_list
|
20
|
+
should_work(:list, 10, '?offset=10&limit=100')
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_describe
|
24
|
+
should_work(:describe, ALERT, ALERT)
|
25
|
+
assert_raises(ArgumentError) { wf.describe }
|
26
|
+
should_be_invalid(:describe)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_create
|
30
|
+
should_work(:create, ALERT_BODY, '', :post, JSON_POST_HEADERS,
|
31
|
+
ALERT_BODY.to_json)
|
32
|
+
assert_raises(ArgumentError) { wf.create }
|
33
|
+
assert_raises(ArgumentError) { wf.create('test') }
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_describe_v
|
37
|
+
should_work(:describe, [ALERT, 4], "#{ALERT}/history/4")
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_delete
|
41
|
+
should_work(:delete, ALERT, ALERT, :delete)
|
42
|
+
should_be_invalid(:delete)
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_history
|
46
|
+
should_work(:history, ALERT, "#{ALERT}/history")
|
47
|
+
should_be_invalid(:history)
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_snooze
|
51
|
+
should_work(:snooze, ALERT, "#{ALERT}/snooze", :post, POST_HEADERS)
|
52
|
+
should_work(:snooze, [ALERT, 3600], "#{ALERT}/snooze?seconds=3600",
|
53
|
+
:post, POST_HEADERS)
|
54
|
+
should_be_invalid(:snooze)
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_update
|
58
|
+
should_work(:update, [ALERT, ALERT_BODY], ALERT, :put,
|
59
|
+
JSON_POST_HEADERS, ALERT_BODY.to_json)
|
60
|
+
should_be_invalid(:update, ['abcde', ALERT_BODY])
|
61
|
+
assert_raises(ArgumentError) { wf.update }
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_tags
|
65
|
+
tag_tester(ALERT)
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_undelete
|
69
|
+
should_work(:undelete, ALERT, ["#{ALERT}/undelete", nil], :post,
|
70
|
+
POST_HEADERS)
|
71
|
+
should_be_invalid(:undelete)
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_unsnooze
|
75
|
+
should_work(:unsnooze, ALERT, ["#{ALERT}/unsnooze", nil], :post,
|
76
|
+
POST_HEADERS)
|
77
|
+
should_be_invalid(:unsnooze)
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_summary
|
81
|
+
should_work(:summary, nil, 'summary')
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require_relative '../spec_helper'
|
4
|
+
require_relative '../../lib/wavefront-sdk/base'
|
5
|
+
|
6
|
+
#
|
7
|
+
# Test SDK base class
|
8
|
+
#
|
9
|
+
class WavefrontBaseTest < MiniTest::Test
|
10
|
+
attr_reader :wf, :wf_noop, :uri_base, :headers
|
11
|
+
|
12
|
+
def setup
|
13
|
+
@wf = Wavefront::Base.new(CREDS)
|
14
|
+
@wf_noop = Wavefront::Base.new(CREDS, noop: true)
|
15
|
+
@uri_base = "https://#{CREDS[:endpoint]}/api/v2/base"
|
16
|
+
@headers = { 'Authorization' => "Bearer #{CREDS[:token]}" }
|
17
|
+
@update_keys = []
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_time_to_ms
|
21
|
+
now_ms = Time.now.to_i * 1000
|
22
|
+
assert_equal wf.time_to_ms(now_ms), now_ms
|
23
|
+
assert_equal wf.time_to_ms(1469711187), 1469711187000
|
24
|
+
refute wf.time_to_ms([])
|
25
|
+
refute wf.time_to_ms('1469711187')
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_uri_concat
|
29
|
+
assert_equal %w(a b).uri_concat, 'a/b'
|
30
|
+
assert_equal ['', 'a', 'b'].uri_concat, '/a/b'
|
31
|
+
assert_equal %w(a /b).uri_concat, 'a/b'
|
32
|
+
assert_equal ['', 'a', 'b/'].uri_concat, '/a/b'
|
33
|
+
assert_equal %w(/a /b/ /c).uri_concat, '/a/b/c'
|
34
|
+
assert_equal ['/a', '/b c'].uri_concat, '/a/b c'
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_api_get
|
38
|
+
uri = "#{uri_base}/path?key1=val1"
|
39
|
+
stub_request(:get, uri).to_return(body: DUMMY_RESPONSE, status: 200)
|
40
|
+
wf.api_get('/path', key1: 'val1')
|
41
|
+
assert_requested(:get, uri, headers: headers)
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_api_post
|
45
|
+
uri = "#{uri_base}/path"
|
46
|
+
obj = {key: 'value'}
|
47
|
+
stub_request(:post, uri).to_return(body: DUMMY_RESPONSE, status: 200)
|
48
|
+
wf.api_post('/path', 'string')
|
49
|
+
assert_requested(:post, uri, body: 'string',
|
50
|
+
headers: headers.merge(POST_HEADERS))
|
51
|
+
wf.api_post('/path', obj)
|
52
|
+
assert_requested(:post, uri, body: obj.to_json,
|
53
|
+
headers: headers.merge(POST_HEADERS))
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_api_put
|
57
|
+
uri = "#{uri_base}/path"
|
58
|
+
stub_request(:put, uri).to_return(body: DUMMY_RESPONSE, status: 200)
|
59
|
+
wf.api_put('/path', 'body')
|
60
|
+
assert_requested(:put, uri, body: 'body'.to_json,
|
61
|
+
headers: headers.merge(JSON_POST_HEADERS))
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_api_delete
|
65
|
+
uri = "#{uri_base}/path"
|
66
|
+
stub_request(:delete, uri).to_return(body: DUMMY_RESPONSE, status: 200)
|
67
|
+
wf.api_delete('/path')
|
68
|
+
assert_requested(:delete, uri, headers: headers)
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_api_noop
|
72
|
+
uri = "#{uri_base}/path"
|
73
|
+
|
74
|
+
%w(get post put delete).each do |call|
|
75
|
+
stub_request(call.to_sym, uri)
|
76
|
+
wf_noop.send("api_#{call}", '/path')
|
77
|
+
refute_requested(call.to_sym, uri)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_hash_for_update
|
82
|
+
wf.instance_variable_set('@update_keys', [:k1, :k2])
|
83
|
+
body = { k1: 'ov1', k2: 'ov2', k3: 'ov3'}
|
84
|
+
upd = { k2: 'nv1' }
|
85
|
+
|
86
|
+
assert_equal(wf.hash_for_update(body, upd), { k1: 'ov1', k2: 'nv1'})
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require_relative '../spec_helper'
|
4
|
+
|
5
|
+
CLOUD = '3b56f61d-1a79-46f6-905c-d75a0f613d10'.freeze
|
6
|
+
CLOUD_BODY = {
|
7
|
+
name: 'SDK test Cloudwatch Integration',
|
8
|
+
service: 'CLOUDWATCH',
|
9
|
+
cloudWatch: {
|
10
|
+
baseCredentials: {
|
11
|
+
roleArn: 'arn:aws:iam::<accountid>:role/<rolename>',
|
12
|
+
externalId: 'wave123'
|
13
|
+
}
|
14
|
+
},
|
15
|
+
metricFilterRegex: '^aws.(sqs|ec2|ebs|elb).*$'
|
16
|
+
}.freeze
|
17
|
+
|
18
|
+
# Unit tests for CloudIntegration class
|
19
|
+
#
|
20
|
+
class WavefrontCloudIntegrationTest < WavefrontTestBase
|
21
|
+
def test_list
|
22
|
+
should_work(:list, 10, '?offset=10&limit=100')
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_create
|
26
|
+
should_work(:create, CLOUD_BODY, '', :post, JSON_POST_HEADERS,
|
27
|
+
CLOUD_BODY.to_json)
|
28
|
+
assert_raises(ArgumentError) { wf.create }
|
29
|
+
assert_raises(ArgumentError) { wf.create('test') }
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_delete
|
33
|
+
should_work(:delete, CLOUD, CLOUD, :delete)
|
34
|
+
should_be_invalid(:delete)
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_describe
|
38
|
+
should_work(:describe, CLOUD, CLOUD)
|
39
|
+
should_be_invalid(:describe)
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_update
|
43
|
+
should_work(:update, [CLOUD, CLOUD_BODY], CLOUD, :put,
|
44
|
+
JSON_POST_HEADERS, CLOUD_BODY.to_json)
|
45
|
+
should_be_invalid(:update, ['abcde', CLOUD_BODY])
|
46
|
+
assert_raises(ArgumentError) { wf.update }
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_undelete
|
50
|
+
should_work(:undelete, CLOUD, ["#{CLOUD}/undelete", nil], :post,
|
51
|
+
POST_HEADERS)
|
52
|
+
should_be_invalid(:undelete)
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'pathname'
|
4
|
+
require_relative '../spec_helper'
|
5
|
+
require_relative '../../lib/wavefront-sdk/credentials'
|
6
|
+
|
7
|
+
CONF = Pathname.new(__FILE__).dirname.realpath + 'resources' + 'test.conf'
|
8
|
+
|
9
|
+
# Test SDK base class
|
10
|
+
#
|
11
|
+
class WavefrontCredentialsTest < MiniTest::Test
|
12
|
+
attr_reader :wf, :wf_noop, :uri_base, :headers
|
13
|
+
|
14
|
+
def test_initialize_1
|
15
|
+
ENV.delete('WAVEFRONT_ENDPOINT')
|
16
|
+
ENV.delete('WAVEFRONT_TOKEN')
|
17
|
+
c = Wavefront::Credentials.new(file: CONF)
|
18
|
+
assert_instance_of(Wavefront::Credentials, c)
|
19
|
+
assert_instance_of(Hash, c.creds)
|
20
|
+
assert_instance_of(Hash, c.proxy)
|
21
|
+
assert_instance_of(Hash, c.config)
|
22
|
+
|
23
|
+
assert_equal(c.creds.keys, [:token, :endpoint])
|
24
|
+
assert_equal(c.creds[:token], '12345678-abcd-1234-abcd-123456789012')
|
25
|
+
assert_equal(c.creds[:endpoint], 'default.wavefront.com')
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_initialize_env_token
|
29
|
+
ENV.delete('WAVEFRONT_ENDPOINT')
|
30
|
+
ENV['WAVEFRONT_TOKEN'] = 'abcdefgh'
|
31
|
+
c = Wavefront::Credentials.new(file: CONF)
|
32
|
+
assert_instance_of(Wavefront::Credentials, c)
|
33
|
+
assert_instance_of(Hash, c.creds)
|
34
|
+
assert_instance_of(Hash, c.proxy)
|
35
|
+
assert_instance_of(Hash, c.config)
|
36
|
+
|
37
|
+
assert_equal(c.creds.keys, [:token, :endpoint])
|
38
|
+
assert_equal(c.creds[:token], 'abcdefgh')
|
39
|
+
assert_equal(c.creds[:endpoint], 'default.wavefront.com')
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_initialize_env_endpoint
|
43
|
+
ENV.delete('WAVEFRONT_TOKEN')
|
44
|
+
ENV['WAVEFRONT_ENDPOINT'] = 'endpoint.wavefront.com'
|
45
|
+
c = Wavefront::Credentials.new(file: CONF)
|
46
|
+
assert_instance_of(Wavefront::Credentials, c)
|
47
|
+
assert_instance_of(Hash, c.creds)
|
48
|
+
assert_instance_of(Hash, c.proxy)
|
49
|
+
assert_instance_of(Hash, c.config)
|
50
|
+
|
51
|
+
assert_equal(c.creds.keys, [:token, :endpoint])
|
52
|
+
assert_equal(c.creds[:token], '12345678-abcd-1234-abcd-123456789012')
|
53
|
+
assert_equal(c.creds[:endpoint], 'endpoint.wavefront.com')
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require_relative '../spec_helper'
|
4
|
+
|
5
|
+
DASHBOARD = 'test_dashboard'.freeze
|
6
|
+
DASHBOARD_BODY = {
|
7
|
+
name: 'SDK Dashboard test',
|
8
|
+
id: 'sdk-test',
|
9
|
+
description: 'dummy test dashboard',
|
10
|
+
sections: [
|
11
|
+
name: 'Section 1',
|
12
|
+
rows: [
|
13
|
+
{ charts: [
|
14
|
+
name: 'S1 Chart1',
|
15
|
+
description: 'chart',
|
16
|
+
sources: [
|
17
|
+
{ name: 'S1 C1 Source 1',
|
18
|
+
query: 'ts("some.series")' }
|
19
|
+
]
|
20
|
+
] }
|
21
|
+
]
|
22
|
+
]
|
23
|
+
}.freeze
|
24
|
+
|
25
|
+
# Unit tests for dashboard class
|
26
|
+
#
|
27
|
+
class WavefrontDashboardTest < WavefrontTestBase
|
28
|
+
def test_list
|
29
|
+
should_work(:list, 10, '?offset=10&limit=100')
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_create
|
33
|
+
should_work(:create, DASHBOARD_BODY, '', :post,
|
34
|
+
JSON_POST_HEADERS, DASHBOARD_BODY.to_json)
|
35
|
+
assert_raises(ArgumentError) { wf.create }
|
36
|
+
assert_raises(ArgumentError) { wf.create('test') }
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_describe
|
40
|
+
should_work(:describe, DASHBOARD, DASHBOARD)
|
41
|
+
assert_raises(ArgumentError) { wf.describe }
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_describe_v
|
45
|
+
should_work(:describe, [DASHBOARD, 4], "#{DASHBOARD}/history/4")
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_delete
|
49
|
+
should_work(:delete, DASHBOARD, DASHBOARD, :delete)
|
50
|
+
should_be_invalid(:delete)
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_history
|
54
|
+
should_work(:history, DASHBOARD, "#{DASHBOARD}/history")
|
55
|
+
should_be_invalid(:history)
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_update
|
59
|
+
should_work(:update, [DASHBOARD, DASHBOARD_BODY], DASHBOARD, :put,
|
60
|
+
JSON_POST_HEADERS, DASHBOARD_BODY.to_json)
|
61
|
+
should_be_invalid(:update, ['!invalid dash!', DASHBOARD_BODY])
|
62
|
+
assert_raises(ArgumentError) { wf.update }
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_tags
|
66
|
+
tag_tester(DASHBOARD)
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_undelete
|
70
|
+
should_work(:undelete, DASHBOARD, ["#{DASHBOARD}/undelete",
|
71
|
+
nil], :post, POST_HEADERS)
|
72
|
+
should_be_invalid(:undelete)
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require_relative '../spec_helper'
|
4
|
+
|
5
|
+
EVENT = '1481553823153:testev'.freeze
|
6
|
+
EVENT_BODY = {
|
7
|
+
name: 'test_event',
|
8
|
+
annotations: {
|
9
|
+
severity: 'info',
|
10
|
+
type: 'SDK test event',
|
11
|
+
details: 'an imaginary event to test the SDK'
|
12
|
+
},
|
13
|
+
hosts: %w(host1 host2),
|
14
|
+
startTime: 1493385089000,
|
15
|
+
endTime: 1493385345678,
|
16
|
+
tags: %w(tag1 tag2),
|
17
|
+
isEphemeral: false
|
18
|
+
}.freeze
|
19
|
+
|
20
|
+
# Unit tests for event class
|
21
|
+
#
|
22
|
+
class WavefrontEventTest < WavefrontTestBase
|
23
|
+
def test_list
|
24
|
+
|
25
|
+
t1 = Time.now - 600
|
26
|
+
t2 = Time.now
|
27
|
+
tms1 = t1.to_datetime.strftime('%Q')
|
28
|
+
tms2 = t2.to_datetime.strftime('%Q')
|
29
|
+
|
30
|
+
assert_raises(ArgumentError) { wf.list }
|
31
|
+
assert_raises(ArgumentError) { wf.list(tms1) }
|
32
|
+
|
33
|
+
should_work(:list, [t1, t2],
|
34
|
+
"?earliestStartTimeEpochMillis=#{tms1}" \
|
35
|
+
"&latestStartTimeEpochMillis=#{tms2}" \
|
36
|
+
'&limit=100')
|
37
|
+
|
38
|
+
should_work(:list, [tms1, tms2],
|
39
|
+
"?earliestStartTimeEpochMillis=#{tms1}" \
|
40
|
+
"&latestStartTimeEpochMillis=#{tms2}" \
|
41
|
+
'&limit=100')
|
42
|
+
|
43
|
+
assert_raises(Wavefront::Exception::InvalidTimestamp) do
|
44
|
+
wf.list(t1, 'abc')
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_create
|
49
|
+
should_work(:create, EVENT_BODY, '', :post,
|
50
|
+
JSON_POST_HEADERS, EVENT_BODY.to_json)
|
51
|
+
assert_raises(ArgumentError) { wf.create }
|
52
|
+
assert_raises(ArgumentError) { wf.create('test') }
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_describe
|
56
|
+
should_work(:describe, EVENT, EVENT)
|
57
|
+
should_be_invalid(:describe, 'abcdefg')
|
58
|
+
assert_raises(ArgumentError) { wf.describe }
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_close
|
62
|
+
should_work(:close, EVENT, "#{EVENT}/close", :post, POST_HEADERS)
|
63
|
+
should_be_invalid(:close, 'abcdefg')
|
64
|
+
assert_raises(ArgumentError) { wf.close }
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_update
|
68
|
+
should_work(:update, [EVENT, EVENT_BODY, false], EVENT, :put,
|
69
|
+
JSON_POST_HEADERS, EVENT_BODY.to_json)
|
70
|
+
#should_be_invalid(:update, ['abcde', EVENT_BODY])
|
71
|
+
#assert_raises(ArgumentError) { wf.update }
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_delete
|
75
|
+
should_work(:delete, EVENT, EVENT, :delete)
|
76
|
+
should_be_invalid(:delete, 'abcdefg')
|
77
|
+
assert_raises(ArgumentError) { wf.delete }
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_tags
|
81
|
+
tag_tester(EVENT)
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require_relative '../spec_helper'
|
4
|
+
|
5
|
+
EXTERNAL_LINK = 'lq6rPlSg2CFMSrg6'.freeze
|
6
|
+
EXTERNAL_LINK_BODY = {
|
7
|
+
name: 'test link',
|
8
|
+
template: 'https://example.com/link/{{value}}',
|
9
|
+
description: 'an imaginary link for unit testing purposes'
|
10
|
+
}
|
11
|
+
|
12
|
+
EXTERNAL_LINK_BODY_2 = {
|
13
|
+
name: 'test link',
|
14
|
+
template: 'https://example.com/link/{{value}}'
|
15
|
+
}
|
16
|
+
|
17
|
+
# Unit tests for ExternalLink class
|
18
|
+
#
|
19
|
+
class WavefrontExternalLinkTest < WavefrontTestBase
|
20
|
+
def api_base
|
21
|
+
'extlink'
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_list
|
25
|
+
should_work(:list, 10, '?offset=10&limit=100')
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_describe
|
29
|
+
should_work(:describe, EXTERNAL_LINK, EXTERNAL_LINK)
|
30
|
+
should_be_invalid(:describe, 'abcdefg')
|
31
|
+
assert_raises(ArgumentError) { wf.describe }
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_create
|
35
|
+
should_work(:create, EXTERNAL_LINK_BODY, '', :post,
|
36
|
+
JSON_POST_HEADERS, EXTERNAL_LINK_BODY.to_json)
|
37
|
+
|
38
|
+
should_work(:create, EXTERNAL_LINK_BODY_2, '', :post,
|
39
|
+
JSON_POST_HEADERS, EXTERNAL_LINK_BODY_2
|
40
|
+
.merge!(description: '').to_json)
|
41
|
+
|
42
|
+
assert_raises(ArgumentError) { wf.create }
|
43
|
+
assert_raises(ArgumentError) { wf.create('test') }
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_delete
|
47
|
+
should_work(:delete, EXTERNAL_LINK, EXTERNAL_LINK, :delete)
|
48
|
+
should_be_invalid(:delete, 'abcdefg')
|
49
|
+
assert_raises(ArgumentError) { wf.delete }
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_update
|
53
|
+
should_work(:update, [EXTERNAL_LINK, EXTERNAL_LINK_BODY],
|
54
|
+
EXTERNAL_LINK, :put, JSON_POST_HEADERS,
|
55
|
+
EXTERNAL_LINK_BODY.to_json)
|
56
|
+
|
57
|
+
should_work(:update, [EXTERNAL_LINK, EXTERNAL_LINK_BODY_2],
|
58
|
+
EXTERNAL_LINK, :put, JSON_POST_HEADERS,
|
59
|
+
EXTERNAL_LINK_BODY_2.to_json)
|
60
|
+
|
61
|
+
should_be_invalid(:update, ['abcde', EXTERNAL_LINK_BODY])
|
62
|
+
assert_raises(ArgumentError) { wf.update }
|
63
|
+
assert_raises(ArgumentError) { wf.update(EXTERNAL_LINK) }
|
64
|
+
end
|
65
|
+
end
|