crx_packmgr_api_client 0.1.0 → 1.0.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.
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