1 # -*- encoding: utf-8 -*-
\r
4 describe ResourcePicture do
7 @user = Factory( :user_yas)
9 @artist = Factory :artist_yas, :author_id => @author.id
\r
10 @other_user = Factory( :user_yas)
11 @other_author = @other_user.author
12 @other_artist = Factory :artist_yas, :author_id => @other_author.id
13 @sp = Factory :system_picture
14 @lg = Factory :license_group
15 @license = Factory :license, :license_group_id => @lg.id, :system_picture_id => @sp.id
16 @original_picture = Factory :original_picture, :artist_id => @artist.id
\r
18 class Mgk ; class Image ; end ; end
19 Mgk::Image.stub(:from_blob).with(any_args).and_return([Mgk.new])
20 Mgk.any_instance.stub(:format).with(any_args).and_return('png')
21 Mgk.any_instance.stub(:format=).with(any_args)
22 Mgk.any_instance.stub(:rows).with(any_args).and_return(200)
23 Mgk.any_instance.stub(:columns).with(any_args).and_return(100)
24 Mgk.any_instance.stub(:filesize).with(any_args).and_return(20000)
25 Mgk.any_instance.stub(:to_blob).with(any_args).and_return('data')
26 #原画ファイル削除だけは必ず成功するものとしておく
27 PictureIO::LocalPicture.any_instance.stub(:delete).with(any_args).and_return(true)
32 @p = Factory :picture, :original_picture_id => @original_picture.id, :license_id => @license.id, :artist_id => @artist.id
33 @rp = Factory.build :resource_picture, :artist_id => @artist.id, :original_picture_id => @original_picture.id, :license_id => @license.id, :picture_id => @p.id
36 it 'オーソドックスなデータなら通る' do
40 context 'extを検証するとき' do
47 @rp.should_not be_valid
51 @rp.should_not be_valid
53 it 'png,gif,jpeg以外なら失敗する' do
55 @rp.should_not be_valid
58 context 'widthを検証するとき' do
65 @rp.should_not be_valid
69 @rp.should_not be_valid
73 @rp.should_not be_valid
77 @rp.should_not be_valid
80 context 'heightを検証するとき' do
87 @rp.should_not be_valid
91 @rp.should_not be_valid
95 @rp.should_not be_valid
99 @rp.should_not be_valid
102 context 'filesizeを検証するとき' do
109 @rp.should_not be_valid
113 @rp.should_not be_valid
117 @rp.should_not be_valid
120 @rp.filesize = 2000000+1
121 @rp.should_not be_valid
124 context 'artist_idを検証するとき' do
126 @rp.artist_id = @artist.id
131 @rp.should_not be_valid
135 @rp.should_not be_valid
137 it '存在する絵師でなければ失敗する' do
139 @rp.should_not be_valid
142 context 'license_idを検証するとき' do
144 @rp.license_id = @license.id
149 @rp.should_not be_valid
153 @rp.should_not be_valid
155 it '存在する絵師でなければ失敗する' do
157 @rp.should_not be_valid
160 context 'original_picture_idを検証するとき' do
162 @rp.original_picture_id = @original_picture.id
166 @rp.original_picture_id = nil
167 @rp.should_not be_valid
170 @rp.original_picture_id = 'a'
171 @rp.should_not be_valid
173 it '存在する原画でなければ失敗する' do
174 @rp.original_picture_id = 0
175 @rp.should_not be_valid
178 context 'artist_nameを検証するとき' do
180 @rp.artist_name = 'a'
184 @rp.artist_name = nil
185 @rp.should_not be_valid
188 context 'creditを検証するとき' do
194 context 'settingsを検証するとき' do
200 context 'picture_idを検証するとき' do
202 @rp.picture_id = @p.id
207 @rp.should_not be_valid
211 @rp.should_not be_valid
213 it '存在する実素材でなければ失敗する' do
215 @rp.should_not be_valid
220 describe 'データ補充に於いて' do
226 describe '単体取得に於いて' do
228 @op = Factory :original_picture, :artist_id => @artist.id
229 @p = Factory :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
230 @rp = Factory :resource_picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :picture_id => @p.id
233 pic = ResourcePicture.show @rp.id
236 context '関連テーブルオプションがないとき' do
237 it 'ライセンスと絵師を含んでいる' do
238 r = ResourcePicture.show_include_opt
239 r.should eq [:license, :artist]
242 context '関連テーブルオプションで原画を含ませたとき' do
243 it 'ライセンスと絵師と原画データを含んでいる' do
244 r = ResourcePicture.show_include_opt(:include => :original_picture)
245 r.should eq [:license, :artist, :original_picture]
248 context '存在しない素材を開こうとしたとき' do
249 it '404RecordNotFound例外を返す' do
251 pic = ResourcePicture.show 0
252 }.should raise_error(ActiveRecord::RecordNotFound)
256 describe 'json単体出力オプションに於いて' do
257 it 'includeキーがライセンスと絵師を含んでいる' do
258 r = ResourcePicture.show_json_include_opt
259 r[:include].should eq [:license, :artist]
262 describe '一覧取得に於いて' do
264 @op = Factory :original_picture, :artist_id => @artist.id
265 @p = Factory :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
266 @rp = Factory :resource_picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :picture_id => @p.id
268 context 'page補正について' do
269 it '文字列から数値に変換される' do
270 ResourcePicture.page('8').should eq 8
273 ResourcePicture.page().should eq 1
276 ResourcePicture.page('0').should eq 1
279 context 'page_size補正について' do
280 it '文字列から数値に変換される' do
281 ResourcePicture.page_size('7').should eq 7
283 it 'nilの場合はResourcePicture.default_page_sizeになる' do
284 ResourcePicture.page_size().should eq ResourcePicture.default_page_size
286 it '0以下の場合はResourcePicture.default_page_sizeになる' do
287 ResourcePicture.page_size('0').should eq ResourcePicture.default_page_size
289 it 'ResourcePicture.max_page_sizeを超えた場合はResourcePicture.max_page_sizeになる' do
290 ResourcePicture.page_size('1000').should eq ResourcePicture.max_page_size
294 pic = ResourcePicture.list
298 nop = Factory :original_picture, :artist_id => @artist.id
299 nrp = Factory :resource_picture, :artist_id => @artist.id, :license_id => @license.id, :original_picture_id => nop.id, :picture_id => @p.id, :updated_at => Time.now + 100
300 pic = ResourcePicture.list
301 pic.should eq [nrp, @rp]
303 context 'DBに5件あって1ページの件数を2件に変えたとして' do
305 nop2 = Factory :original_picture, :artist_id => @artist.id
306 @nrp2 = Factory :resource_picture, :artist_id => @artist.id, :license_id => @license.id, :original_picture_id => nop2.id, :picture_id => @p.id, :updated_at => Time.now + 100
307 nop3 = Factory :original_picture, :artist_id => @artist.id
308 @nrp3 = Factory :resource_picture, :artist_id => @artist.id, :license_id => @license.id, :original_picture_id => nop3.id, :picture_id => @p.id, :updated_at => Time.now + 200
309 nop4 = Factory :original_picture, :artist_id => @artist.id
310 @nrp4 = Factory :resource_picture, :artist_id => @artist.id, :license_id => @license.id, :original_picture_id => nop4.id, :picture_id => @p.id, :updated_at => Time.now + 300
311 nop5 = Factory :original_picture, :artist_id => @artist.id
312 @nrp5 = Factory :resource_picture, :artist_id => @artist.id, :license_id => @license.id, :original_picture_id => nop5.id, :picture_id => @p.id, :updated_at => Time.now + 400
313 ResourcePicture.stub(:default_page_size).and_return(2)
316 pic = ResourcePicture.list
317 pic.should have(2).items
319 it 'page=1なら末尾2件を返す' do
321 pic = ResourcePicture.list({}, 1)
322 pic.should eq [@nrp5, @nrp4]
324 it 'page=2なら中間2件を返す' do
325 pic = ResourcePicture.list({}, 2)
326 pic.should eq [@nrp3, @nrp2]
328 it 'page=3なら先頭1件を返す' do
329 pic = ResourcePicture.list({}, 3)
334 describe 'json一覧出力オプションに於いて' do
335 it 'includeキーがライセンスと絵師を含んでいる' do
336 r = ResourcePicture.list_json_opt
337 r[:include].should eq [:license, :artist]
341 describe 'サイズの調整に於いて' do
345 it 'サイズに収まるときはそのまま使う' do
346 ResourcePicture.fix_size_both(64, 64, 64, 64).should eq [64, 64]
349 ResourcePicture.fix_size_both(64, 64, 32, 32).should eq [32, 32]
351 it '縦長のときは縦に合わせて縮小' do
352 ResourcePicture.fix_size_both(64, 64, 64, 128).should eq [32, 64]
354 it '横長のときは横に合わせて縮小' do
355 ResourcePicture.fix_size_both(64, 64, 128, 64).should eq [64, 32]
359 describe 'フォーマット変換対象判定に於いて' do
361 @rp = Factory.build :resource_picture,
\r
362 :artist_id => @artist.id, :license_id => @license.id
364 context '変換するケース' do
\r
365 it '画像フォーマットがpngかつライセンスの変換禁止フラグが無効のときTrue' do
\r
366 ResourcePicture.any_instance.stub(:flag_gif_convert).with(any_args).and_return(0)
368 @rp.to_gif?.should be_true
371 context '変換しないケース' do
372 it '画像フォーマットがでない' do
\r
373 ResourcePicture.any_instance.stub(:flag_gif_convert).with(any_args).and_return(0)
375 @rp.to_gif?.should be_false
378 ResourcePicture.any_instance.stub(:flag_gif_convert).with(any_args).and_return(-1)
380 @rp.to_gif?.should be_false
385 describe 'Gifフォーマット変換に於いて' do
387 Magick::Image.stub(:from_blob).with(any_args).and_return([Mgk.new])
389 context 'つつがなく終わるとき' do
391 mgk = ResourcePicture.png_to_gif('mgkbin')
\r
392 mgk.is_a?(Mgk).should be_true
394 it 'Mgkオブジェクトはgif変換されている' do
\r
395 #スタブばかりで変換できないので代入されているかでチェックする
396 Mgk.any_instance.should_receive(:format=).with('gif').exactly(1)
397 ResourcePicture.png_to_gif('mgkbin')
\r
400 context 'RMagick変換が失敗したとき' do
402 Magick::Image.should_receive(:from_blob).with(any_args).and_raise('StandardError')
405 res = ResourcePicture.png_to_gif('mgkbin')
\r
406 res.should be_false
\r
411 describe '原画からのコピーデータセットに於いて' do
413 @op = Factory :original_picture, :ext => 'jpeg', :width => 264, :height => 265, :filesize => 266,
\r
414 :artist_id => @artist.id
415 @rp = Factory.build :resource_picture,
\r
416 :artist_id => @artist.id
418 it '原画オブジェクトから属性を取り出して対象素材にセットしている' do
419 res = @rp.copy_data(@op)
\r
420 @rp.ext.should eq 'jpeg'
\r
421 @rp.width.should eq 264
\r
422 @rp.height.should eq 265
\r
423 @rp.filesize.should eq 266
\r
424 @rp.artist_id.should eq @artist.id
\r
428 describe '画像オブジェクトの取得に於いて' do
430 @op = Factory :original_picture, :artist_id => @artist.id
431 @p = Factory :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
432 attr = {:original_picture_id => @op.id, :license_id => @license.id, :artist_name => 'tester', :credit => '{}', :settings => {}.to_json.to_s}
\r
433 @rp = Factory.build :resource_picture, attr
437 OriginalPicture.any_instance.stub(:restore).with(any_args).and_return('data')
\r
438 OriginalPicture.any_instance.stub(:data_to_mgk).with(any_args).and_return(Mgk.new)
440 it '原画から画像データを取得している' do
441 OriginalPicture.any_instance.should_receive(:restore).with(any_args).exactly(1)
444 it '原画に原画データのRMagick変換を依頼している' do
445 OriginalPicture.any_instance.should_receive(:data_to_mgk).with(any_args).exactly(1)
449 context 'つつがなく終わるとき' do
451 #原画に原画データのRMagick変換を依頼し、画像オブジェクトを返す。
\r
454 OriginalPicture.any_instance.stub(:restore).with(any_args).and_return('data')
\r
455 OriginalPicture.any_instance.stub(:data_to_mgk).with(any_args).and_return(@mgk)
464 describe '新規実素材の取得に於いて' do
466 @op = Factory :original_picture, :artist_id => @artist.id
467 @p = Factory :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
468 attr = {:original_picture_id => @op.id, :license_id => @license.id, :artist_name => 'tester', :credit => '{}', :settings => {}.to_json.to_s}
\r
469 @rp = Factory.build :resource_picture, attr
474 Picture.any_instance.stub(:copy_data).with(any_args).and_return(true)
\r
475 Picture.any_instance.stub(:store).with(any_args).and_return(true)
\r
477 it '実素材に原画からのコピーデータを依頼している' do
478 Picture.any_instance.should_receive(:copy_data).with(any_args).exactly(1)
479 res = @rp.new_picture @mgk
\r
482 Picture.any_instance.should_receive(:store).with(any_args).exactly(1)
483 res = @rp.new_picture @mgk
\r
486 context 'つつがなく終わるとき' do
487 it '実素材に原画からのコピーデータをセットしている' do
488 res = @rp.new_picture @mgk
\r
489 @rp.ext.should eq @op.ext
\r
490 @rp.width.should eq @op.width
\r
491 @rp.height.should eq @op.height
\r
492 @rp.filesize.should eq @op.filesize
\r
493 @rp.artist_id.should eq @op.artist_id
\r
494 @rp.original_picture_id.should eq @op.id
\r
497 res = @rp.new_picture @mgk
\r
498 res.is_a?(Picture).should be_true
\r
503 describe '作成・更新に於いて' do
505 @op = Factory :original_picture, :artist_id => @artist.id
506 @p = Factory :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
507 attr = {:original_picture_id => @op.id, :license_id => @license.id, :artist_name => 'tester', :credit => '{}', :settings => {}.to_json.to_s}
\r
508 @rp = Factory.build :resource_picture, attr
512 #すべての処理が正常パターンで通過すれば、一番深い分岐まで通る。
513 #それで外部のメソッド呼び出しだけに着目してテストする。
514 @mgk = Mgk.new #一回目の本画像保存は与えたオブジェクトを使って保存する。
515 ResourcePicture.any_instance.stub(:op_mgk).with(any_args).and_return(@mgk)
\r
516 ResourcePicture.any_instance.stub(:new_picture).with(any_args).and_return(@p)
\r
517 ResourcePicture.any_instance.stub(:store_picture).with(any_args).and_return(true)
\r
518 ResourcePicture.any_instance.stub(:to_gif?).with(any_args).and_return(true)
\r
519 class GifMgk < Mgk ; end #store_pictureは二回呼び出される。区別をつけるために
\r
520 @gifmgk = GifMgk.new #パラメータを二種類用意する。
\r
521 ResourcePicture.stub(:png_to_gif).with(any_args).and_return(@gifmgk)
523 it '素材に原画からのコピーデータをセットしている' do
524 ResourcePicture.any_instance.stub(:copy_data).with(any_args).and_return(true)
\r
525 ResourcePicture.any_instance.should_receive(:copy_data).with(any_args).exactly(1)
528 it '画像オブジェクトの取得を依頼している' do
529 ResourcePicture.any_instance.should_receive(:op_mgk).with(any_args).exactly(1)
532 it '新規実素材の取得を依頼している' do
533 ResourcePicture.any_instance.should_receive(:new_picture).with(any_args).exactly(1)
537 ResourcePicture.any_instance.should_receive(:save).with(any_args).exactly(1)
540 it '画像ファイルの作成・更新機能で画像を保存している' do
\r
541 ResourcePicture.any_instance.should_receive(:store_picture).with(@mgk).exactly(1)
544 it '自身にフォーマット変換対象かを問い合わせている' do
545 ResourcePicture.any_instance.should_receive(:to_gif?).with(any_args).exactly(1)
548 it '自身にGifフォーマット変換を依頼している' do
549 ResourcePicture.should_receive(:png_to_gif).with(any_args).exactly(1)
552 it '画像ファイルの作成・更新機能でgif画像を保存している' do
\r
554 ResourcePicture.any_instance.should_receive(:store_picture).with(@gifmgk).exactly(1)
558 context 'つつがなく終わるとき' do
560 #すべての処理を正常パターンで通過させ、保存機能をチェックする。
561 @mgk = Mgk.new #一回目の本画像保存は与えたオブジェクトを使って保存する。
562 ResourcePicture.any_instance.stub(:op_mgk).with(any_args).and_return(@mgk)
\r
563 ResourcePicture.any_instance.stub(:new_picture).with(any_args).and_return(@p)
\r
564 ResourcePicture.any_instance.stub(:store_picture).with(any_args).and_return(true)
\r
565 ResourcePicture.any_instance.stub(:to_gif?).with(any_args).and_return(true)
\r
566 class GifMgk < Mgk ; end #store_pictureは二回呼び出される。区別をつけるために
\r
567 @gifmgk = GifMgk.new #パラメータを二種類用意する。
\r
568 ResourcePicture.stub(:png_to_gif).with(any_args).and_return(@gifmgk)
574 it '実素材idをセットしている' do
576 @rp.picture_id.should_not be_nil
\r
578 it '実素材idから最新画像idを取得してセットしている' do
580 @rp.picture_id.should eq @p.id
\r
585 }.should change ResourcePicture, :count
\r
588 context 'gif変換なしで、つつがなく終わるとき' do
590 #すべての処理を正常パターンで通過させ、保存機能をチェックする。
591 @mgk = Mgk.new #一回目の本画像保存は与えたオブジェクトを使って保存する。
592 ResourcePicture.any_instance.stub(:op_mgk).with(any_args).and_return(@mgk)
\r
593 ResourcePicture.any_instance.stub(:new_picture).with(any_args).and_return(@p)
\r
594 ResourcePicture.any_instance.stub(:store_picture).with(any_args).and_return(true)
\r
595 ResourcePicture.any_instance.stub(:to_gif?).with(any_args).and_return(false)
\r
601 it 'gif保存は呼ばれていない' do
\r
602 ResourcePicture.any_instance.should_receive(:store_picture).with(any_args).exactly(1)
606 #以下から例外ケース。処理先頭から失敗させていく
607 context '画像オブジェクトの取得に失敗したとき' do
609 ResourcePicture.any_instance.stub(:op_mgk).with(any_args).and_return(false)
\r
613 res.should be_false
\r
617 @rp.should be_a_new ResourcePicture
\r
620 context '新規実素材の取得に失敗したとき' do
622 @mgk = Mgk.new #一回目の本画像保存は与えたオブジェクトを使って保存する。
623 ResourcePicture.any_instance.stub(:op_mgk).with(any_args).and_return(@mgk)
\r
624 ResourcePicture.any_instance.stub(:new_picture).with(any_args).and_return(@p)
\r
625 Picture.any_instance.stub(:valid?).with(any_args).and_return(false)
\r
629 res.should be_false
\r
633 @rp.should be_a_new ResourcePicture
\r
636 context '自身の保存に失敗したとき' do
638 @mgk = Mgk.new #一回目の本画像保存は与えたオブジェクトを使って保存する。
639 ResourcePicture.any_instance.stub(:op_mgk).with(any_args).and_return(@mgk)
\r
640 ResourcePicture.any_instance.stub(:new_picture).with(any_args).and_return(@p)
\r
641 ResourcePicture.any_instance.stub(:save).with(any_args).and_return(false)
\r
645 res.should be_false
\r
649 @rp.should be_a_new ResourcePicture
\r
652 context '画像の保存に失敗したとき' do
654 @mgk = Mgk.new #一回目の本画像保存は与えたオブジェクトを使って保存する。
655 ResourcePicture.any_instance.stub(:op_mgk).with(any_args).and_return(@mgk)
\r
656 ResourcePicture.any_instance.stub(:new_picture).with(any_args).and_return(@p)
\r
657 ResourcePicture.any_instance.stub(:save).with(any_args).and_return(true)
\r
658 ResourcePicture.any_instance.stub(:store_picture).with(any_args).and_return(false)
\r
662 res.should be_false
\r
664 it 'gif変換判定は呼ばれていない' do
\r
665 ResourcePicture.any_instance.should_not_receive(:to_gif?).with(any_args)
669 context 'gif変換に失敗したとき' do
671 @mgk = Mgk.new #一回目の本画像保存は与えたオブジェクトを使って保存する。
672 ResourcePicture.any_instance.stub(:op_mgk).with(any_args).and_return(@mgk)
\r
673 ResourcePicture.any_instance.stub(:new_picture).with(any_args).and_return(@p)
\r
674 ResourcePicture.any_instance.stub(:save).with(any_args).and_return(true)
\r
675 ResourcePicture.any_instance.stub(:store_picture).with(any_args).and_return(true)
\r
676 ResourcePicture.any_instance.stub(:to_gif?).with(any_args).and_return(true)
\r
677 ResourcePicture.stub(:png_to_gif).with(any_args).and_return(false)
681 res.should be_false
\r
683 it 'gif画像の保存は呼ばれていない' do
\r
684 #本画像の保存があるので、一度は呼ばれる
\r
685 ResourcePicture.any_instance.should_receive(:store_picture).with(any_args).exactly(1)
689 context 'gif画像の保存に失敗したとき' do
692 ResourcePicture.any_instance.stub(:op_mgk).with(any_args).and_return(@mgk)
\r
693 ResourcePicture.any_instance.stub(:new_picture).with(any_args).and_return(@p)
\r
694 ResourcePicture.any_instance.stub(:save).with(any_args).and_return(true)
\r
695 ResourcePicture.any_instance.stub(:store_picture).with(@mgk).and_return(true)
\r
696 ResourcePicture.any_instance.stub(:to_gif?).with(any_args).and_return(true)
\r
697 class GifMgk < Mgk ; end #store_pictureは二回呼び出される。区別をつけるために
\r
698 @gifmgk = GifMgk.new #パラメータを二種類用意する。
\r
699 ResourcePicture.stub(:png_to_gif).with(any_args).and_return(@gifmgk)
700 ResourcePicture.any_instance.stub(:store_picture).with(@gifmgk).and_return(false)
\r
704 res.should be_false
\r
709 describe '画像ファイルの作成・更新に於いて' do
\r
710 #PictureIo経由で画像を保存するための機能。ファイル名に自身のidを使うので事前に自身の保存が必要。
\r
712 @op = Factory :original_picture, :artist_id => @artist.id
713 @p = Factory :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
714 attr = {:original_picture_id => @op.id, :license_id => @license.id, :artist_name => 'tester', :credit => '{}', :settings => {}.to_json.to_s}
\r
715 @rp = Factory.build :resource_picture, attr
\r
720 #すべての処理を正常パターンで通過させ、保存機能をチェックする。
721 PictureIO.resource_picture_io.stub(:put).with(any_args).and_return(true)
722 ResourcePicture.any_instance.stub(:flag_thumbnail).with(any_args).and_return(1)
723 ResourcePicture.any_instance.stub(:thumbnail).with(any_args).and_return('tmbdata')
725 it 'サムネイル化が1回呼ばれる' do
\r
726 ResourcePicture.any_instance.should_receive(:thumbnail).with(any_args).exactly(1)
727 res = @rp.store_picture(Mgk.new)
\r
729 it '画像ファイルの保存が2回呼ばれる' do
\r
730 PictureIO.resource_picture_io.should_receive(:put).with(any_args).exactly(2)
731 res = @rp.store_picture(Mgk.new)
\r
733 it '画像ファイルのベースへのサムネイル保存が1回呼ばれる' do
\r
734 PictureIO.resource_picture_io.should_receive(:put).with('tmbdata', @rp.filename).exactly(1)
735 res = @rp.store_picture(Mgk.new)
\r
737 it '画像ファイルのfullへの保存が1回呼ばれる' do
\r
738 PictureIO.resource_picture_io.should_receive(:put).with('data', @rp.filename, 'full').exactly(1)
739 res = @rp.store_picture(Mgk.new)
\r
742 context 'つつがなく終わるとき' do
744 #すべての処理を正常パターンで通過させ、保存機能をチェックする。
\r
745 PictureIO.resource_picture_io.stub(:put).with(any_args).and_return(true)
746 ResourcePicture.any_instance.stub(:flag_thumbnail).with(any_args).and_return(1)
749 res = @rp.store_picture(Mgk.new)
\r
755 ResourcePicture.any_instance.stub(:flag_thumbnail).with(any_args).and_return(1)
756 PictureIO.resource_picture_io.stub(:put).with(any_args).and_return(false)
759 res = @rp.store_picture(Mgk.new)
\r
760 res.should be_false
\r
766 describe 'サムネイル変換に於いて' do
767 #サムネイル化した画像データを返すが、スタブをおくので、リサイズと画像データ化を試みるかをチェックする
769 ResourcePicture.stub(:resize).with(any_args).and_return(Mgk.new)
770 @op = Factory :original_picture, :artist_id => @artist.id
771 @p = Factory :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
772 attr = {:original_picture_id => @op.id, :license_id => @license.id, :artist_name => 'tester', :credit => '{}', :settings => {}.to_json.to_s}
\r
773 @rp = Factory.build :resource_picture, attr
\r
775 it 'サムネイルサイズに縮小した画像データを返す' do
\r
776 ResourcePicture.should_receive(:resize).with(any_args).exactly(1)
777 @rp.thumbnail(Mgk.new)
\r
781 @rp.thumbnail(Mgk.new).should eq 'data'
\r