datasift 3.0.0.beta4 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/CHANGELOG.md +12 -0
- data/LICENSE +1 -1
- data/MIGRATING_TO_V.3.0.0.md +1 -1
- data/README.md +23 -2
- data/Rakefile +10 -0
- data/VERSION +1 -1
- data/datasift.gemspec +4 -4
- data/examples/auth.rb +14 -10
- data/examples/cli.sh +2 -2
- data/examples/core_api_eg.rb +6 -1
- data/examples/dynamic_list_eg.rb +74 -0
- data/examples/dynamic_list_replace_eg.rb +45 -0
- data/examples/historics_eg.rb +20 -13
- data/examples/historics_preview_eg.rb +5 -4
- data/examples/live_stream_eg.rb +2 -1
- data/examples/managed_source_eg.rb +11 -10
- data/examples/pull.rb +8 -8
- data/examples/push_eg.rb +32 -15
- data/lib/cli.rb +2 -2
- data/lib/datasift.rb +7 -3
- data/lib/dynamic_list.rb +66 -0
- data/lib/dynamic_list_replace.rb +45 -0
- data/lib/historics.rb +17 -0
- data/lib/historics_preview.rb +2 -1
- data/lib/push.rb +10 -17
- data/test/datasift/core_api_test.rb +153 -0
- data/test/datasift/historics_preview_api_test.rb +83 -0
- data/test/datasift/push_api_test.rb +223 -0
- data/test/fixtures/balance.json +1 -0
- data/test/fixtures/compile_csdl_invalid.json +1 -0
- data/test/fixtures/compile_csdl_valid.json +1 -0
- data/test/fixtures/dpu_valid.json +1 -0
- data/test/fixtures/preview_create_valid.json +1 -0
- data/test/fixtures/preview_get_running.json +1 -0
- data/test/fixtures/preview_get_succeeded.json +1 -0
- data/test/fixtures/push_create_valid.json +1 -0
- data/test/fixtures/push_get_list_by_hash_valid.json +1 -0
- data/test/fixtures/push_get_list_by_historics_id_valid.json +1 -0
- data/test/fixtures/push_get_list_valid.json +1 -0
- data/test/fixtures/push_get_valid.json +1 -0
- data/test/fixtures/push_log_valid.json +1 -0
- data/test/fixtures/push_pause_valid.json +1 -0
- data/test/fixtures/push_stop_valid.json +1 -0
- data/test/fixtures/push_validate_valid.json +1 -0
- data/test/fixtures/usage_current.json +1 -0
- data/test/fixtures/validate_csdl_invalid.json +1 -0
- data/test/fixtures/validate_csdl_valid.json +1 -0
- data/test/test_helper.rb +17 -0
- metadata +36 -9
- data/tests/core_api_test.rb +0 -95
@@ -0,0 +1,153 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
describe 'DataSift' do
|
4
|
+
|
5
|
+
before do
|
6
|
+
auth = DataSiftExample.new
|
7
|
+
@datasift = auth.datasift
|
8
|
+
@data = OpenStruct.new
|
9
|
+
@statuses = OpenStruct.new
|
10
|
+
@headers = OpenStruct.new
|
11
|
+
|
12
|
+
@data.valid_csdl = 'interaction.content contains "test"'
|
13
|
+
@data.invalid_csdl = 'interaction.nonsense is not valid'
|
14
|
+
|
15
|
+
@statuses.valid = 200
|
16
|
+
@statuses.bad_request = 400
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
describe '#compile/validate' do
|
21
|
+
before do
|
22
|
+
@headers.csdl_compile = {
|
23
|
+
"date" => "Thu, 30 Jan 2014 10:09:19 GMT", "content-type" => "application/json",
|
24
|
+
"transfer-encoding" => "chunked", "connection" => "close", "x-api-version" => "1",
|
25
|
+
"x-ratelimit-limit" => "10000", "x-ratelimit-remaining" => "10000", "x-ratelimit-cost" => "5"}
|
26
|
+
|
27
|
+
#valid CSDL
|
28
|
+
stub_request(:post, /api.datasift.com\/.*\/validate/).
|
29
|
+
with(:body => {"csdl" => @data.valid_csdl}).
|
30
|
+
to_return(:status => @statuses.valid,
|
31
|
+
:body => fixture('validate_csdl_valid.json'),
|
32
|
+
:headers => @headers.csdl_compile)
|
33
|
+
#invalid CSDL
|
34
|
+
stub_request(:post, /api.datasift.com\/.*\/validate/).
|
35
|
+
with(:body => {"csdl" => @data.invalid_csdl}).
|
36
|
+
to_return(:status => @statuses.bad_request,
|
37
|
+
:body => fixture('validate_csdl_invalid.json'),
|
38
|
+
:headers => @headers.csdl_compile)
|
39
|
+
#valid stream compilation
|
40
|
+
stub_request(:post, /api.datasift.com\/.*\/compile/).
|
41
|
+
with(:body => {"csdl" => @data.valid_csdl}).
|
42
|
+
to_return(:status => @statuses.valid,
|
43
|
+
:body => fixture('compile_csdl_valid.json'),
|
44
|
+
:headers => @headers.csdl_compile)
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'test_csdl_cant_be_nil_when_validating' do
|
48
|
+
assert_raises InvalidParamError do
|
49
|
+
@datasift.valid?(nil)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'test_csdl_cant_be_empty_when_validating' do
|
54
|
+
assert_raises InvalidParamError do
|
55
|
+
@datasift.valid?('')
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'test_if_user_can_get_successful_validation_as_bool' do
|
60
|
+
assert @datasift.valid?(@data.valid_csdl), 'Valid CSDL must return true'
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'test_if_user_can_get_successful_validation_as_hash' do
|
64
|
+
validation = @datasift.valid?(@data.valid_csdl, false)
|
65
|
+
assert_kind_of Hash, validation, 'Valid should return a hash here'
|
66
|
+
assert_equal @statuses.valid, validation[:http][:status], "This request should have returned status as #{@statuses.validate_csdl}"
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'test_failing_csdl_validation' do
|
70
|
+
assert_raises BadRequestError do
|
71
|
+
@datasift.valid?(@data.invalid_csdl)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'test_csdl_cant_be_nil_when_compiling' do
|
76
|
+
assert_raises InvalidParamError do
|
77
|
+
@datasift.compile(nil)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'test_csdl_cant_be_empty_when_compiling' do
|
82
|
+
assert_raises InvalidParamError do
|
83
|
+
@datasift.compile('')
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
describe '#usage' do
|
89
|
+
describe 'with valid request' do
|
90
|
+
before do
|
91
|
+
@headers.valid_usage = {
|
92
|
+
"date" => "Thu, 30 Jan 2014 10:09:19 GMT", "content-type" => "application/json",
|
93
|
+
"transfer-encoding" => "chunked", "connection" => "close", "x-api-version" => "1",
|
94
|
+
"x-ratelimit-limit" => "10000", "x-ratelimit-remaining" => "10000", "x-ratelimit-cost" => "25"}
|
95
|
+
|
96
|
+
#valid /usage request
|
97
|
+
stub_request(:post, /api.datasift.com\/.*\/usage/).
|
98
|
+
with(:body => {:period => 'hour'}).
|
99
|
+
to_return(status: @statuses.valid,
|
100
|
+
body: fixture('usage_current.json'),
|
101
|
+
headers: @headers.valid_usage)
|
102
|
+
end
|
103
|
+
|
104
|
+
it 'can get users usage' do
|
105
|
+
@datasift.usage
|
106
|
+
assert_requested(:post, "https://api.datasift.com/v1/usage", :body => {"period"=>"hour"})
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
describe '#dpu' do
|
112
|
+
before do
|
113
|
+
@data.dpu_hash_valid = '145ea24a4d83a14ecb9077b831f14809'
|
114
|
+
@headers.dpu = {
|
115
|
+
"date" => "Thu, 30 Jan 2014 10:09:19 GMT", "content-type" => "application/json",
|
116
|
+
"transfer-encoding" => "chunked", "connection" => "close", "x-api-version" => "1",
|
117
|
+
"x-ratelimit-limit" => "10000", "x-ratelimit-remaining" => "10000", "x-ratelimit-cost" => "5"}
|
118
|
+
|
119
|
+
#valid /dpu request
|
120
|
+
stub_request(:post, /api.datasift.com\/.*\/dpu/).
|
121
|
+
with(:body => {:hash => @data.dpu_hash_valid}).
|
122
|
+
to_return(status: @statuses.valid,
|
123
|
+
body: fixture('dpu_valid.json'),
|
124
|
+
headers: @headers.dpu)
|
125
|
+
end
|
126
|
+
|
127
|
+
it 'can get dpu cost for valid stream' do
|
128
|
+
@datasift.dpu(@data.dpu_hash_valid)
|
129
|
+
assert_requested(:post, "https://api.datasift.com/v1/dpu", body: {hash: @data.dpu_hash_valid})
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
describe '#balance' do
|
134
|
+
before do
|
135
|
+
@headers.balance = {
|
136
|
+
"date" => "Thu, 30 Jan 2014 10:09:19 GMT", "content-type" => "application/json",
|
137
|
+
"transfer-encoding" => "chunked", "connection" => "close", "x-api-version" => "1",
|
138
|
+
"x-ratelimit-limit" => "10000", "x-ratelimit-remaining" => "10000", "x-ratelimit-cost" => "25"}
|
139
|
+
|
140
|
+
#valid /dpu request
|
141
|
+
stub_request(:post, /api.datasift.com\/.*\/balance/).
|
142
|
+
to_return(status: @statuses.valid,
|
143
|
+
body: fixture('balance.json'),
|
144
|
+
headers: @headers.balance)
|
145
|
+
end
|
146
|
+
|
147
|
+
it 'can get account balance' do
|
148
|
+
@datasift.balance
|
149
|
+
assert_requested(:post, "https://api.datasift.com/v1/balance")
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
describe 'DataSift::HistoricsPreview' do
|
4
|
+
|
5
|
+
before do
|
6
|
+
auth = DataSiftExample.new
|
7
|
+
@datasift = auth.datasift
|
8
|
+
@data = OpenStruct.new
|
9
|
+
@statuses = OpenStruct.new
|
10
|
+
@headers = OpenStruct.new
|
11
|
+
|
12
|
+
@statuses.valid = 200
|
13
|
+
@statuses.accepted = 202
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '#create' do
|
17
|
+
before do
|
18
|
+
@data.stream_hash = '145ea24a4d83a14ecb9077b831f14809'
|
19
|
+
@data.sources = 'facebook,twitter'
|
20
|
+
@data.parameters = 'language.tag,freqDist,5;interaction.id,targetVol,hour'
|
21
|
+
@data.start = '1398898800'
|
22
|
+
@data.end = '1398985200'
|
23
|
+
|
24
|
+
@headers.preview_create = {
|
25
|
+
"date" => "Thu, 30 Jan 2014 10:09:19 GMT", "content-type" => "application/json",
|
26
|
+
"transfer-encoding" => "chunked", "connection" => "close", "x-api-version" => "1",
|
27
|
+
"x-ratelimit-limit" => "10000", "x-ratelimit-remaining" => "10000", "x-ratelimit-cost" => "25"}
|
28
|
+
|
29
|
+
#valid /preview/create request
|
30
|
+
stub_request(:post, /api.datasift.com\/.*\/preview\/create/).
|
31
|
+
with(:body => { :hash => @data.stream_hash,
|
32
|
+
:sources => @data.sources,
|
33
|
+
:parameters => @data.parameters,
|
34
|
+
:start => @data.start,
|
35
|
+
:end => @data.end}).
|
36
|
+
to_return(status: @statuses.valid,
|
37
|
+
body: fixture('preview_create_valid.json'),
|
38
|
+
headers: @headers.preview_create)
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'can create an Historics Preview' do
|
42
|
+
@datasift.historics_preview.create(@data.stream_hash, @data.sources, @data.parameters, @data.start, @data.end)
|
43
|
+
assert_requested( :post,
|
44
|
+
'https://api.datasift.com/v1/preview/create',
|
45
|
+
:body => {:start => @data.start,
|
46
|
+
:end => @data.end,
|
47
|
+
:hash => @data.stream_hash,
|
48
|
+
:sources => @data.sources,
|
49
|
+
:parameters => @data.parameters})
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
describe '#get' do
|
55
|
+
before do
|
56
|
+
@data.id = 'fbd5441ab17a46f2ac200f8cab6bdb79fe8efb31'
|
57
|
+
|
58
|
+
@headers.preview_get = {
|
59
|
+
"date" => "Thu, 30 Jan 2014 10:09:19 GMT", "content-type" => "application/json",
|
60
|
+
"transfer-encoding" => "chunked", "connection" => "close", "x-api-version" => "1",
|
61
|
+
"x-ratelimit-limit" => "10000", "x-ratelimit-remaining" => "10000", "x-ratelimit-cost" => "5"}
|
62
|
+
|
63
|
+
#valid /preview/get running request
|
64
|
+
stub_request(:post, /api.datasift.com\/.*\/preview\/get/).
|
65
|
+
with(:body => { :id => @data.id}).
|
66
|
+
to_return(status: @statuses.accepted,
|
67
|
+
body: fixture('preview_get_running.json'),
|
68
|
+
headers: @headers.preview_get)
|
69
|
+
|
70
|
+
#valid /preview/get succeeded request
|
71
|
+
stub_request(:post, /api.datasift.com\/.*\/preview\/get/).
|
72
|
+
with(:body => { :id => @data.id}).
|
73
|
+
to_return(status: @statuses.valid,
|
74
|
+
body: fixture('preview_get_succeeded.json'),
|
75
|
+
headers: @headers.preview_get)
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'can get an Historics Preview' do
|
79
|
+
@datasift.historics_preview.get(@data.id)
|
80
|
+
assert_requested( :post, 'https://api.datasift.com/v1/preview/get', :body => {:id => @data.id})
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,223 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
describe 'DataSift::Push' do
|
4
|
+
|
5
|
+
before do
|
6
|
+
auth = DataSiftExample.new
|
7
|
+
@datasift = auth.datasift
|
8
|
+
@data = OpenStruct.new
|
9
|
+
@statuses = OpenStruct.new
|
10
|
+
|
11
|
+
@statuses.valid = 200
|
12
|
+
@statuses.no_content = 204
|
13
|
+
# @statuses.invalid_csdl = 400
|
14
|
+
# @statuses.bad_request = 400
|
15
|
+
|
16
|
+
@data.params = {
|
17
|
+
'name' => 'connectorhttp',
|
18
|
+
'output_type' => 'http',
|
19
|
+
'output_params.url' => 'http://example.com/datasift',
|
20
|
+
'output_params.compression' => 'none',
|
21
|
+
'output_params.delivery_frequency' => '0',
|
22
|
+
'output_params.max_size' => '10485760',
|
23
|
+
'output_params.verify_ssl' => 'false',
|
24
|
+
'output_params.auth.type' => 'basic',
|
25
|
+
'output_params.auth.username' => 'username',
|
26
|
+
'output_params.auth.password' => 'password'
|
27
|
+
}
|
28
|
+
|
29
|
+
@data.subscription_params = {:id => '7802b84cfe79e50e0a6e3cdac5ce54ab',
|
30
|
+
:stream_hash => '145ea24a4d83a14ecb9077b831f14809',
|
31
|
+
:historics_id => '5f569d6f99002bfaa483' }
|
32
|
+
end
|
33
|
+
|
34
|
+
describe '#push/validate' do
|
35
|
+
before do
|
36
|
+
#valid /push/validate request
|
37
|
+
stub_request(:post, "https://api.datasift.com/v1/push/validate").
|
38
|
+
with(:body => @data.params).
|
39
|
+
to_return(status: @statuses.valid,
|
40
|
+
body: fixture('push_validate_valid.json'))
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'can validate a push destination' do
|
44
|
+
@datasift.push.valid? @data.params
|
45
|
+
assert_requested(:post, 'https://api.datasift.com/v1/push/validate', :body => @data.params)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe '#push/create' do
|
50
|
+
before do
|
51
|
+
@data.params.merge({'hash' => '145ea24a4d83a14ecb9077b831f14809'})
|
52
|
+
|
53
|
+
#valid /push/create request
|
54
|
+
stub_request(:post, "https://api.datasift.com/v1/push/create").
|
55
|
+
with(:body => @data.params).
|
56
|
+
to_return(status: @statuses.valid,
|
57
|
+
body: fixture('push_create_valid.json'))
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'can create a push subscription' do
|
61
|
+
@datasift.push.create @data.params
|
62
|
+
assert_requested(:post, 'https://api.datasift.com/v1/push/create', :body => @data.params)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
describe '#push/get' do
|
67
|
+
before do
|
68
|
+
@data.list_params = { :order_by => 'created_at',
|
69
|
+
:order_dir => 'desc',
|
70
|
+
:page => 1,
|
71
|
+
:per_page => 20 }
|
72
|
+
|
73
|
+
#valid /push/get request
|
74
|
+
stub_request(:get, "https://api.datasift.com/v1/push/get").
|
75
|
+
with(:query => {:id => @data.subscription_params['id']}).
|
76
|
+
to_return(status: @statuses.valid,
|
77
|
+
body: fixture('push_get_valid.json'))
|
78
|
+
|
79
|
+
#valid /push/get list request
|
80
|
+
stub_request(:get, "https://api.datasift.com/v1/push/get").
|
81
|
+
with(:query => @data.list_params).
|
82
|
+
to_return(status: @statuses.valid,
|
83
|
+
body: fixture('push_get_list_valid.json'))
|
84
|
+
|
85
|
+
#valid /push/get list by hash request
|
86
|
+
stub_request(:get, "https://api.datasift.com/v1/push/get").
|
87
|
+
with(:query => @data.list_params.merge('hash' => @data.subscription_params['stream_hash'])).
|
88
|
+
to_return(status: @statuses.valid,
|
89
|
+
body: fixture('push_get_list_by_hash_valid.json'))
|
90
|
+
|
91
|
+
#valid /push/get list by historics id request
|
92
|
+
stub_request(:get, "https://api.datasift.com/v1/push/get").
|
93
|
+
with(:query => @data.list_params.merge('historics_id' => @data.subscription_params['historics_id'])).
|
94
|
+
to_return(status: @statuses.valid,
|
95
|
+
body: fixture('push_get_list_by_historics_id_valid.json'))
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'can get a specific push subscription' do
|
99
|
+
@datasift.push.get_by_subscription @data.subscription_params['id']
|
100
|
+
assert_requested(:get, 'https://api.datasift.com/v1/push/get', :query => {:id => @data.subscription_params['id']})
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'can get a list of push subscriptions' do
|
104
|
+
@datasift.push.get
|
105
|
+
assert_requested(:get, 'https://api.datasift.com/v1/push/get', :query => @data.list_params)
|
106
|
+
end
|
107
|
+
|
108
|
+
it 'can get a list of push subscriptions by stream hash' do
|
109
|
+
@datasift.push.get_by_hash @data.subscription_params['stream_hash']
|
110
|
+
assert_requested(:get, 'https://api.datasift.com/v1/push/get', :query => @data.list_params.merge('hash' => @data.subscription_params['stream_hash']))
|
111
|
+
end
|
112
|
+
|
113
|
+
it 'can get a list of push subscriptions by historic id' do
|
114
|
+
@datasift.push.get_by_historics_id @data.subscription_params['historics_id']
|
115
|
+
assert_requested(:get, 'https://api.datasift.com/v1/push/get', :query => @data.list_params.merge('historics_id' => @data.subscription_params['historics_id']))
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
describe '#push/stop' do
|
120
|
+
before do
|
121
|
+
#valid /push/stop request
|
122
|
+
stub_request(:put, "https://api.datasift.com/v1/push/stop").
|
123
|
+
with(:body => {:id => @data.subscription_params[:id]}).
|
124
|
+
to_return(status: @statuses.valid,
|
125
|
+
body: fixture('push_stop_valid.json'))
|
126
|
+
end
|
127
|
+
|
128
|
+
it 'can stop a push subscription' do
|
129
|
+
@datasift.push.stop @data.subscription_params[:id]
|
130
|
+
assert_requested(:put, 'https://api.datasift.com/v1/push/stop', :body => {:id => @data.subscription_params[:id]})
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
describe '#push/log' do
|
135
|
+
before do
|
136
|
+
@data.list_params = { :order_by => 'request_time',
|
137
|
+
:order_dir => 'desc',
|
138
|
+
:page => 1,
|
139
|
+
:per_page => 20 }
|
140
|
+
|
141
|
+
#valid /push/log request
|
142
|
+
stub_request(:get, "https://api.datasift.com/v1/push/log").
|
143
|
+
with(:query => @data.list_params.merge('id' => @data.subscription_params[:id])).
|
144
|
+
to_return(status: @statuses.valid,
|
145
|
+
body: fixture('push_log_valid.json'))
|
146
|
+
#valid /push/log list request
|
147
|
+
stub_request(:get, "https://api.datasift.com/v1/push/log").
|
148
|
+
with(:query => @data.list_params).
|
149
|
+
to_return(status: @statuses.valid,
|
150
|
+
body: fixture('push_log_valid.json'))
|
151
|
+
end
|
152
|
+
|
153
|
+
it 'can get the /push/log for a given subscription' do
|
154
|
+
@datasift.push.log_for @data.subscription_params[:id]
|
155
|
+
assert_requested(:get, 'https://api.datasift.com/v1/push/log', :query => @data.list_params.merge('id' => @data.subscription_params[:id]))
|
156
|
+
end
|
157
|
+
|
158
|
+
it 'can get the /push/log for all subscriptions' do
|
159
|
+
@datasift.push.log
|
160
|
+
assert_requested(:get, 'https://api.datasift.com/v1/push/log', :query => @data.list_params)
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
describe '#push/pause' do
|
165
|
+
before do
|
166
|
+
#valid /push/pause request
|
167
|
+
stub_request(:put, "https://api.datasift.com/v1/push/pause").
|
168
|
+
with(:body => {:id => @data.subscription_params[:id]}).
|
169
|
+
to_return(status: @statuses.valid,
|
170
|
+
body: fixture('push_pause_valid.json'))
|
171
|
+
end
|
172
|
+
|
173
|
+
it 'can pause a push subscription' do
|
174
|
+
@datasift.push.pause @data.subscription_params[:id]
|
175
|
+
assert_requested(:put, 'https://api.datasift.com/v1/push/pause', :body => {:id => @data.subscription_params[:id]})
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
describe '#push/resume' do
|
180
|
+
before do
|
181
|
+
#valid /push/resume request
|
182
|
+
stub_request(:put, "https://api.datasift.com/v1/push/resume").
|
183
|
+
with(:body => {:id => @data.subscription_params[:id]}).
|
184
|
+
to_return(status: @statuses.valid,
|
185
|
+
body: fixture('push_get_valid.json'))
|
186
|
+
end
|
187
|
+
|
188
|
+
it 'can resume a push subscription' do
|
189
|
+
@datasift.push.resume @data.subscription_params[:id]
|
190
|
+
assert_requested(:put, 'https://api.datasift.com/v1/push/resume', :body => {:id => @data.subscription_params[:id]})
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
describe '#push/update' do
|
195
|
+
before do
|
196
|
+
@data.update_params = {id: @data.subscription_params[:id]}
|
197
|
+
#valid /push/update request
|
198
|
+
stub_request(:post, "https://api.datasift.com/v1/push/update").
|
199
|
+
with(:body => {:id => @data.subscription_params[:id]}).
|
200
|
+
to_return(status: @statuses.valid,
|
201
|
+
body: fixture('push_get_valid.json'))
|
202
|
+
end
|
203
|
+
|
204
|
+
it 'can update a push subscription' do
|
205
|
+
@datasift.push.update @data.update_params
|
206
|
+
assert_requested(:post, 'https://api.datasift.com/v1/push/update', :body => @data.update_params)
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
describe '#push/delete' do
|
211
|
+
before do
|
212
|
+
#valid /push/delete request
|
213
|
+
stub_request(:delete, "https://api.datasift.com/v1/push/delete").
|
214
|
+
with(:query => {:id => @data.subscription_params[:id]}).
|
215
|
+
to_return(status: @statuses.no_content)
|
216
|
+
end
|
217
|
+
|
218
|
+
it 'can delete a push subscription' do
|
219
|
+
@datasift.push.delete @data.subscription_params[:id]
|
220
|
+
assert_requested(:delete, 'https://api.datasift.com/v1/push/delete', :query => {:id => @data.subscription_params[:id]})
|
221
|
+
end
|
222
|
+
end
|
223
|
+
end
|