X-Git-Url: http://git.osdn.net/view?p=pettanr%2Fpettanr.git;a=blobdiff_plain;f=spec%2Fmodels%2Fground_color_spec.rb;h=6655af01a925273965952b4e2926042064c4cf74;hp=44a778c0b3c304e622339ddc3b454bf72f68537e;hb=e6ae2d4d0e9cec1828ef7e4bec617d7f925d8133;hpb=2bcff4ea2e955de6c21e19239313f00ac323f410 diff --git a/spec/models/ground_color_spec.rb b/spec/models/ground_color_spec.rb index 44a778c0..6655af01 100644 --- a/spec/models/ground_color_spec.rb +++ b/spec/models/ground_color_spec.rb @@ -257,19 +257,6 @@ describe GroundColor do pl.should eq [@gc] end end - context 'DBに5件あって1ページの件数を0件に変えたとして' do - before do - @gc2 = FactoryGirl.create :ground_color, :panel_id => @panel.id, :z => 1, :updated_at => Time.now + 100 - @gc3 = FactoryGirl.create :ground_color, :panel_id => @panel.id, :z => 2, :updated_at => Time.now + 200 - @gc4 = FactoryGirl.create :ground_color, :panel_id => @panel.id, :z => 3, :updated_at => Time.now + 300 - @gc5 = FactoryGirl.create :ground_color, :panel_id => @panel.id, :z => 4, :updated_at => Time.now + 400 - GroundColor.stub(:default_page_size).and_return(2) - end - it '通常は全件(5件)を返す' do - r = GroundColor.list 5, 0 - r.should have(5).items - end - end end describe '自分のコマで使った色地一覧取得に於いて' do @@ -329,19 +316,6 @@ describe GroundColor do c.should eq [@gc] end end - context 'DBに5件あって1ページの件数を0件に変えたとして' do - before do - @gc2 = FactoryGirl.create :ground_color, :panel_id => @panel.id, :z => 1, :updated_at => Time.now + 100 - @gc3 = FactoryGirl.create :ground_color, :panel_id => @panel.id, :z => 2, :updated_at => Time.now + 200 - @gc4 = FactoryGirl.create :ground_color, :panel_id => @panel.id, :z => 3, :updated_at => Time.now + 300 - @gc5 = FactoryGirl.create :ground_color, :panel_id => @panel.id, :z => 4, :updated_at => Time.now + 400 - Author.stub(:default_ground_color_page_size).and_return(2) - end - it '通常は全件(5件)を返す' do - r = GroundColor.mylist @author, 5, 0 - r.should have(5).items - end - end end describe '他作家の色地一覧取得に於いて' do @@ -391,36 +365,79 @@ describe GroundColor do pl.should eq [@other_gc] end end - context 'DBに5件あって1ページの件数を0件に変えたとして' do - before do - @other_gc2 = FactoryGirl.create :ground_color, :panel_id => @other_panel.id, :updated_at => Time.now + 100 - @other_gc3 = FactoryGirl.create :ground_color, :panel_id => @other_panel.id, :updated_at => Time.now + 200 - @other_gc4 = FactoryGirl.create :ground_color, :panel_id => @other_panel.id, :updated_at => Time.now + 300 - @other_gc5 = FactoryGirl.create :ground_color, :panel_id => @other_panel.id, :updated_at => Time.now + 400 - Author.stub(:default_ground_color_page_size).and_return(2) - end - it '通常は全件(5件)を返す' do - r = GroundColor.himlist @other_author, 5, 0 - r.should have(5).items - end + end + + describe '色地一覧ページ制御に於いて' do + before do + GroundColor.stub(:count).with(any_args).and_return(100) + end + it 'ページ制御を返す' do + r = GroundColor.list_paginate + r.is_a?(Kaminari::PaginatableArray).should be_true + end + it '色地一覧の取得条件を利用している' do + GroundColor.stub(:list_where).with(any_args).and_return('') + GroundColor.should_receive(:list_where).with(any_args).exactly(1) + r = GroundColor.list_paginate + end + it 'ページ件数10のとき、3ページ目のオフセットは20から始まる' do + r = GroundColor.list_paginate 3, 10 + r.limit_value.should eq 10 + r.offset_value.should eq 20 end end - describe '一覧取得オプションに於いて' do - it 'includeキーを含んでいる' do - r = GroundColor.list_opt - r.has_key?(:include).should be_true + describe '自分の色地一覧ページ制御に於いて' do + before do + GroundColor.stub(:count).with(any_args).and_return(100) + end + it 'ページ制御を返す' do + r = GroundColor.mylist_paginate @author + r.is_a?(Kaminari::PaginatableArray).should be_true + end + it '自分の色地一覧の取得条件を利用している' do + GroundColor.stub(:mylist_where).with(any_args).and_return('') + GroundColor.should_receive(:mylist_where).with(any_args).exactly(1) + r = GroundColor.mylist_paginate @author + end + it 'ページ件数10のとき、3ページ目のオフセットは20から始まる' do + r = GroundColor.mylist_paginate @author, 3, 10 + r.limit_value.should eq 10 + r.offset_value.should eq 20 end + end + + describe '他作家の色地一覧ページ制御に於いて' do + before do + GroundColor.stub(:count).with(any_args).and_return(100) + end + it 'ページ制御を返す' do + r = GroundColor.himlist_paginate @other_author + r.is_a?(Kaminari::PaginatableArray).should be_true + end + it '他作家の色地一覧の取得条件を利用している' do + GroundColor.stub(:himlist_where).with(any_args).and_return('') + GroundColor.should_receive(:himlist_where).with(any_args).exactly(1) + r = GroundColor.himlist_paginate @other_author + end + it 'ページ件数10のとき、3ページ目のオフセットは20から始まる' do + r = GroundColor.himlist_paginate @other_author, 3, 10 + r.limit_value.should eq 10 + r.offset_value.should eq 20 + end + end + + describe '一覧取得オプションに於いて' do it '1つの項目を含んでいる' do - r = GroundColor.list_opt[:include] + r = GroundColor.list_opt r.should have(1).items end it 'コマを含んでいる' do - r = GroundColor.list_opt[:include] + r = GroundColor.list_opt r.has_key?(:panel).should be_true end it 'コマは作家を含んでいる' do - r = GroundColor.list_opt[:include] + r = GroundColor.list_opt r[:panel].has_key?(:author).should be_true end end