spec/extensions/composition_spec.rb in sequel-3.46.0 vs spec/extensions/composition_spec.rb in sequel-3.47.0
- old
+ new
@@ -89,32 +89,32 @@
@o.save_changes
called.should == true
end
it "should clear compositions cache when using set_values" do
- @c.composition :date, :composer=>proc{}, :decomposer=>proc{called = true}
+ @c.composition :date, :composer=>proc{}, :decomposer=>proc{}
@o.date = Date.new(3, 4, 5)
@o.set_values(:id=>1)
@o.compositions.should == {}
end
it "should clear compositions cache when refreshing" do
- @c.composition :date, :composer=>proc{}, :decomposer=>proc{called = true}
+ @c.composition :date, :composer=>proc{}, :decomposer=>proc{}
@o.date = Date.new(3, 4, 5)
@o.refresh
@o.compositions.should == {}
end
it "should clear compositions cache when refreshing after save" do
- @c.composition :date, :composer=>proc{}, :decomposer=>proc{called = true}
+ @c.composition :date, :composer=>proc{}, :decomposer=>proc{}
@c.create(:date=>Date.new(3, 4, 5)).compositions.should == {}
end
it "should clear compositions cache when saving with insert_select" do
def (@c.instance_dataset).supports_insert_select?() true end
def (@c.instance_dataset).insert_select(*) {:id=>1} end
- @c.composition :date, :composer=>proc{}, :decomposer=>proc{called = true}
+ @c.composition :date, :composer=>proc{}, :decomposer=>proc{}
@c.create(:date=>Date.new(3, 4, 5)).compositions.should == {}
end
it "should instantiate compositions lazily" do
@c.composition :date, :mapping=>[:year, :month, :day]
@@ -123,11 +123,11 @@
@o.compositions.should == {:date=>Date.new(1,2,3)}
end
it "should cache value of composition" do
times = 0
- @c.composition :date, :composer=>proc{times+=1}, :decomposer=>proc{called = true}
+ @c.composition :date, :composer=>proc{times+=1}, :decomposer=>proc{}
times.should == 0
@o.date
times.should == 1
@o.date
times.should == 1
@@ -197,9 +197,16 @@
@o.save
sql = MODEL_DB.sqls.last
sql.should include("year = NULL")
sql.should include("month = NULL")
sql.should include("day = NULL")
+ end
+
+ it "should work with frozen instances" do
+ @c.composition :date, :mapping=>[:year, :month, :day]
+ @o.freeze
+ @o.date.should == Date.new(1, 2, 3)
+ proc{@o.date = Date.today}.should raise_error
end
it "should work correctly with subclasses" do
@c.composition :date, :mapping=>[:year, :month, :day]
c = Class.new(@c)