|
267 | 267 |
|
268 | 268 | context 'when listing all packages for an app' do
|
269 | 269 | let(:api_call) { lambda { |user_headers| get "/v3/apps/#{app_model.guid}/packages", nil, user_headers } }
|
270 |
| - let(:packages_response_object) do |
271 |
| - { |
272 |
| - 'pagination' => { |
273 |
| - 'total_results' => 1, |
274 |
| - 'total_pages' => 1, |
275 |
| - 'first' => { 'href' => "#{link_prefix}/v3/apps/#{guid}/packages?order_by=-created_at&page=1&per_page=2" }, |
276 |
| - 'last' => { 'href' => "#{link_prefix}/v3/apps/#{guid}/packages?order_by=-created_at&page=1&per_page=2" }, |
277 |
| - 'next' => nil, |
278 |
| - 'previous' => nil, |
279 |
| - }, |
280 |
| - 'resources' => [ |
281 |
| - { |
282 |
| - 'guid' => package.guid, |
283 |
| - 'type' => 'bits', |
284 |
| - 'data' => { |
285 |
| - 'checksum' => { 'type' => 'sha256', 'value' => anything }, |
286 |
| - 'error' => nil |
287 |
| - }, |
288 |
| - 'relationships' => { 'app' => { 'data' => { 'guid' => app_model.guid } } }, |
289 |
| - 'state' => VCAP::CloudController::PackageModel::CREATED_STATE, |
290 |
| - 'metadata' => { 'labels' => {}, 'annotations' => {} }, |
291 |
| - 'created_at' => iso8601, |
292 |
| - 'updated_at' => iso8601, |
293 |
| - 'links' => { |
294 |
| - 'self' => { 'href' => "#{link_prefix}/v3/packages/#{package.guid}" }, |
295 |
| - 'upload' => { 'href' => "#{link_prefix}/v3/packages/#{package.guid}/upload", 'method' => 'POST' }, |
296 |
| - 'download' => { 'href' => "#{link_prefix}/v3/packages/#{package.guid}/download" }, |
297 |
| - 'app' => { 'href' => "#{link_prefix}/v3/apps/#{guid}" }, |
298 |
| - } |
| 270 | + let(:packages_response_objects) do |
| 271 | + [ |
| 272 | + { |
| 273 | + 'guid' => package.guid, |
| 274 | + 'type' => 'bits', |
| 275 | + 'data' => { |
| 276 | + 'checksum' => { 'type' => 'sha256', 'value' => anything }, |
| 277 | + 'error' => nil |
299 | 278 | },
|
300 |
| - ] |
301 |
| - } |
| 279 | + 'relationships' => { 'app' => { 'data' => { 'guid' => app_model.guid } } }, |
| 280 | + 'state' => VCAP::CloudController::PackageModel::CREATED_STATE, |
| 281 | + 'metadata' => { 'labels' => {}, 'annotations' => {} }, |
| 282 | + 'created_at' => iso8601, |
| 283 | + 'updated_at' => iso8601, |
| 284 | + 'links' => { |
| 285 | + 'self' => { 'href' => "#{link_prefix}/v3/packages/#{package.guid}" }, |
| 286 | + 'upload' => { 'href' => "#{link_prefix}/v3/packages/#{package.guid}/upload", 'method' => 'POST' }, |
| 287 | + 'download' => { 'href' => "#{link_prefix}/v3/packages/#{package.guid}/download" }, |
| 288 | + 'app' => { 'href' => "#{link_prefix}/v3/apps/#{guid}" }, |
| 289 | + } |
| 290 | + }, |
| 291 | + ] |
302 | 292 | end
|
303 | 293 |
|
304 | 294 | let(:expected_codes_and_responses) do
|
305 |
| - h = Hash.new(code: 200, response_object: packages_response_object) |
| 295 | + h = Hash.new(code: 200, response_objects: packages_response_objects) |
306 | 296 | h['org_auditor'] = { code: 404 }
|
307 | 297 | h['org_billing_manager'] = { code: 404 }
|
308 | 298 | h['no_role'] = { code: 404 }
|
|
500 | 490 | state: VCAP::CloudController::PackageModel::READY_STATE,
|
501 | 491 | docker_image: 'http://location-of-image.com')
|
502 | 492 | end
|
503 |
| - let(:packages_response_object) do |
504 |
| - { |
505 |
| - 'pagination' => { |
506 |
| - 'total_results' => 3, |
507 |
| - 'total_pages' => 2, |
508 |
| - 'first' => { 'href' => "#{link_prefix}/v3/pagckaes?page=1&per_page=2" }, |
509 |
| - 'last' => { 'href' => "#{link_prefix}/v3/packages?page=2&per_page=2" }, |
510 |
| - 'next' => { 'href' => "#{link_prefix}/v3/packages?page=2&per_page=2" }, |
511 |
| - 'previous' => nil, |
512 |
| - }, |
513 |
| - 'resources' => [ |
514 |
| - { |
515 |
| - 'guid' => bits_package.guid, |
516 |
| - 'type' => 'bits', |
517 |
| - 'data' => { |
518 |
| - 'checksum' => { 'type' => 'sha256', 'value' => anything }, |
519 |
| - 'error' => nil |
520 |
| - }, |
521 |
| - 'state' => VCAP::CloudController::PackageModel::CREATED_STATE, |
522 |
| - 'relationships' => { 'app' => { 'data' => { 'guid' => app_model.guid } } }, |
523 |
| - 'metadata' => { 'labels' => {}, 'annotations' => {} }, |
524 |
| - 'created_at' => iso8601, |
525 |
| - 'updated_at' => iso8601, |
526 |
| - 'links' => { |
527 |
| - 'self' => { 'href' => "#{link_prefix}/v3/packages/#{bits_package.guid}" }, |
528 |
| - 'upload' => { 'href' => "#{link_prefix}/v3/packages/#{bits_package.guid}/upload", 'method' => 'POST' }, |
529 |
| - 'download' => { 'href' => "#{link_prefix}/v3/packages/#{bits_package.guid}/download" }, |
530 |
| - 'app' => { 'href' => "#{link_prefix}/v3/apps/#{bits_package.app_guid}" }, |
531 |
| - } |
| 493 | + let(:packages_response_objects) do |
| 494 | + [ |
| 495 | + { |
| 496 | + 'guid' => bits_package.guid, |
| 497 | + 'type' => 'bits', |
| 498 | + 'data' => { |
| 499 | + 'checksum' => { 'type' => 'sha256', 'value' => anything }, |
| 500 | + 'error' => nil |
532 | 501 | },
|
533 |
| - { |
534 |
| - 'guid' => docker_package.guid, |
535 |
| - 'type' => 'docker', |
536 |
| - 'data' => { |
537 |
| - 'image' => 'http://location-of-image.com', |
538 |
| - 'username' => nil, |
539 |
| - 'password' => nil, |
540 |
| - }, |
541 |
| - 'state' => VCAP::CloudController::PackageModel::READY_STATE, |
542 |
| - 'relationships' => { 'app' => { 'data' => { 'guid' => app_model.guid } } }, |
543 |
| - 'metadata' => { 'labels' => {}, 'annotations' => {} }, |
544 |
| - 'created_at' => iso8601, |
545 |
| - 'updated_at' => iso8601, |
546 |
| - 'links' => { |
547 |
| - 'self' => { 'href' => "#{link_prefix}/v3/packages/#{docker_package.guid}" }, |
548 |
| - 'app' => { 'href' => "#{link_prefix}/v3/apps/#{docker_package.app_guid}" }, |
549 |
| - } |
| 502 | + 'state' => VCAP::CloudController::PackageModel::CREATED_STATE, |
| 503 | + 'relationships' => { 'app' => { 'data' => { 'guid' => app_model.guid } } }, |
| 504 | + 'metadata' => { 'labels' => {}, 'annotations' => {} }, |
| 505 | + 'created_at' => iso8601, |
| 506 | + 'updated_at' => iso8601, |
| 507 | + 'links' => { |
| 508 | + 'self' => { 'href' => "#{link_prefix}/v3/packages/#{bits_package.guid}" }, |
| 509 | + 'upload' => { 'href' => "#{link_prefix}/v3/packages/#{bits_package.guid}/upload", 'method' => 'POST' }, |
| 510 | + 'download' => { 'href' => "#{link_prefix}/v3/packages/#{bits_package.guid}/download" }, |
| 511 | + 'app' => { 'href' => "#{link_prefix}/v3/apps/#{bits_package.app_guid}" }, |
550 | 512 | }
|
551 |
| - ] |
552 |
| - } |
| 513 | + }, |
| 514 | + { |
| 515 | + 'guid' => docker_package.guid, |
| 516 | + 'type' => 'docker', |
| 517 | + 'data' => { |
| 518 | + 'image' => 'http://location-of-image.com', |
| 519 | + 'username' => nil, |
| 520 | + 'password' => nil, |
| 521 | + }, |
| 522 | + 'state' => VCAP::CloudController::PackageModel::READY_STATE, |
| 523 | + 'relationships' => { 'app' => { 'data' => { 'guid' => app_model.guid } } }, |
| 524 | + 'metadata' => { 'labels' => {}, 'annotations' => {} }, |
| 525 | + 'created_at' => iso8601, |
| 526 | + 'updated_at' => iso8601, |
| 527 | + 'links' => { |
| 528 | + 'self' => { 'href' => "#{link_prefix}/v3/packages/#{docker_package.guid}" }, |
| 529 | + 'app' => { 'href' => "#{link_prefix}/v3/apps/#{docker_package.app_guid}" }, |
| 530 | + } |
| 531 | + } |
| 532 | + ] |
553 | 533 | end
|
554 | 534 |
|
555 | 535 | context 'when listing all packages' do
|
|
563 | 543 | }
|
564 | 544 |
|
565 | 545 | let(:expected_codes_and_responses) do
|
566 |
| - Hash.new(code: 200, response_object: packages_response_object) |
| 546 | + h = Hash.new(code: 200, response_objects: packages_response_objects) |
| 547 | + h['org_auditor'] = { code: 200, response_objects: [] } |
| 548 | + h['org_billing_manager'] = { code: 200, response_objects: [] } |
| 549 | + h['no_role'] = { code: 200, response_objects: [] } |
| 550 | + h |
567 | 551 | end
|
568 | 552 |
|
569 | 553 | it_behaves_like 'permissions for list endpoint', ALL_PERMISSIONS
|
|
0 commit comments