vaguerent/test/unit/vagrant/plugin/v2/provider_test.rb

59 lines
1.3 KiB
Ruby

require File.expand_path("../../../../base", __FILE__)
describe Vagrant::Plugin::V2::Provider do
include_context "unit"
let(:machine) { Object.new }
let(:instance) { described_class.new(machine) }
subject { instance }
it "should be usable by default" do
expect(described_class).to be_usable
end
it "should be installed by default" do
expect(described_class).to be_installed
end
it "should return nil by default for actions" do
expect(instance.action(:whatever)).to be_nil
end
it "should return nil by default for ssh info" do
expect(instance.ssh_info).to be_nil
end
it "should return nil by default for state" do
expect(instance.state).to be_nil
end
context "capabilities" do
before do
register_plugin("2") do |p|
p.provider_capability("bar", "foo") {}
p.provider_capability("foo", "bar") do
Class.new do
def self.bar(machine)
raise "bar #{machine.id}"
end
end
end
end
allow(machine).to receive(:id).and_return("YEAH")
instance._initialize("foo", machine)
end
it "can execute capabilities" do
expect(subject.capability?(:foo)).to be(false)
expect(subject.capability?(:bar)).to be(true)
expect { subject.capability(:bar) }.
to raise_error("bar YEAH")
end
end
end