2012-01-23 19:24:32 -08:00

49 lines
1.1 KiB
Ruby

require File.expand_path("../../../base", __FILE__)
describe Vagrant::Config::Base do
include_context "unit"
let(:foo_class) do
Class.new(described_class) do
attr_accessor :one
attr_accessor :two
end
end
it "should merge by default by simply copying each instance variable" do
one = foo_class.new
one.one = 2
one.two = 1
two = foo_class.new
two.two = 5
result = one.merge(two)
result.one.should == 2
result.two.should == 5
end
it "doesn't merge values that start with a double underscore" do
bar_class = Class.new(foo_class) do
class_variable_set(:@@counter, 0)
def initialize
@__test = self.class.send(:class_variable_get, :@@counter)
self.class.send(:class_variable_set, :@@counter, @__test + 1)
end
end
one = bar_class.new
one.one = 2
one.two = 1
two = bar_class.new
two.two = 5
# Verify the counters
one.instance_variable_get(:@__test).should == 0
two.instance_variable_get(:@__test).should == 1
one.merge(two).instance_variable_get(:@__test).should == 2
end
end