44 lines
1.2 KiB
Ruby
44 lines
1.2 KiB
Ruby
require_relative "../base"
|
|
|
|
require Vagrant.source_root.join("plugins/providers/virtualbox/cap/public_address")
|
|
|
|
describe VagrantPlugins::ProviderVirtualBox::Cap::PublicAddress do
|
|
include_context "unit"
|
|
|
|
let(:iso_env) do
|
|
# We have to create a Vagrantfile so there is a root path
|
|
env = isolated_environment
|
|
env.vagrantfile("")
|
|
env.create_vagrant_env
|
|
end
|
|
|
|
let(:machine) do
|
|
iso_env.machine(iso_env.machine_names[0], :dummy).tap do |m|
|
|
allow(m).to receive(:state).and_return(state)
|
|
end
|
|
end
|
|
|
|
let(:state) do
|
|
double(:state)
|
|
end
|
|
|
|
describe "#public_address" do
|
|
it "returns nil when the machine is not running" do
|
|
allow(state).to receive(:id).and_return(:not_created)
|
|
expect(described_class.public_address(machine)).to be(nil)
|
|
end
|
|
|
|
it "returns nil when there is no ssh info" do
|
|
allow(state).to receive(:id).and_return(:not_created)
|
|
allow(machine).to receive(:ssh_info).and_return(nil)
|
|
expect(described_class.public_address(machine)).to be(nil)
|
|
end
|
|
|
|
it "returns the host" do
|
|
allow(state).to receive(:id).and_return(:running)
|
|
allow(machine).to receive(:ssh_info).and_return(host: "test")
|
|
expect(described_class.public_address(machine)).to eq("test")
|
|
end
|
|
end
|
|
end
|