crx_packmgr_api_client 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +33 -16
  3. data/crx_packmgr_api_client-0.2.0.gem +0 -0
  4. data/crx_packmgr_api_client.gemspec +9 -4
  5. data/docs/DefaultApi.md +457 -7
  6. data/docs/{PackageFilter.md → Filter.md} +2 -2
  7. data/docs/FilterRule.md +9 -0
  8. data/docs/Group.md +11 -0
  9. data/docs/{InlineResponse200.md → GroupList.md} +2 -2
  10. data/docs/InitData.md +13 -0
  11. data/docs/InstallStatus.md +8 -0
  12. data/docs/InstallStatusStatus.md +9 -0
  13. data/docs/Package.md +1 -1
  14. data/docs/PackageList.md +1 -0
  15. data/docs/ServiceResponse.md +12 -0
  16. data/docs/ServiceResponseRequest.md +8 -0
  17. data/docs/ServiceResponseRequestParam.md +9 -0
  18. data/docs/ServiceResponseResponse.md +9 -0
  19. data/docs/UpdateStatus.md +10 -0
  20. data/git_push.sh +1 -1
  21. data/lib/crx_packmgr_api_client.rb +13 -2
  22. data/lib/crx_packmgr_api_client/api/default_api.rb +491 -8
  23. data/lib/crx_packmgr_api_client/api_client.rb +1 -1
  24. data/lib/crx_packmgr_api_client/api_error.rb +1 -1
  25. data/lib/crx_packmgr_api_client/configuration.rb +1 -1
  26. data/lib/crx_packmgr_api_client/models/{package_filter.rb → filter.rb} +3 -3
  27. data/lib/crx_packmgr_api_client/models/filter_rule.rb +241 -0
  28. data/lib/crx_packmgr_api_client/models/group.rb +226 -0
  29. data/lib/crx_packmgr_api_client/models/{inline_response_200.rb → group_list.rb} +10 -10
  30. data/lib/crx_packmgr_api_client/models/init_data.rb +246 -0
  31. data/lib/crx_packmgr_api_client/models/install_status.rb +199 -0
  32. data/lib/crx_packmgr_api_client/models/install_status_status.rb +208 -0
  33. data/lib/crx_packmgr_api_client/models/package.rb +2 -2
  34. data/lib/crx_packmgr_api_client/models/package_list.rb +14 -5
  35. data/lib/crx_packmgr_api_client/models/service_response.rb +235 -0
  36. data/lib/crx_packmgr_api_client/models/service_response_request.rb +201 -0
  37. data/lib/crx_packmgr_api_client/models/service_response_request_param.rb +208 -0
  38. data/lib/crx_packmgr_api_client/models/service_response_response.rb +208 -0
  39. data/lib/crx_packmgr_api_client/models/update_status.rb +217 -0
  40. data/lib/crx_packmgr_api_client/version.rb +2 -2
  41. data/spec/acceptance/default_api_spec.rb +150 -0
  42. data/spec/api/default_api_spec.rb +2 -14
  43. data/spec/api/download_api_spec.rb +95 -0
  44. data/spec/api/groups_api_spec.rb +193 -0
  45. data/spec/api/init_api_spec.rb +104 -0
  46. data/spec/api/installstatus_api_spec.rb +91 -0
  47. data/spec/api/list_api_spec.rb +130 -0
  48. data/spec/api/screenshot_api_spec.rb +93 -0
  49. data/spec/api/service_api_spec.rb +374 -0
  50. data/spec/api/thumbnail_api_spec.rb +93 -0
  51. data/spec/api_client_spec.rb +1 -1
  52. data/spec/configuration_spec.rb +1 -1
  53. data/spec/files/list.json +533 -0
  54. data/spec/files/service_response.txt +11 -0
  55. data/spec/files/service_response1.txt +12 -0
  56. data/spec/files/test-1.0.0.zip +0 -0
  57. data/spec/files/thumbnail.png +0 -0
  58. data/spec/models/filter_rule_spec.rb +63 -0
  59. data/spec/models/{package_filter_spec.rb → filter_spec.rb} +7 -7
  60. data/spec/models/{inline_response_200_spec.rb → group_list_spec.rb} +8 -8
  61. data/spec/models/group_spec.rb +71 -0
  62. data/spec/models/init_data_spec.rb +83 -0
  63. data/spec/models/install_status_spec.rb +53 -0
  64. data/spec/models/install_status_status_spec.rb +59 -0
  65. data/spec/models/package_list_spec.rb +1 -1
  66. data/spec/models/package_spec.rb +1 -1
  67. data/spec/models/service_response_request_param_spec.rb +59 -0
  68. data/spec/models/service_response_request_spec.rb +53 -0
  69. data/spec/models/service_response_response_spec.rb +59 -0
  70. data/spec/models/service_response_spec.rb +77 -0
  71. data/spec/models/update_status_spec.rb +65 -0
  72. data/spec/spec_helper.rb +10 -1
  73. data/spec/spec_helper_acceptance.rb +19 -0
  74. metadata +130 -17
@@ -0,0 +1,93 @@
1
+ require 'spec_helper'
2
+
3
+ # unit tests for screenshot
4
+ # Get screenshot
5
+ # Returns the screenshot at the specified path.
6
+ # @param [Hash] opts the optional parameters
7
+ # @option opts [String] :path The path to the screenshot.
8
+ # @return [File]
9
+ describe 'DefaultApi#screenshot' do
10
+
11
+ before do
12
+ config = CrxPackageManager::Configuration.new
13
+ @instance = CrxPackageManager::DefaultApi.new(CrxPackageManager::ApiClient.new(config))
14
+ end
15
+
16
+ let(:screenshot) do
17
+ file = File.new(File.join(File.dirname(__FILE__), '..', 'files', 'thumbnail.png'))
18
+ data = file.read
19
+ data
20
+ end
21
+
22
+ it 'should work' do
23
+ WebMock.reset!
24
+ path = '/path/to/a/screenshot.jpg'
25
+ cfg = @instance.api_client.config
26
+ get_stub = stub_request(
27
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/screenshot.jsp"
28
+ ).with(
29
+ query: { path: path }
30
+ ).to_return(status: 200, body: screenshot, headers: { 'Content-Type' => 'image/jpg' })
31
+
32
+ data = @instance.screenshot(path: path)
33
+ expect(data).to be_a(Tempfile)
34
+ expect(get_stub).to have_been_requested
35
+ end
36
+
37
+ it 'should support config changes' do
38
+ WebMock.reset!
39
+ path = '/path/to/a/screenshot.jpg'
40
+ @instance.api_client.config.configure do |c|
41
+ c.scheme = 'https'
42
+ c.host = 'notlocalhost'
43
+ c.base_path = '/contextroot/crx/packgr'
44
+ c.debugging = true
45
+ end
46
+ cfg = @instance.api_client.config
47
+ get_stub = stub_request(
48
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/screenshot.jsp"
49
+ ).with(
50
+ query: { path: path }
51
+ ).to_return(status: 200, body: screenshot, headers: { 'Content-Type' => 'image/jpg' })
52
+
53
+ data = @instance.screenshot(path: path)
54
+ expect(data).to be_a(Tempfile)
55
+ expect(get_stub).to have_been_requested
56
+ end
57
+
58
+ it 'should support failures' do
59
+ WebMock.reset!
60
+ path = '/path/to/a/screenshot.jpg'
61
+ cfg = @instance.api_client.config
62
+ get_stub = stub_request(
63
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/screenshot.jsp"
64
+ ).with(
65
+ query: { path: path }
66
+ ).to_return(status: 404)
67
+
68
+ begin
69
+ @instance.screenshot(path: path)
70
+ rescue CrxPackageManager::ApiError => e
71
+ expect(e).not_to be_nil
72
+ expect(e.code).to eq(404)
73
+ end
74
+
75
+ expect(get_stub).to have_been_requested
76
+ end
77
+
78
+ it 'should ignore other params' do
79
+ WebMock.reset!
80
+ path = '/path/to/a/screenshot.jpg'
81
+ cfg = @instance.api_client.config
82
+ get_stub = stub_request(
83
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/screenshot.jsp"
84
+ ).with(
85
+ query: { path: path }
86
+ ).to_return(status: 200, body: screenshot, headers: { 'Content-Type' => 'image/jpg' })
87
+
88
+ data = @instance.screenshot(path: path, other_param: 'value')
89
+ expect(data).to be_a(Tempfile)
90
+ expect(get_stub).to have_been_requested
91
+ end
92
+
93
+ end
@@ -0,0 +1,374 @@
1
+ require 'spec_helper'
2
+ require 'xmlsimple'
3
+
4
+ describe 'DefaultApi#service' do
5
+
6
+ before do
7
+ config = CrxPackageManager::Configuration.new
8
+ @instance = CrxPackageManager::DefaultApi.new(CrxPackageManager::ApiClient.new(config))
9
+ end
10
+
11
+ let(:service_resp) do
12
+ file = File.new(File.join(File.dirname(__FILE__), '..', 'files', 'service_response.txt'))
13
+ data = file.read
14
+ data
15
+ end
16
+
17
+ let(:service_resp1) do
18
+ file = File.new(File.join(File.dirname(__FILE__), '..', 'files', 'service_response1.txt'))
19
+ data = file.read
20
+ data
21
+ end
22
+
23
+ let(:ul) do
24
+ file = File.new(File.join(File.dirname(__FILE__), '..', 'files', 'test-1.0.0.zip'))
25
+ file
26
+ end
27
+
28
+ # unit tests for service_get
29
+ # Generic operation service.
30
+ # Provides endpoint for executing package manipulation commands.
31
+ # @param cmd The command to execute.
32
+ # @param [Hash] opts the optional parameters
33
+ # @option opts [String] :name The name of the package on which to execute the command.
34
+ # @option opts [String] :group The group of the package on which to execute the command.
35
+ # @option opts [BOOLEAN] :strict Fail on an error.
36
+ # @return [String]
37
+ context 'get' do
38
+
39
+ it 'should support cmd = help' do
40
+ WebMock.reset!
41
+ cfg = @instance.api_client.config
42
+ get_stub = stub_request(
43
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/service.jsp"
44
+ ).with(query: { cmd: 'help' }
45
+ ).to_return(status: 200, body: service_resp, headers: { 'Content-Type' => 'text/plain' })
46
+
47
+ xml = @instance.service_get('help')
48
+ parsed = XmlSimple.xml_in(xml, { ForceArray: %r(param), KeyToSymbol: true, AttrToSymbol: true } )
49
+ sr = CrxPackageManager::ServiceResponse.new
50
+ sr = sr.build_from_hash(parsed)
51
+ expect(sr.version).to eq('1.4.1')
52
+ expect(sr.user).to eq('admin')
53
+ expect(sr.workspace).to eq('crx.default')
54
+ expect(sr.request).not_to be_nil
55
+ req = sr.request
56
+ params = req.param
57
+ expect(params).to be_a(Array)
58
+ expect(params.length).to eq(1)
59
+ expect(params[0].name).to eq('cmd')
60
+ response = sr.response
61
+ expect(response.status[:code].to_i).to eq(200)
62
+ expect(get_stub).to have_been_requested
63
+ end
64
+
65
+ it 'should support cmd = ls' do
66
+ WebMock.reset!
67
+ cfg = @instance.api_client.config
68
+ get_stub = stub_request(
69
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/service.jsp"
70
+ ).with(query: { cmd: 'ls' }
71
+ ).to_return(status: 200, body: service_resp1, headers: { 'Content-Type' => 'text/plain' })
72
+
73
+ xml = @instance.service_get('ls')
74
+ parsed = XmlSimple.xml_in(xml, { ForceArray: false, KeyToSymbol: true, AttrToSymbol: true } )
75
+ sr = CrxPackageManager::ServiceResponse.new
76
+ sr = sr.build_from_hash(parsed)
77
+ expect(sr.version).to eq('1.4.1')
78
+ expect(sr.user).to eq('admin')
79
+ expect(sr.workspace).to eq('crx.default')
80
+ expect(sr.request).not_to be_nil
81
+ req = sr.request
82
+ params = req.param
83
+ expect(params).to be_a(Array)
84
+ expect(params.length).to eq(2)
85
+ expect(params[0].name).to eq('cmd')
86
+ response = sr.response
87
+ expect(response.status[:code].to_i).to eq(200)
88
+ expect(get_stub).to have_been_requested
89
+ end
90
+
91
+ it 'should support cmd = rm' do
92
+ WebMock.reset!
93
+ cfg = @instance.api_client.config
94
+ get_stub = stub_request(
95
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/service.jsp"
96
+ ).with(query: { cmd: 'rm' }
97
+ ).to_return(status: 200, body: service_resp1, headers: { 'Content-Type' => 'text/plain' })
98
+
99
+ xml = @instance.service_get('rm')
100
+ parsed = XmlSimple.xml_in(xml, { ForceArray: false, KeyToSymbol: true, AttrToSymbol: true } )
101
+ sr = CrxPackageManager::ServiceResponse.new
102
+ sr = sr.build_from_hash(parsed)
103
+ expect(sr.version).to eq('1.4.1')
104
+ expect(sr.user).to eq('admin')
105
+ expect(sr.workspace).to eq('crx.default')
106
+ expect(sr.request).not_to be_nil
107
+ req = sr.request
108
+ params = req.param
109
+ expect(params).to be_a(Array)
110
+ expect(params.length).to eq(2)
111
+ expect(params[0].name).to eq('cmd')
112
+ response = sr.response
113
+ expect(response.status[:code].to_i).to eq(200)
114
+ expect(get_stub).to have_been_requested
115
+ end
116
+
117
+ it 'should support cmd = build' do
118
+ WebMock.reset!
119
+ cfg = @instance.api_client.config
120
+ get_stub = stub_request(
121
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/service.jsp"
122
+ ).with(query: { cmd: 'build' }
123
+ ).to_return(status: 200, body: service_resp1, headers: { 'Content-Type' => 'text/plain' })
124
+
125
+ xml = @instance.service_get('build')
126
+ parsed = XmlSimple.xml_in(xml, { ForceArray: false, KeyToSymbol: true, AttrToSymbol: true } )
127
+ sr = CrxPackageManager::ServiceResponse.new
128
+ sr = sr.build_from_hash(parsed)
129
+ expect(sr.version).to eq('1.4.1')
130
+ expect(sr.user).to eq('admin')
131
+ expect(sr.workspace).to eq('crx.default')
132
+ expect(sr.request).not_to be_nil
133
+ req = sr.request
134
+ params = req.param
135
+ expect(params).to be_a(Array)
136
+ expect(params.length).to eq(2)
137
+ expect(params[0].name).to eq('cmd')
138
+ response = sr.response
139
+ expect(response.status[:code].to_i).to eq(200)
140
+ expect(get_stub).to have_been_requested
141
+ end
142
+
143
+ it 'should support cmd = inst' do
144
+ WebMock.reset!
145
+ cfg = @instance.api_client.config
146
+ get_stub = stub_request(
147
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/service.jsp"
148
+ ).with(query: { cmd: 'inst' }
149
+ ).to_return(status: 200, body: service_resp1, headers: { 'Content-Type' => 'text/plain' })
150
+
151
+ xml = @instance.service_get('inst')
152
+ parsed = XmlSimple.xml_in(xml, { ForceArray: false, KeyToSymbol: true, AttrToSymbol: true } )
153
+ sr = CrxPackageManager::ServiceResponse.new
154
+ sr = sr.build_from_hash(parsed)
155
+ expect(sr.version).to eq('1.4.1')
156
+ expect(sr.user).to eq('admin')
157
+ expect(sr.workspace).to eq('crx.default')
158
+ expect(sr.request).not_to be_nil
159
+ req = sr.request
160
+ params = req.param
161
+ expect(params).to be_a(Array)
162
+ expect(params.length).to eq(2)
163
+ expect(params[0].name).to eq('cmd')
164
+ response = sr.response
165
+ expect(response.status[:code].to_i).to eq(200)
166
+ expect(get_stub).to have_been_requested
167
+ end
168
+
169
+ it 'should support cmd = uninst' do
170
+ WebMock.reset!
171
+ cfg = @instance.api_client.config
172
+ get_stub = stub_request(
173
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/service.jsp"
174
+ ).with(query: { cmd: 'uninst' }
175
+ ).to_return(status: 200, body: service_resp1, headers: { 'Content-Type' => 'text/plain' })
176
+
177
+ xml = @instance.service_get('uninst')
178
+ parsed = XmlSimple.xml_in(xml, { ForceArray: false, KeyToSymbol: true, AttrToSymbol: true } )
179
+ sr = CrxPackageManager::ServiceResponse.new
180
+ sr = sr.build_from_hash(parsed)
181
+ expect(sr.version).to eq('1.4.1')
182
+ expect(sr.user).to eq('admin')
183
+ expect(sr.workspace).to eq('crx.default')
184
+ expect(sr.request).not_to be_nil
185
+ req = sr.request
186
+ params = req.param
187
+ expect(params).to be_a(Array)
188
+ expect(params.length).to eq(2)
189
+ expect(params[0].name).to eq('cmd')
190
+ response = sr.response
191
+ expect(response.status[:code].to_i).to eq(200)
192
+ expect(get_stub).to have_been_requested
193
+ end
194
+
195
+ it 'should support cmd = get' do
196
+ WebMock.reset!
197
+ cfg = @instance.api_client.config
198
+ get_stub = stub_request(
199
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/service.jsp"
200
+ ).with(query: { cmd: 'get' }
201
+ ).to_return(status: 200, body: service_resp1, headers: { 'Content-Type' => 'text/plain' })
202
+
203
+ xml = @instance.service_get('get')
204
+ parsed = XmlSimple.xml_in(xml, { ForceArray: false, KeyToSymbol: true, AttrToSymbol: true } )
205
+ sr = CrxPackageManager::ServiceResponse.new
206
+ sr = sr.build_from_hash(parsed)
207
+ expect(sr.version).to eq('1.4.1')
208
+ expect(sr.user).to eq('admin')
209
+ expect(sr.workspace).to eq('crx.default')
210
+ expect(sr.request).not_to be_nil
211
+ req = sr.request
212
+ params = req.param
213
+ expect(params).to be_a(Array)
214
+ expect(params.length).to eq(2)
215
+ expect(params[0].name).to eq('cmd')
216
+ response = sr.response
217
+ expect(response.status[:code].to_i).to eq(200)
218
+ expect(get_stub).to have_been_requested
219
+ end
220
+
221
+ it 'should support config changes' do
222
+ WebMock.reset!
223
+ @instance.api_client.config.configure do |c|
224
+ c.scheme = 'https'
225
+ c.host = 'notlocalhost'
226
+ c.base_path = '/contextroot/crx/packgr'
227
+ c.debugging = true
228
+ end
229
+ cfg = @instance.api_client.config
230
+ get_stub = stub_request(
231
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/service.jsp"
232
+ ).with(query: { cmd: 'help' }
233
+ ).to_return(status: 200, body: service_resp1, headers: { 'Content-Type' => 'text/plain' })
234
+
235
+ xml = @instance.service_get('help')
236
+ parsed = XmlSimple.xml_in(xml, { ForceArray: false, KeyToSymbol: true, AttrToSymbol: true } )
237
+ sr = CrxPackageManager::ServiceResponse.new
238
+ sr = sr.build_from_hash(parsed)
239
+ expect(sr.version).to eq('1.4.1')
240
+ expect(sr.user).to eq('admin')
241
+ expect(sr.workspace).to eq('crx.default')
242
+ expect(sr.request).not_to be_nil
243
+ req = sr.request
244
+ params = req.param
245
+ expect(params).to be_a(Array)
246
+ expect(params.length).to eq(2)
247
+ expect(params[0].name).to eq('cmd')
248
+ response = sr.response
249
+ expect(response.status[:code].to_i).to eq(200)
250
+ expect(get_stub).to have_been_requested
251
+ end
252
+
253
+ it 'should not allow invalid commands' do
254
+ WebMock.reset!
255
+ begin
256
+ @instance.service_get('invalid')
257
+ rescue ArgumentError => e
258
+ expect(e).not_to be_nil
259
+ expect(e.message).to match(/be one of/)
260
+ end
261
+ end
262
+
263
+ it 'should support failures' do
264
+ WebMock.reset!
265
+ cfg = @instance.api_client.config
266
+ get_stub = stub_request(
267
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/service.jsp"
268
+ ).with(query: { cmd: 'help' }
269
+ ).to_return(status: 500)
270
+
271
+ begin
272
+ @instance.service_get('help')
273
+ rescue CrxPackageManager::ApiError => e
274
+ expect(e).not_to be_nil
275
+ expect(e.code).to eq(500)
276
+ end
277
+
278
+ expect(get_stub).to have_been_requested
279
+ end
280
+
281
+ it 'should ignore other params' do
282
+ WebMock.reset!
283
+ cfg = @instance.api_client.config
284
+ get_stub = stub_request(
285
+ :get, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/service.jsp"
286
+ ).with(query: { cmd: 'help' }
287
+ ).to_return(status: 200, body: service_resp1, headers: { 'Content-Type' => 'text/plain' })
288
+
289
+ xml = @instance.service_get('help', other_param: 'value')
290
+ parsed = XmlSimple.xml_in(xml, { ForceArray: false, KeyToSymbol: true, AttrToSymbol: true } )
291
+ sr = CrxPackageManager::ServiceResponse.new
292
+ sr = sr.build_from_hash(parsed)
293
+ response = sr.response
294
+ expect(response.status[:code].to_i).to eq(200)
295
+ expect(get_stub).to have_been_requested
296
+ end
297
+ end
298
+
299
+ # unit tests for service_post
300
+ # Generic operation service.
301
+ # Provides endpoint for
302
+ # @param file Package file to upload
303
+ # @param [Hash] opts the optional parameters
304
+ # @option opts [String] :name The hint for the package's name if the definiton doesn't have one.
305
+ # @option opts [BOOLEAN] :strict Fail on an error.
306
+ # @option opts [BOOLEAN] :force Force the package upload.
307
+ # @option opts [BOOLEAN] :install Install the package upon upload
308
+ # @return [String]
309
+ context 'post' do
310
+ it 'should work' do
311
+ WebMock.reset!
312
+ cfg = @instance.api_client.config
313
+ post_stub = stub_request(
314
+ :post, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/service.jsp"
315
+ ).to_return(status: 200, body: service_resp, headers: { 'Content-Type' => 'text/plain' })
316
+
317
+ xml = @instance.service_post(ul)
318
+ parsed = XmlSimple.xml_in(xml, { ForceArray: false, KeyToSymbol: true, AttrToSymbol: true } )
319
+ sr = CrxPackageManager::ServiceResponse.new
320
+ sr = sr.build_from_hash(parsed)
321
+ response = sr.response
322
+ expect(response.status[:code].to_i).to eq(200)
323
+ expect(post_stub).to have_been_requested
324
+ end
325
+
326
+ it 'should support config changes' do
327
+ @instance.api_client.config.configure do |c|
328
+ c.scheme = 'https'
329
+ c.host = 'notlocalhost'
330
+ c.base_path = '/contextroot/crx/packgr'
331
+ c.debugging = true
332
+ end
333
+ cfg = @instance.api_client.config
334
+ post_stub = stub_request(
335
+ :post, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/service.jsp"
336
+ ).to_return(status: 200, body: service_resp, headers: { 'Content-Type' => 'text/plain' })
337
+
338
+ xml = @instance.service_post(ul)
339
+ parsed = XmlSimple.xml_in(xml, { ForceArray: false, KeyToSymbol: true, AttrToSymbol: true } )
340
+ sr = CrxPackageManager::ServiceResponse.new
341
+ sr = sr.build_from_hash(parsed)
342
+ response = sr.response
343
+ expect(response.status[:code].to_i).to eq(200)
344
+ expect(post_stub).to have_been_requested
345
+ end
346
+
347
+ it 'should require file' do
348
+ cfg = @instance.api_client.config
349
+ begin
350
+ @instance.service_post(nil)
351
+ rescue ArgumentError => e
352
+ expect(e).not_to be_nil
353
+ expect(e.message).to match(/required parameter 'file'/)
354
+ end
355
+ end
356
+
357
+ it 'should support failures' do
358
+ WebMock.reset!
359
+ cfg = @instance.api_client.config
360
+ post_stub = stub_request(
361
+ :post, "#{cfg.scheme}://#{cfg.host}#{cfg.base_path}/service.jsp"
362
+ ).to_return(status: 500)
363
+
364
+ begin
365
+ @instance.service_post(ul)
366
+ rescue CrxPackageManager::ApiError => e
367
+ expect(e).not_to be_nil
368
+ expect(e.code).to eq(500)
369
+ end
370
+
371
+ expect(post_stub).to have_been_requested
372
+ end
373
+ end
374
+ end