38 lines
905 B
Ruby
38 lines
905 B
Ruby
require File.expand_path("../../base", __FILE__)
|
|
|
|
describe Vagrant::Hosts do
|
|
let(:registry) { Hash.new }
|
|
let(:base_class) { Vagrant::Plugin::V1::Host }
|
|
|
|
it "detects the host that matches true" do
|
|
foo_klass = Class.new(base_class) do
|
|
def self.match?; false; end
|
|
end
|
|
|
|
bar_klass = Class.new(base_class) do
|
|
def self.match?; true; end
|
|
end
|
|
|
|
registry[:foo] = foo_klass
|
|
registry[:bar] = bar_klass
|
|
|
|
described_class.detect(registry).should == bar_klass
|
|
end
|
|
|
|
it "detects the host that matches true with the highest precedence first" do
|
|
foo_klass = Class.new(base_class) do
|
|
def self.match?; true; end
|
|
end
|
|
|
|
bar_klass = Class.new(base_class) do
|
|
def self.match?; true; end
|
|
def self.precedence; 9; end
|
|
end
|
|
|
|
registry[:foo] = foo_klass
|
|
registry[:bar] = bar_klass
|
|
|
|
described_class.detect(registry).should == bar_klass
|
|
end
|
|
end
|