end
end
+ describe '原画エクスポートに於いて' do
+ before do
+ @ds = FactoryGirl.create :demander_status, :requested_at => Time.now, :approved_at => Time.now, :rejected_at => Time.now, :receive_hour1 => 0, :receive_hour2 => 0
+ @demander = FactoryGirl.create :demander, :demander_status_id => @ds.id
+ @artist = FactoryGirl.create :artist, :author_id => @author.id
+ @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
+ end
+ context '事前チェックする' do
+ before do
+ Demander.any_instance.stub(:status).and_return(3)
+ end
+ it '原画モデルに内原画エクスポートを依頼している' do
+ OriginalPicture.stub(:export).with(nil).and_return([@op])
+ OriginalPicture.should_receive(:export).with(nil).exactly(1)
+ r = @demander.original_pictures_export
+ end
+ end
+ context 'つつがなく終わるとき' do
+ before do
+ Demander.any_instance.stub(:status).and_return(3)
+ end
+ it '内原画リストを返す' do
+ OriginalPicture.stub(:export).with(Time.parse('2011/10/10')).and_return([@op])
+ r = @demander.original_pictures_export Time.parse('2011/10/10')
+ r.should eq [@op]
+ end
+ end
+ context '日時指定しないとき' do
+ before do
+ Demander.any_instance.stub(:status).and_return(3)
+ end
+ it 'パラメータなしでリストを取得する' do
+ OriginalPicture.stub(:export).with(nil).and_return([@op])
+ OriginalPicture.should_receive(:export).with(nil).exactly(1)
+ r = @demander.original_pictures_export nil
+ end
+ end
+ #例外ケース
+ context '状態が貸与中でないとき' do
+ it '例外403 ActiveRecord::Forbiddenを発生させる' do
+ Demander.any_instance.stub(:status).and_return(2)
+ lambda{
+ r = @demander.original_pictures_export
+ }.should raise_error(ActiveRecord::Forbidden)
+ end
+ end
+ end
+
+ describe '実素材エクスポートに於いて' do
+ before do
+ @ds = FactoryGirl.create :demander_status, :requested_at => Time.now, :approved_at => Time.now, :rejected_at => Time.now, :receive_hour1 => 0, :receive_hour2 => 0
+ @demander = FactoryGirl.create :demander, :demander_status_id => @ds.id
+ @artist = FactoryGirl.create :artist, :author_id => @author.id
+ @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
+ @p = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :revision => 0
+ end
+ context '事前チェックする' do
+ before do
+ Demander.any_instance.stub(:status).and_return(3)
+ end
+ it '実素材モデルにエクスポートを依頼している' do
+ Picture.stub(:export).with(nil).and_return([@p])
+ Picture.should_receive(:export).with(nil).exactly(1)
+ r = @demander.pictures_export
+ end
+ end
+ context 'つつがなく終わるとき' do
+ before do
+ Demander.any_instance.stub(:status).and_return(3)
+ end
+ it '実素材リストを返す' do
+ Picture.stub(:export).with(Time.parse('2011/10/10')).and_return([@p])
+ r = @demander.pictures_export Time.parse('2011/10/10')
+ r.should eq [@p]
+ end
+ end
+ context '日時指定しないとき' do
+ before do
+ Demander.any_instance.stub(:status).and_return(3)
+ end
+ it 'パラメータなしでリストを取得する' do
+ Picture.stub(:export).with(nil).and_return([@p])
+ Picture.should_receive(:export).with(nil).exactly(1)
+ r = @demander.pictures_export nil
+ end
+ end
+ #例外ケース
+ context '状態が貸与中でないとき' do
+ it '例外403 ActiveRecord::Forbiddenを発生させる' do
+ Demander.any_instance.stub(:status).and_return(2)
+ lambda{
+ r = @demander.pictures_export
+ }.should raise_error(ActiveRecord::Forbidden)
+ end
+ end
+ end
+
+ describe 'エクスポートに於いて' do
+ before do
+ @ds = FactoryGirl.create :demander_status, :requested_at => Time.now, :approved_at => Time.now, :rejected_at => Time.now, :receive_hour1 => 0, :receive_hour2 => 0
+ @demander = FactoryGirl.create :demander, :demander_status_id => @ds.id
+ @artist = FactoryGirl.create :artist, :author_id => @author.id
+ @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
+ @p = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :revision => 0
+ end
+ context '事前チェックする' do
+ before do
+ Demander.any_instance.stub(:status).and_return(3)
+ Demander.any_instance.stub(:licenses_export).and_return([@license])
+ Demander.any_instance.stub(:artists_export).and_return([@artist])
+ Demander.any_instance.stub(:original_pictures_export).and_return([@op])
+ Demander.any_instance.stub(:pictures_export).and_return([@p])
+ end
+ it 'ライセンスエクスポートを依頼している' do
+ Demander.any_instance.should_receive(:licenses_export).exactly(1)
+ r = @demander.export Time.now
+ end
+ it '絵師エクスポートを依頼している' do
+ Demander.any_instance.should_receive(:artists_export).exactly(1)
+ r = @demander.export Time.now
+ end
+ it '原画エクスポートを依頼している' do
+ Demander.any_instance.should_receive(:original_pictures_export).exactly(1)
+ r = @demander.export Time.now
+ end
+ it '実素材エクスポートを依頼している' do
+ Demander.any_instance.should_receive(:pictures_export).exactly(1)
+ r = @demander.export Time.now
+ end
+ end
+ context 'つつがなく終わるとき' do
+ before do
+ Demander.any_instance.stub(:status).and_return(3)
+ Demander.any_instance.stub(:licenses_export).and_return([@license])
+ Demander.any_instance.stub(:artists_export).and_return([@artist])
+ Demander.any_instance.stub(:original_pictures_export).and_return([@op])
+ Demander.any_instance.stub(:pictures_export).and_return([@p])
+ end
+ it 'Hashを返す' do
+ r = @demander.export Time.now
+ r.is_a?(Hash).should be_true
+ r.has_key?(:licenses).should be_true
+ r.has_key?(:artists).should be_true
+ r.has_key?(:original_pictures).should be_true
+ r.has_key?(:pictures).should be_true
+ end
+ end
+ #例外ケース
+ context '状態が貸与中でないとき' do
+ it '例外403 ActiveRecord::Forbiddenを発生させる' do
+ Demander.any_instance.stub(:status).and_return(2)
+ lambda{
+ r = @demander.export Time.now
+ }.should raise_error(ActiveRecord::Forbidden)
+ end
+ end
+ end
+
end