validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
def supply_default
-# self.sheet_id = nil
-# self.panel_id = nil
self.x = 15
self.y = 15
if self.sheet
self.t = self.sheet.new_t
self.z = self.sheet.new_z
else
+ self.sheet_id = nil
+ self.panel_id = nil
self.z = 1
self.t = nil
end
#dbのデフォルト値が0だから明示的にnilにしないと追加ができない
it 'tをnilにする' do
- @sheet_panel = FactoryGirl.build :sheet_panel, :sheet_id => @sheet.id, :panel_id => @panel.id
+ @sheet_panel = FactoryGirl.build :sheet_panel, :sheet_id => nil, :panel_id => @panel.id
@sheet_panel.supply_default
@sheet_panel.t.should be_nil
end
+ it '自身の用紙に最大t取得を依頼している' do
+ @sheet_panel = FactoryGirl.build :sheet_panel, :sheet_id => @sheet.id, :panel_id => @panel.id
+ Sheet.any_instance.should_receive(:new_t).with(any_args).exactly(1)
+ @sheet_panel.supply_default
+ end
+ it 'tをnilにする' do
+ @sheet_panel = FactoryGirl.build :sheet_panel, :sheet_id => @sheet.id, :panel_id => @panel.id
+ Sheet.any_instance.stub(:new_t).with(any_args).and_return(4)
+ @sheet_panel.supply_default
+ @sheet_panel.t.should eq 4
+ end
+
end
describe '上書き補充に於いて' do