mirror of
https://github.com/vagrant-libvirt/vagrant-libvirt.git
synced 2025-02-25 18:55:27 -06:00
Move the unit context to a name matching the other contexts. Remove some unnecessary entries from it that are unused, and remove references to the old name relying on spec helper to load all contexts.
66 lines
2.0 KiB
Ruby
66 lines
2.0 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
require 'vagrant-libvirt/action/set_boot_order'
|
|
|
|
describe VagrantPlugins::ProviderLibvirt::Action::SetBootOrder do
|
|
subject { described_class.new(app, env) }
|
|
|
|
include_context 'unit'
|
|
include_context 'libvirt'
|
|
|
|
#before do
|
|
# allow(driver).to receive(:created?).and_return(true)
|
|
#end
|
|
|
|
describe '#call' do
|
|
it 'should return early' do
|
|
expect(connection).to_not receive(:client)
|
|
|
|
expect(subject.call(env)).to be_nil
|
|
end
|
|
|
|
context 'with boot_order defined' do
|
|
let(:domain_xml) { File.read(File.join(File.dirname(__FILE__), File.basename(__FILE__, '.rb'), test_file)) }
|
|
let(:updated_domain_xml) { File.read(File.join(File.dirname(__FILE__), File.basename(__FILE__, '.rb'), updated_test_file)) }
|
|
let(:test_file) { 'default.xml' }
|
|
let(:updated_test_file) { 'explicit_boot_order.xml' }
|
|
let(:vagrantfile_providerconfig) do
|
|
<<-EOF
|
|
libvirt.boot "hd"
|
|
libvirt.boot "cdrom"
|
|
libvirt.boot "network" => 'vagrant-libvirt'
|
|
EOF
|
|
end
|
|
|
|
before do
|
|
allow(connection).to receive(:client).and_return(libvirt_client)
|
|
allow(libvirt_client).to receive(:lookup_domain_by_uuid).and_return(libvirt_domain)
|
|
allow(libvirt_domain).to receive(:xml_desc).and_return(domain_xml)
|
|
allow(logger).to receive(:debug)
|
|
end
|
|
|
|
it 'should configure the boot order' do
|
|
expect(libvirt_client).to receive(:define_domain_xml).with(updated_domain_xml)
|
|
expect(subject.call(env)).to be_nil
|
|
end
|
|
|
|
context 'with multiple networks in bootorder' do
|
|
let(:vagrantfile_providerconfig) do
|
|
<<-EOF
|
|
libvirt.boot "hd"
|
|
libvirt.boot "cdrom"
|
|
libvirt.boot "network" => 'vagrant-libvirt'
|
|
libvirt.boot "network" => 'vagrant-libvirt'
|
|
EOF
|
|
end
|
|
|
|
it 'should raise an exception' do
|
|
expect { subject.call(env) }.to raise_error('Defined only for 1 network for boot')
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|