vaguerent/test/unit/vagrant/guest_test.rb
Fabio Rehm 54656151cf Convert specs to RSpec 2.14.8 syntax with Transpec
This conversion is done by Transpec 1.10.2 with the following command:
    transpec test/unit/

* 507 conversions
    from: obj.should
      to: expect(obj).to

* 394 conversions
    from: == expected
      to: eq(expected)

* 260 conversions
    from: obj.should_receive(:message)
      to: expect(obj).to receive(:message)

* 85 conversions
    from: obj.stub(:message)
      to: allow(obj).to receive(:message)

* 25 conversions
    from: its(:attr) { }
      to: describe '#attr' do subject { super().attr }; it { } end

* 19 conversions
    from: obj.should_not
      to: expect(obj).not_to

* 7 conversions
    from: obj.should_not_receive(:message)
      to: expect(obj).not_to receive(:message)

* 3 conversions
    from: Klass.any_instance.should_receive(:message)
      to: expect_any_instance_of(Klass).to receive(:message)
2014-03-14 12:02:07 -03:00

103 lines
2.7 KiB
Ruby

require "pathname"
require File.expand_path("../../base", __FILE__)
describe Vagrant::Guest do
include_context "capability_helpers"
let(:capabilities) { {} }
let(:guests) { {} }
let(:machine) do
double("machine").tap do |m|
m.stub(:inspect => "machine")
m.stub(:config => double("config"))
m.config.stub(:vm => double("vm_config"))
m.config.vm.stub(:guest => nil)
end
end
subject { described_class.new(machine, guests, capabilities) }
describe "#capability" do
before(:each) do
guests[:foo] = [detect_class(true), nil]
capabilities[:foo] = {
foo_cap: cap_instance(:foo_cap),
corrupt_cap: cap_instance(:corrupt_cap, corrupt: true),
}
subject.detect!
end
it "executes existing capabilities" do
expect { subject.capability(:foo_cap) }.
to raise_error(RuntimeError, "cap: foo_cap [machine]")
end
it "raises user-friendly error for non-existing caps" do
expect { subject.capability(:what_cap) }.
to raise_error(Vagrant::Errors::GuestCapabilityNotFound)
end
it "raises a user-friendly error for corrupt caps" do
expect { subject.capability(:corrupt_cap) }.
to raise_error(Vagrant::Errors::GuestCapabilityInvalid)
end
end
describe "#detect!" do
it "auto-detects if no explicit guest name given" do
machine.config.vm.stub(guest: nil)
expect(subject).to receive(:initialize_capabilities!).
with(nil, guests, capabilities, machine)
subject.detect!
end
it "uses the explicit guest name if specified" do
machine.config.vm.stub(guest: :foo)
expect(subject).to receive(:initialize_capabilities!).
with(:foo, guests, capabilities, machine)
subject.detect!
end
it "raises a user-friendly error if specified guest doesn't exist" do
machine.config.vm.stub(guest: :foo)
expect { subject.detect! }.
to raise_error(Vagrant::Errors::GuestExplicitNotDetected)
end
it "raises a user-friendly error if auto-detected guest not found" do
expect { subject.detect! }.
to raise_error(Vagrant::Errors::GuestNotDetected)
end
end
describe "#name" do
it "should be the name of the detected guest" do
guests[:foo] = [detect_class(true), nil]
guests[:bar] = [detect_class(false), nil]
subject.detect!
expect(subject.name).to eql(:foo)
end
end
describe "#ready?" do
before(:each) do
guests[:foo] = [detect_class(true), nil]
end
it "should not be ready by default" do
expect(subject.ready?).not_to be
end
it "should be ready after detecting" do
subject.detect!
expect(subject.ready?).to be
end
end
end