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)