everybit 0.1.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.
@@ -0,0 +1,318 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ # this file contains all the tests for video resources
5
+
6
+ describe Everybit, 'Video Specs' do
7
+
8
+ before do
9
+ Everybit.api_key = '1a2b3c4d5e6f7g8h9i'
10
+ end
11
+
12
+ after do
13
+ Everybit.api_key = nil
14
+ end
15
+
16
+ describe 'getting all videos' do
17
+
18
+ before do
19
+ @params = {mock_response: 'mock_all_videos'}
20
+ end
21
+
22
+ after do
23
+ @params = {}
24
+ end
25
+
26
+ it 'should wrap the response in an Everybit::Collection object' do
27
+ res = Everybit::Video.all(@params)
28
+ res.must_be_instance_of Everybit::Collection
29
+ end
30
+
31
+ it 'should return an array of Everybit::Video objects' do
32
+ res = Everybit::Video.all(@params)
33
+ res.data.each do |video|
34
+ video.must_be_instance_of Everybit::Video
35
+ end
36
+ end
37
+
38
+ it 'should create a code attribute' do
39
+ res = Everybit::Video.all(@params)
40
+ res.code.must_equal 200
41
+ end
42
+
43
+ it 'should create a status attribute' do
44
+ res = Everybit::Video.all(@params)
45
+ res.status.must_equal true
46
+ end
47
+
48
+ it 'should create the correct url' do
49
+ res = Everybit::Video.all(@params)
50
+ res.data.each do |video|
51
+ video[:opts][:url].must_equal 'https://api.everybit.co/v1/videos'
52
+ end
53
+ end
54
+
55
+ it 'should use the :get HTTP verb' do
56
+ res = Everybit::Video.all(@params)
57
+ res.data.each do |video|
58
+ video[:opts][:method].must_equal 'get'
59
+ end
60
+ end
61
+
62
+ end # getting all videos
63
+
64
+ describe 'single video details' do
65
+
66
+ before do
67
+ @params = {mock_response: 'mock_video_details'}
68
+ end
69
+
70
+ after do
71
+ @params = {}
72
+ end
73
+
74
+ it 'should wrap the response in an Everybit::Video object' do
75
+ res = Everybit::Video.details('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
76
+ res.must_be_instance_of Everybit::Video
77
+ end
78
+
79
+ it 'should create the correct url' do
80
+ res = Everybit::Video.details('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
81
+ res[:opts][:url].must_equal 'https://api.everybit.co/v1/videos/787c8956-1857-4771-9d4e-b99b4dedfeae'
82
+ end
83
+
84
+ it 'should require a uuid' do
85
+ assert_raises ArgumentError do
86
+ Everybit::Video.details()
87
+ end
88
+ end
89
+
90
+ it 'should create a code attribute' do
91
+ res = Everybit::Video.details('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
92
+ res.code.must_equal 200
93
+ end
94
+
95
+ it 'should create a status attribute' do
96
+ res = Everybit::Video.details('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
97
+ res.status.must_equal true
98
+ end
99
+
100
+ it 'should expose correct data' do
101
+ actual = Everybit::Video.details('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
102
+ expected = mock_video_details
103
+ expected[:data].delete :opts
104
+ expected[:data].each { |key, value| actual[key].must_equal value }
105
+ expected[:data][:player_attributes].each { |key, value| actual[:player_attributes][key].must_equal value }
106
+ expected[:data][:media_info].each { |key, value| actual[:media_info][key].must_equal value }
107
+
108
+ expected[:data][:versions].each_with_index do |version, index|
109
+ version.each { |key, value| actual[:versions][index][key].must_equal value }
110
+ end
111
+ end
112
+
113
+ it 'should use the :get HTTP verb' do
114
+ res = Everybit::Video.details('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
115
+ res[:opts][:method].must_equal 'get'
116
+ end
117
+
118
+ end # single video details
119
+
120
+ describe 'single video status' do
121
+
122
+ before do
123
+ @params = {mock_response: 'mock_video_status'}
124
+ end
125
+
126
+ after do
127
+ @params = {}
128
+ end
129
+
130
+ it 'should wrap the response in an Everybit::Video object' do
131
+ res = Everybit::Video.status('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
132
+ res.must_be_instance_of Everybit::Video
133
+ end
134
+
135
+ it 'should create the correct url' do
136
+ res = Everybit::Video.status('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
137
+ res[:opts][:url].must_equal 'https://api.everybit.co/v1/videos/787c8956-1857-4771-9d4e-b99b4dedfeae/status'
138
+ end
139
+
140
+ it 'should require a uuid' do
141
+ assert_raises ArgumentError do
142
+ Everybit::Video.status()
143
+ end
144
+ end
145
+
146
+ it 'should create a code attribute' do
147
+ res = Everybit::Video.status('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
148
+ res.code.must_equal 200
149
+ end
150
+
151
+ it 'should create a status attribute' do
152
+ res = Everybit::Video.status('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
153
+ res.status.must_equal true
154
+ end
155
+
156
+ it 'should expose correct data' do
157
+ actual = Everybit::Video.status('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
158
+ expected = mock_video_status
159
+ expected[:data].delete :opts
160
+ expected[:data].each { |key, value| actual[key].must_equal value }
161
+ end
162
+
163
+ it 'should use the :get HTTP verb' do
164
+ res = Everybit::Video.status('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
165
+ res[:opts][:method].must_equal 'get'
166
+ end
167
+
168
+ end # single video status
169
+
170
+ describe 'creating a video' do
171
+
172
+ before do
173
+ @params = {mock_response: 'mock_create_video_success'}
174
+ end
175
+
176
+ after do
177
+ @params = {}
178
+ end
179
+
180
+ it 'should wrap the response in an Everybit::Video object' do
181
+ res = Everybit::Video.create(@params)
182
+ res.must_be_instance_of Everybit::Video
183
+ end
184
+
185
+ it 'should create the correct url' do
186
+ res = Everybit::Video.create(@params)
187
+ res[:opts][:url].must_equal 'https://api.everybit.co/v1/videos'
188
+ end
189
+
190
+ it 'should create a code attribute' do
191
+ res = Everybit::Video.create(@params)
192
+ res.code.must_equal 200
193
+ end
194
+
195
+ it 'should create a status attribute' do
196
+ res = Everybit::Video.create(@params)
197
+ res.status.must_equal true
198
+ end
199
+
200
+ it 'should return a uuid when successful' do
201
+ res = Everybit::Video.create(@params)
202
+ res[:uuid].must_equal '787c8956-1857-4771-9d4e-b99b4dedfeae'
203
+ end
204
+
205
+ it 'should have an error message when not successful' do
206
+ @params = {mock_response: 'mock_create_video_error'}
207
+ res = Everybit::Video.create(@params)
208
+ res.status.must_equal false
209
+ res[:error].must_equal 'some error message here'
210
+ end
211
+
212
+ it 'should use the :post HTTP verb' do
213
+ res = Everybit::Video.create(@params)
214
+ res[:opts][:method].must_equal 'post'
215
+ end
216
+
217
+ end # creating a video
218
+
219
+ describe 'updating a video' do
220
+
221
+ before do
222
+ @params = {mock_response: 'mock_video_details'}
223
+ @video = Everybit::Video.details('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
224
+ end
225
+
226
+ after do
227
+ @params = nil
228
+ @video = nil
229
+ end
230
+
231
+ it 'should create the correct url' do
232
+ @video.save({mock_response: 'mock_update_video_success'})
233
+ @video[:opts][:url].must_equal 'https://api.everybit.co/v1/videos/787c8956-1857-4771-9d4e-b99b4dedfeae'
234
+ end
235
+
236
+ it 'should update the code attribute when unsuccessful' do
237
+ @video.save({mock_response: 'mock_update_video_error'})
238
+ @video.code.must_equal 200
239
+ end
240
+
241
+ it 'should update the status attribute when unsuccessful' do
242
+ @video.save({mock_response: 'mock_update_video_error'})
243
+ @video.status.must_equal false
244
+ end
245
+
246
+ it 'should have a success message when successful' do
247
+ @video.save({mock_response: 'mock_update_video_success'})
248
+ @video[:message].must_equal 'your video was updated successfully'
249
+ end
250
+
251
+ it 'should have an error message when unsuccessful' do
252
+ @video.save({mock_response: 'mock_update_video_error'})
253
+ @video[:error].must_equal 'some error message here'
254
+ end
255
+
256
+ it 'should use the :put HTTP verb' do
257
+ @video.save({mock_response: 'mock_update_video_success'})
258
+ @video[:opts][:method].must_equal 'put'
259
+ end
260
+
261
+ end # updating a video
262
+
263
+ describe 'deleting a video' do
264
+
265
+ before do
266
+ @params = {mock_response: 'mock_delete_video_success'}
267
+ end
268
+
269
+ after do
270
+ @params = {}
271
+ end
272
+
273
+ it 'should wrap the response in an Everybit::Video object' do
274
+ res = Everybit::Video.delete('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
275
+ res.must_be_instance_of Everybit::Video
276
+ end
277
+
278
+ it 'should create the correct url' do
279
+ res = Everybit::Video.delete('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
280
+ res[:opts][:url].must_equal 'https://api.everybit.co/v1/videos/787c8956-1857-4771-9d4e-b99b4dedfeae'
281
+ end
282
+
283
+ it 'should require a uuid' do
284
+ assert_raises ArgumentError do
285
+ Everybit::Video.delete()
286
+ end
287
+ end
288
+
289
+ it 'should create a code attribute' do
290
+ res = Everybit::Video.delete('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
291
+ res.code.must_equal 200
292
+ end
293
+
294
+ it 'should create a status attribute' do
295
+ res = Everybit::Video.delete('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
296
+ res.status.must_equal true
297
+ end
298
+
299
+ it 'should have a success message when successful' do
300
+ res = Everybit::Video.delete('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
301
+ res[:message].must_equal 'your video was deleted successfully'
302
+ end
303
+
304
+ it 'should have an error message when not successful' do
305
+ @params = {mock_response: 'mock_delete_video_error'}
306
+ res = Everybit::Video.delete('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
307
+ res.status.must_equal false
308
+ res[:error].must_equal 'some error message here'
309
+ end
310
+
311
+ it 'should use the :delete HTTP verb' do
312
+ res = Everybit::Video.delete('787c8956-1857-4771-9d4e-b99b4dedfeae', @params)
313
+ res[:opts][:method].must_equal 'delete'
314
+ end
315
+
316
+ end # deleting a video
317
+
318
+ end # Video Specs
metadata ADDED
@@ -0,0 +1,139 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: everybit
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Dominic Giglio
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-03-10 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rest-client
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '1.6'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.6'
30
+ - !ruby/object:Gem::Dependency
31
+ name: multi_json
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '1.5'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '1.5'
46
+ - !ruby/object:Gem::Dependency
47
+ name: minitest
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: turn
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ description: This gem defines methods for controlling your media through Everybit's
79
+ API.
80
+ email:
81
+ - humanshell@gmail.com
82
+ executables:
83
+ - everybit-console
84
+ extensions: []
85
+ extra_rdoc_files: []
86
+ files:
87
+ - .gitignore
88
+ - Gemfile
89
+ - LICENSE
90
+ - README.md
91
+ - Rakefile
92
+ - bin/everybit-console
93
+ - everybit.gemspec
94
+ - lib/everybit.rb
95
+ - lib/everybit/account.rb
96
+ - lib/everybit/collection.rb
97
+ - lib/everybit/errors/authentication_error.rb
98
+ - lib/everybit/errors/everybit_error.rb
99
+ - lib/everybit/everybit_object.rb
100
+ - lib/everybit/modules/createable.rb
101
+ - lib/everybit/modules/deleteable.rb
102
+ - lib/everybit/modules/listable.rb
103
+ - lib/everybit/modules/updateable.rb
104
+ - lib/everybit/resource.rb
105
+ - lib/everybit/version.rb
106
+ - lib/everybit/video.rb
107
+ - spec/account_spec.rb
108
+ - spec/misc_spec.rb
109
+ - spec/spec_helper.rb
110
+ - spec/video_spec.rb
111
+ homepage: http://dev.everybit.co
112
+ licenses: []
113
+ post_install_message:
114
+ rdoc_options: []
115
+ require_paths:
116
+ - lib
117
+ required_ruby_version: !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - ! '>='
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ required_rubygems_version: !ruby/object:Gem::Requirement
124
+ none: false
125
+ requirements:
126
+ - - ! '>='
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ requirements: []
130
+ rubyforge_project: everybit
131
+ rubygems_version: 1.8.23
132
+ signing_key:
133
+ specification_version: 3
134
+ summary: Access Everybit API
135
+ test_files:
136
+ - spec/account_spec.rb
137
+ - spec/misc_spec.rb
138
+ - spec/spec_helper.rb
139
+ - spec/video_spec.rb