blob: a432b4011659ebe12e83ff96e8d691cc9529ef4a [file] [log] [blame]
require 'rubygems'
require 'require_relative' if RUBY_VERSION < '1.9'
require_relative File.join('..', 'common.rb')
describe Deltacloud::Collections::Images do
before do
def app; run_frontend; end
authorize 'mockuser', 'mockpassword'
@collection = Deltacloud::Collections.collection(:images)
end
it 'has index operation' do
@collection.operation(:index).must_equal Deltacloud::Rabbit::ImagesCollection::IndexOperation
end
it 'has show operation' do
@collection.operation(:show).must_equal Deltacloud::Rabbit::ImagesCollection::ShowOperation
end
it 'returns list of images in various formats with index operation' do
formats.each do |format|
header 'Accept', format
get root_url + '/images'
status.must_equal 200
end
end
it 'returns details about image in various formats with show operation' do
formats.each do |format|
header 'Accept', format
get root_url + '/images/img1'
status.must_equal 200
end
end
it 'provides URL to specify new image' do
header 'Accept', 'text/html'
get root_url + '/images/new?instance_id=inst1'
status.must_equal 200
get root_url + '/images/new'
status.must_equal 404
end
it 'allow to create and destroy the new image' do
post root_url + '/images', { :instance_id => 'inst1', :name => 'img-test1', :description => 'test image' }
status.must_equal 201
xml.root[:id].wont_be_nil
delete root_url + '/images/' + xml.root[:id]
status.must_equal 204
end
it 'reports 404 when querying non-existing image' do
get root_url + '/images/non-existing-one'
status.must_equal 404
end
it 'properly serialize attributes in JSON' do
check_json_serialization_for :image, 'img1'
end
end