require 'rubygems' require 'require_relative' if RUBY_VERSION < '1.9' require 'minitest/autorun' require_relative './common.rb' describe CIMI::Collections::SystemTemplates do before do def app; run_frontend(:cimi) end authorize 'mockuser', 'mockpassword' @collection = CIMI::Collections.collection(:system_templates) end it 'has index operation' do @collection.operation(:index).must_equal CIMI::Rabbit::SystemTemplatesCollection::IndexOperation end it 'has show operation' do @collection.operation(:show).must_equal CIMI::Rabbit::SystemTemplatesCollection::ShowOperation end it 'returns list of system templates in various formats with index operation' do formats.each do |format| header 'Accept', format get root_url + '/system_templates' status.must_equal 200 end end it 'should allow to retrieve the single system template' do get root_url '/system_templates/template1' status.must_equal 200 xml.root.name.must_equal 'SystemTemplate' end it 'should not return non-existing system_template' do get root_url '/system_templates/unknown-system_template' status.must_equal 404 end it 'should allow to retrieve system template\'s machine template\'s ref details' do get root_url '/system_templates/template1' (xml/'SystemTemplate/componentDescriptor').each do |c| if (c/'name').inner_text == 'my third machine' (c/'machineTemplate').wont_be_empty (c/'machineTemplate').to_s.must_equal '' end end end it 'should allow to retrieve system template\'s machine template\'s inline details' do get root_url '/system_templates/template1' (xml/'SystemTemplate/componentDescriptor').each do |c| if (c/'name').inner_text == 'my machine' (c/'machineTemplate').wont_be_empty (c/'machineTemplate/name').inner_text.must_equal 'machine in mock system' (c/'machineTemplate/description').inner_text.must_equal 'machine in system' (c/'machineTemplate/machineConfig').to_s.must_equal '' (c/'machineTemplate/machineImage').to_s.must_equal '' (c/'machineTemplate/volumeTemplate').to_s.must_equal '' end end end it 'should allow to retrieve system template\'s machine template\'s inline volume template' do get root_url '/system_templates/template1' (xml/'SystemTemplate/componentDescriptor').each do |c| if (c/'name').inner_text == 'my second machine' (c/'machineTemplate').wont_be_empty (c/'machineTemplate/description').inner_text.must_equal 'another inline mock machine template' (c/'machineTemplate/volumeTemplate').wont_be_empty (c/'machineTemplate/volumeTemplate/volumeConfig').wont_be_empty (c/'machineTemplate/volumeTemplate/volumeConfig/capacity').inner_text.must_equal '10485760' end end end it 'should allow to retrieve system template\'s network' do get root_url '/system_templates/template1' (xml/'SystemTemplate/componentDescriptor').each do |c| if (c/'name').inner_text == 'network in mock system' (c/'networkTemplate').inner_text.must_equal 'my network' (c/'networkTemplate/networkConfig/networkType').inner_text.must_equal 'GOLD' end end end end