1 # -*- encoding: utf-8 -*-
5 describe ProviderOriginalPicture do
7 @admin = FactoryGirl.create :admin
8 @sp = FactoryGirl.create :system_picture
9 @lg = FactoryGirl.create :license_group
10 @license = FactoryGirl.create :license, :license_group_id => @lg.id, :system_picture_id => @sp.id
11 @user = FactoryGirl.create :user_yas
12 @author = FactoryGirl.create :author, :user_id => @user.id
13 @artist = FactoryGirl.create :artist, :author_id => @author.id
14 @other_user = FactoryGirl.create :user_yas
15 @other_author = FactoryGirl.create :author, :user_id => @other_user.id
16 @other_artist = FactoryGirl.create :artist, :author_id => @other_author.id
17 @provider_status = FactoryGirl.create :provider_status
18 @provider = FactoryGirl.create :provider, :provider_status_id => @provider_status.id
22 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
23 @pop = FactoryGirl.build :provider_original_picture, :provider_id => @provider.id, :providers_original_picture_id => 2, :demanders_original_picture_id => @op.id
26 context 'オーソドックスなデータのとき' do
35 context 'provider_idを検証するとき' do
37 @pop.provider_id = nil
38 @pop.should_not be_valid
41 @pop.provider_id = 'a'
42 @pop.should_not be_valid
44 it '存在する貸手でなければ失敗する' do
46 @pop.should_not be_valid
49 context 'providers_original_picture_idを検証するとき' do
51 @pop.providers_original_picture_id = nil
52 @pop.should_not be_valid
55 @pop.providers_original_picture_id = 'a'
56 @pop.should_not be_valid
59 context 'demanders_original_picture_idを検証するとき' do
61 @pop.demanders_original_picture_id = nil
62 @pop.should_not be_valid
65 @pop.demanders_original_picture_id = 'a'
66 @pop.should_not be_valid
71 describe '対照表取得に於いて' do
73 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
74 @pop = FactoryGirl.create :provider_original_picture, :provider_id => @provider.id, :providers_original_picture_id => 2, :demanders_original_picture_id => @op.id
77 r = ProviderOriginalPicture.get_one @provider.id, 2
80 it '該当する対照表が存在しなかったら、新規に興した対照表オブジェクトを返す' do
81 r = ProviderOriginalPicture.get_one @provider.id, 1
82 r.should be_a_new ProviderOriginalPicture
83 r = ProviderOriginalPicture.get_one 0, 2
84 r.should be_a_new ProviderOriginalPicture
88 describe '貸手側原画同期に於いて' do
90 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
91 @pop = FactoryGirl.create :provider_original_picture, :provider_id => @provider.id, :providers_original_picture_id => 2, :demanders_original_picture_id => @op.id
92 @newpop = ProviderOriginalPicture.new
94 context '自身に原画がリンクしてないとき' do
97 it '原画オブジェクトを新規に興す' do
99 r = @newpop.modify_original_picture @op.attributes
100 }.should change OriginalPicture, :count
103 context '自身に原画がリンクしているとき' do
106 r = @pop.modify_original_picture @op.attributes
107 }.should_not change OriginalPicture, :count
110 it '貸手側原画カラム値からカラム値をセットする 原画オブジェクトを保存する' do
111 r = @pop.modify_original_picture :filesize => 3346
113 @op.filesize.should eq 3346
116 r = @pop.modify_original_picture @op.attributes
121 describe '貸手側実素材同期に於いて' do
123 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
124 @p = FactoryGirl.create :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 0,
125 :original_picture_id => @op.id
126 @p2 = FactoryGirl.build :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 1,
127 :original_picture_id => @op.id
129 context '実素材が取得できないとき' do
132 it '実素材オブジェクトを新規に興す' do
133 r = ProviderOriginalPicture.modify_picture @p2.attributes
134 r.should be_a_new Picture
137 context '実素材が取得できるとき' do
138 it '実素材に原画idRevision取得を依頼して、実素材を取得している' do
139 r = ProviderOriginalPicture.modify_picture @p.attributes
140 r.should_not be_a_new Picture
144 it '実素材にカラム値をセットする' do
145 r = ProviderOriginalPicture.modify_picture({:original_picture_id => @p.id, :revision => 0, :filesize => 3346})
146 r.filesize.should eq 3346
149 r = ProviderOriginalPicture.modify_picture @p.attributes
154 describe '貸手側素材同期に於いて' do
156 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
157 @p = FactoryGirl.create :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 0,
158 :original_picture_id => @op.id
159 @rp = FactoryGirl.create :resource_picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :picture_id => @p.id
160 @attr = FactoryGirl.attributes_for :resource_picture, :artist_id => @artist.id, :original_picture_id => 111, :license_id => @license.id, :picture_id => @p.id, :filesize => 36225
162 context '素材が取得できないとき' do
165 it '素材オブジェクトを新規に興す' do
166 r = ProviderOriginalPicture.modify_resource_picture @attr
167 r.should be_a_new ResourcePicture
170 context '素材が取得できるとき' do
171 it '素材に原画id取得を依頼して、素材を取得している' do
172 r = ProviderOriginalPicture.modify_resource_picture @rp.attributes
173 r.should_not be_a_new ResourcePicture
177 it '素材にカラム値をセットする' do
178 r = ProviderOriginalPicture.modify_resource_picture @attr
179 r.filesize.should eq 36225
182 r = ProviderOriginalPicture.modify_resource_picture @rp.attributes
187 describe '絵師id置換に於いて' do
189 @pa = FactoryGirl.create :provider_artist, :provider_id => @provider.id, :providers_artist_id => 5, :demanders_artist_id => @artist.id
190 @pa2 = FactoryGirl.create :provider_artist, :provider_id => @provider.id, :providers_artist_id => 3, :demanders_artist_id => @other_artist.id
192 context 'つつがなく終わるとき' do
196 @attr5 = {'artist_id' => 5}
197 r = ProviderOriginalPicture.replace_artist @provider.id, @attr5
200 it 'カラム値の絵師idを借手側の絵師のidで置き換える' do
201 @attr5 = {'artist_id' => 5}
202 r = ProviderOriginalPicture.replace_artist @provider.id, @attr5
203 @attr5['artist_id'].should eq @artist.id
204 @attr3 = {'artist_id' => 3}
205 r = ProviderOriginalPicture.replace_artist @provider.id, @attr3
206 @attr3['artist_id'].should eq @other_artist.id
209 context '借手側の絵師がなかったとき' do
213 @attr = {'artist_id' => 1}
214 r = ProviderOriginalPicture.replace_artist @provider.id, @attr
220 describe 'ライセンスid置換に於いて' do
222 @other_license = FactoryGirl.create :license, :license_group_id => @lg.id, :system_picture_id => @sp.id, :url => 'http://other.license', :name => 'other_license'
223 @pl = FactoryGirl.create :provider_license, :provider_id => @provider.id, :providers_license_id => 4, :demanders_license_id => @license.id
224 @pl2 = FactoryGirl.create :provider_license, :provider_id => @provider.id, :providers_license_id => 2, :demanders_license_id => @other_license.id
226 context 'つつがなく終わるとき' do
230 @attr5 = {'license_id' => 4}
231 r = ProviderOriginalPicture.replace_license @provider.id, @attr5
234 it 'カラム値のライセンスidを借手側のライセンスのidで置き換える' do
235 @attr4 = {'license_id' => 4}
236 r = ProviderOriginalPicture.replace_license @provider.id, @attr4
237 @attr4['license_id'].should eq @license.id
238 @attr2 = {'license_id' => 2}
239 r = ProviderOriginalPicture.replace_license @provider.id, @attr2
240 @attr2['license_id'].should eq @other_license.id
243 context '借手側のライセンスがなかったとき' do
247 @attr = {'license_id' => 1}
248 r = ProviderOriginalPicture.replace_license @provider.id, @attr
254 describe '原画id置換に於いて' do
256 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
257 @other_op = FactoryGirl.create :original_picture, :artist_id => @artist.id
258 @pop = FactoryGirl.create :provider_original_picture, :provider_id => @provider.id, :providers_original_picture_id => 6, :demanders_original_picture_id => @op.id
259 @pop2 = FactoryGirl.create :provider_original_picture, :provider_id => @provider.id, :providers_original_picture_id => 9, :demanders_original_picture_id => @other_op.id
261 context 'つつがなく終わるとき' do
265 @attr6 = {'original_picture_id' => 6}
266 r = ProviderOriginalPicture.replace_original_picture @provider.id, @attr6
269 it 'カラム値の原画idを借手側の原画のidで置き換える' do
270 @attr6 = {'original_picture_id' => 6}
271 r = ProviderOriginalPicture.replace_original_picture @provider.id, @attr6
272 @attr6['original_picture_id'].should eq @op.id
273 @attr9 = {'original_picture_id' => 9}
274 r = ProviderOriginalPicture.replace_original_picture @provider.id, @attr9
275 @attr9['original_picture_id'].should eq @other_op.id
278 context '借手側の原画がなかったとき' do
282 @attr = {'original_picture_id' => 1}
283 r = ProviderOriginalPicture.replace_original_picture @provider.id, @attr
289 describe '原画インポートに於いて' do
291 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
292 @other_op = FactoryGirl.create :original_picture, :artist_id => @artist.id
294 context '事前チェックする' do
296 ProviderOriginalPicture.stub(:get_one).with(any_args).and_return(ProviderOriginalPicture.new)
297 ProviderOriginalPicture.stub(:replace_artist).with(any_args).and_return(true)
298 ProviderOriginalPicture.any_instance.stub(:modify_original_picture).with(any_args).and_return(@op)
299 OriginalPicture.any_instance.stub(:valid?).with(any_args).and_return(true)
300 ProviderOriginalPicture.any_instance.stub(:save).with(any_args).and_return(true)
302 it '対照表取得を問い合わせている' do
303 ProviderOriginalPicture.should_receive(:get_one).with(any_args).exactly(1)
304 r = ProviderOriginalPicture.import_original_pictures @provider.id, [@op.attributes]
306 it '絵師id置換を依頼している' do
307 ProviderOriginalPicture.should_receive(:replace_artist).with(any_args).exactly(1)
308 r = ProviderOriginalPicture.import_original_pictures @provider.id, [@op.attributes]
310 it '対照表に原画同期を依頼してしている' do
311 ProviderOriginalPicture.any_instance.should_receive(:modify_original_picture).with(any_args).exactly(1)
312 r = ProviderOriginalPicture.import_original_pictures @provider.id, [@op.attributes]
315 OriginalPicture.any_instance.should_receive(:valid?).with(any_args).exactly(1)
316 r = ProviderOriginalPicture.import_original_pictures @provider.id, [@op.attributes]
318 it '対照表オブジェクトを保存している' do
319 ProviderOriginalPicture.any_instance.should_receive(:save).with(any_args).exactly(1)
320 r = ProviderOriginalPicture.import_original_pictures @provider.id, [@op.attributes]
323 context 'つつがなく終わるとき' do
325 ProviderOriginalPicture.stub(:replace_artist).with(any_args).and_return(true)
328 r = ProviderOriginalPicture.import_original_pictures @provider.id, [@op.attributes]
333 r = ProviderOriginalPicture.import_original_pictures @provider.id, [@op.attributes]
334 }.should change ProviderOriginalPicture, :count
337 context '複数インポートのとき' do
339 ProviderOriginalPicture.stub(:replace_artist).with(any_args).and_return(true)
342 r = ProviderOriginalPicture.import_original_pictures @provider.id, [@op.attributes, @other_op.attributes]
347 r = ProviderOriginalPicture.import_original_pictures @provider.id, [@op.attributes, @other_op.attributes]
348 }.should change(ProviderOriginalPicture, :count).by(2)
352 context '絵師id置換に失敗したとき' do
354 ProviderOriginalPicture.stub(:replace_artist).with(any_args).and_return(false)
356 it '結果に原画のカラム値を追加している' do
357 r = ProviderOriginalPicture.import_original_pictures @provider.id, [@op.attributes, @op.attributes]
358 r.should_not be_empty
361 context '原画の検証に失敗したとき' do
363 OriginalPicture.any_instance.stub(:valid?).with(any_args).and_return(false)
365 it '結果に貸手側原画のカラム値を追加している' do
366 r = ProviderOriginalPicture.import_original_pictures @provider.id, [@op.attributes]
367 r.should_not be_empty
370 context '対照表オブジェクトの保存に失敗したとき' do
372 ProviderOriginalPicture.any_instance.stub(:save).with(any_args).and_return(false)
374 it '結果に貸手側原画のカラム値を追加している' do
375 r = ProviderOriginalPicture.import_original_pictures @provider.id, [@op.attributes]
376 r.should_not be_empty
379 context '原画オブジェクトの保存に失敗したとき' do
381 OriginalPicture.any_instance.stub(:save).with(any_args).and_return(false)
383 it '結果に貸手側原画のカラム値を追加している' do
384 r = ProviderOriginalPicture.import_original_pictures @provider.id, [@op.attributes]
385 r.should_not be_empty
390 describe '実素材インポートに於いて' do
392 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
393 @p = FactoryGirl.create :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
394 @imager = ImagerTest.load "abc\ndef\nghi"
395 @attr = @p.attributes
396 @attr['picture_data'] = "abc\ndef\nghi"
398 context '事前チェックする' do
400 ProviderOriginalPicture.stub(:replace_original_picture).with(any_args).and_return(true)
401 ProviderOriginalPicture.stub(:replace_artist).with(any_args).and_return(true)
402 ProviderOriginalPicture.stub(:replace_license).with(any_args).and_return(true)
403 Base64.stub(:decode64).with(any_args).and_return("abc\ndef\nghi")
404 PettanImager.stub(:load).with("abc\ndef\nghi").and_return(@imager)
405 ProviderOriginalPicture.stub(:modify_picture).with(any_args).and_return(@p)
406 Picture.any_instance.stub(:store).with(any_args).and_return(true)
408 it '原画id置換を依頼している' do
409 ProviderOriginalPicture.should_receive(:replace_original_picture).with(any_args).exactly(1)
410 r = ProviderOriginalPicture.import_pictures @provider.id, [@attr]
412 it '絵師id置換を依頼している' do
413 ProviderOriginalPicture.should_receive(:replace_artist).with(any_args).exactly(1)
414 r = ProviderOriginalPicture.import_pictures @provider.id, [@attr]
416 it 'ライセンスid置換を依頼している' do
417 ProviderOriginalPicture.should_receive(:replace_license).with(any_args).exactly(1)
418 r = ProviderOriginalPicture.import_pictures @provider.id, [@attr]
420 it '画像データをデコードしている' do
421 Base64.should_receive(:decode64).with(any_args).exactly(1)
422 r = ProviderOriginalPicture.import_pictures @provider.id, [@attr]
424 it '画像ライブラリにロードを依頼している' do
425 PettanImager.should_receive(:load).with(any_args).exactly(1)
426 r = ProviderOriginalPicture.import_pictures @provider.id, [@attr]
428 it '対照表モデルに貸手側実素材同期を依頼している' do
429 ProviderOriginalPicture.should_receive(:modify_picture).with(any_args).exactly(1)
430 r = ProviderOriginalPicture.import_pictures @provider.id, [@attr]
433 Picture.any_instance.should_receive(:store).with(any_args).exactly(1)
434 r = ProviderOriginalPicture.import_pictures @provider.id, [@attr]
437 context 'つつがなく終わるとき' do
439 ProviderOriginalPicture.stub(:replace_original_picture).with(any_args).and_return(true)
440 ProviderOriginalPicture.stub(:replace_artist).with(any_args).and_return(true)
441 ProviderOriginalPicture.stub(:replace_license).with(any_args).and_return(true)
442 Base64.stub(:decode64).with(any_args).and_return("abc\ndef\nghi")
443 PettanImager.stub(:load).with("abc\ndef\nghi").and_return(@imager)
444 @newp = FactoryGirl.build :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id, :revision => 1
445 @newattr = @newp.attributes
446 @newattr['picture_data'] = "abc\ndef\nghi"
449 r = ProviderOriginalPicture.import_pictures @provider.id, [@newattr]
454 r = ProviderOriginalPicture.import_pictures @provider.id, [@newattr]
455 }.should change Picture, :count
459 context '原画id置換に失敗したとき' do
461 ProviderOriginalPicture.stub(:replace_original_picture).with(any_args).and_return(false)
463 it '結果に実素材のカラム値を追加している' do
464 r = ProviderOriginalPicture.import_pictures @provider.id, [@attr]
465 r.should_not be_empty
468 context '絵師id置換に失敗したとき' do
470 ProviderOriginalPicture.stub(:replace_original_picture).with(any_args).and_return(true)
471 ProviderOriginalPicture.stub(:replace_artist).with(any_args).and_return(false)
473 it '結果に実素材のカラム値を追加している' do
474 r = ProviderOriginalPicture.import_pictures @provider.id, [@attr]
475 r.should_not be_empty
478 context 'ライセンスid置換に失敗したとき' do
480 ProviderOriginalPicture.stub(:replace_original_picture).with(any_args).and_return(true)
481 ProviderOriginalPicture.stub(:replace_artist).with(any_args).and_return(true)
482 ProviderOriginalPicture.stub(:replace_license).with(any_args).and_return(false)
484 it '結果に実素材のカラム値を追加している' do
485 r = ProviderOriginalPicture.import_pictures @provider.id, [@attr]
486 r.should_not be_empty
489 context '画像ライブラリのロードに失敗したとき' do
491 ProviderOriginalPicture.stub(:replace_original_picture).with(any_args).and_return(true)
492 ProviderOriginalPicture.stub(:replace_artist).with(any_args).and_return(true)
493 ProviderOriginalPicture.stub(:replace_license).with(any_args).and_return(true)
494 PettanImager.stub(:load).with(any_args).and_return(false)
496 it '結果に実素材のカラム値を追加している' do
497 r = ProviderOriginalPicture.import_pictures @provider.id, [@attr]
498 r.should_not be_empty
501 context '実素材の保存に失敗したとき' do
503 ProviderOriginalPicture.stub(:replace_original_picture).with(any_args).and_return(true)
504 ProviderOriginalPicture.stub(:replace_artist).with(any_args).and_return(true)
505 ProviderOriginalPicture.stub(:replace_license).with(any_args).and_return(true)
506 PettanImager.stub(:load).with(any_args).and_return(@imager)
507 ProviderOriginalPicture.stub(:modify_picture).with(any_args).and_return(@p)
508 Picture.any_instance.stub(:store).with(any_args).and_return(false)
510 it '結果に実素材のカラム値を追加している' do
511 r = ProviderOriginalPicture.import_pictures @provider.id, [@attr]
512 r.should_not be_empty
517 describe '素材インポートに於いて' do
519 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
520 @p = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :revision => 0
521 rpattr = {:original_picture_id => @op.id, :picture_id => @p.id, :license_id => @license.id, :artist_id => @artist.id, :artist_name => 'tester',
522 :credit => '{}', :settings => {:reverse => 1, :gif_convert => 1}.to_json.to_s}
523 @rp = FactoryGirl.create :resource_picture, rpattr
524 @imager = ImagerTest.load "abc\ndef\nghi"
525 @attr = @op.attributes
526 @attr['resource_picture'] = @rp.attributes
527 @attr['resource_picture']['picture_data'] = "abc\ndef\nghi"
529 context '事前チェックする' do
531 ProviderOriginalPicture.stub(:replace_original_picture).with(any_args).and_return(true)
532 ProviderOriginalPicture.stub(:replace_artist).with(any_args).and_return(true)
533 ProviderOriginalPicture.stub(:replace_license).with(any_args).and_return(true)
534 Base64.stub(:decode64).with(any_args).and_return("abc\ndef\nghi")
535 PettanImager.stub(:load).with("abc\ndef\nghi").and_return(@imager)
536 ProviderOriginalPicture.stub(:modify_resource_picture).with(any_args).and_return(@rp)
537 ResourcePicture.any_instance.stub(:store_picture_with_gif).with(any_args).and_return(true)
538 ResourcePicture.any_instance.stub(:save).with(any_args).and_return(true)
540 it '原画id置換を依頼している' do
541 ProviderOriginalPicture.should_receive(:replace_original_picture).with(any_args).exactly(1)
542 r = ProviderOriginalPicture.import_resource_pictures @provider.id, [@attr]
544 it '絵師id置換を依頼している' do
545 ProviderOriginalPicture.should_receive(:replace_artist).with(any_args).exactly(1)
546 r = ProviderOriginalPicture.import_resource_pictures @provider.id, [@attr]
548 it 'ライセンスid置換を依頼している' do
549 ProviderOriginalPicture.should_receive(:replace_license).with(any_args).exactly(1)
550 r = ProviderOriginalPicture.import_resource_pictures @provider.id, [@attr]
552 it '画像データをデコードしている' do
553 Base64.should_receive(:decode64).with(any_args).exactly(1)
554 r = ProviderOriginalPicture.import_resource_pictures @provider.id, [@attr]
556 it '画像ライブラリにロードを依頼している' do
557 PettanImager.should_receive(:load).with(any_args).exactly(1)
558 r = ProviderOriginalPicture.import_resource_pictures @provider.id, [@attr]
560 it '対照表モデルに貸手側素材同期を依頼している' do
561 ProviderOriginalPicture.should_receive(:modify_resource_picture).with(any_args).exactly(1)
562 r = ProviderOriginalPicture.import_resource_pictures @provider.id, [@attr]
564 it '素材にgif付き画像ファイルの作成・更新を依頼している' do
565 ResourcePicture.any_instance.should_receive(:store_picture_with_gif).with(any_args).exactly(1)
566 r = ProviderOriginalPicture.import_resource_pictures @provider.id, [@attr]
569 ResourcePicture.any_instance.should_receive(:save).with(any_args).exactly(1)
570 r = ProviderOriginalPicture.import_resource_pictures @provider.id, [@attr]
573 context 'つつがなく終わるとき' do
575 ProviderOriginalPicture.stub(:replace_original_picture).with(any_args).and_return(true)
576 ProviderOriginalPicture.stub(:replace_artist).with(any_args).and_return(true)
577 ProviderOriginalPicture.stub(:replace_license).with(any_args).and_return(true)
578 Base64.stub(:decode64).with(any_args).and_return("abc\ndef\nghi")
579 PettanImager.stub(:load).with("abc\ndef\nghi").and_return(@imager)
580 @op2 = FactoryGirl.create :original_picture, :artist_id => @artist.id
581 @p2 = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op2.id, :license_id => @license.id, :revision => 0
582 newrpattr = {:original_picture_id => @op2.id, :picture_id => @p2.id, :license_id => @license.id, :artist_id => @artist.id, :artist_name => 'tester',
583 :credit => '{}', :settings => {:reverse => 1, :gif_convert => 1, :thumbnail => 0}.to_json.to_s}
584 @rp2 = FactoryGirl.build :resource_picture, newrpattr
585 @newattr = @op2.attributes
586 @newattr['resource_picture'] = @rp2.attributes
587 @newattr['resource_picture']['picture_data'] = "abc\ndef\nghi"
590 r = ProviderOriginalPicture.import_resource_pictures @provider.id, [@newattr]
595 r = ProviderOriginalPicture.import_resource_pictures @provider.id, [@newattr]
596 }.should change ResourcePicture, :count
600 context '原画id置換に失敗したとき' do
602 ProviderOriginalPicture.stub(:replace_original_picture).with(any_args).and_return(false)
604 it '結果に素材のカラム値を追加している' do
605 r = ProviderOriginalPicture.import_resource_pictures @provider.id, [@attr]
606 r.should_not be_empty
609 context '絵師id置換に失敗したとき' do
611 ProviderOriginalPicture.stub(:replace_original_picture).with(any_args).and_return(true)
612 ProviderOriginalPicture.stub(:replace_artist).with(any_args).and_return(false)
614 it '結果に素材のカラム値を追加している' do
615 r = ProviderOriginalPicture.import_resource_pictures @provider.id, [@attr]
616 r.should_not be_empty
619 context 'ライセンスid置換に失敗したとき' do
621 ProviderOriginalPicture.stub(:replace_original_picture).with(any_args).and_return(true)
622 ProviderOriginalPicture.stub(:replace_artist).with(any_args).and_return(true)
623 ProviderOriginalPicture.stub(:replace_license).with(any_args).and_return(false)
625 it '結果に素材のカラム値を追加している' do
626 r = ProviderOriginalPicture.import_resource_pictures @provider.id, [@attr]
627 r.should_not be_empty
630 context '画像ライブラリのロードに失敗したとき' do
632 ProviderOriginalPicture.stub(:replace_original_picture).with(any_args).and_return(true)
633 ProviderOriginalPicture.stub(:replace_artist).with(any_args).and_return(true)
634 ProviderOriginalPicture.stub(:replace_license).with(any_args).and_return(true)
635 PettanImager.stub(:load).with(any_args).and_return(false)
637 it '結果に素材のカラム値を追加している' do
638 r = ProviderOriginalPicture.import_resource_pictures @provider.id, [@attr]
639 r.should_not be_empty
642 context 'gif付き画像ファイルの作成・更新に失敗したとき' do
644 ProviderOriginalPicture.stub(:replace_original_picture).with(any_args).and_return(true)
645 ProviderOriginalPicture.stub(:replace_artist).with(any_args).and_return(true)
646 ProviderOriginalPicture.stub(:replace_license).with(any_args).and_return(true)
647 PettanImager.stub(:load).with(any_args).and_return(@imager)
648 ProviderOriginalPicture.stub(:modify_resource_picture).with(any_args).and_return(@rp)
649 ResourcePicture.any_instance.stub(:store_picture_with_gif).with(any_args).and_return(false)
651 it '結果に素材のカラム値を追加している' do
652 r = ProviderOriginalPicture.import_resource_pictures @provider.id, [@attr]
653 r.should_not be_empty
656 context '素材の保存に失敗したとき' do
658 ProviderOriginalPicture.stub(:replace_original_picture).with(any_args).and_return(true)
659 ProviderOriginalPicture.stub(:replace_artist).with(any_args).and_return(true)
660 ProviderOriginalPicture.stub(:replace_license).with(any_args).and_return(true)
661 PettanImager.stub(:load).with(any_args).and_return(@imager)
662 ProviderOriginalPicture.stub(:modify_resource_picture).with(any_args).and_return(@rp)
663 ResourcePicture.any_instance.stub(:store_picture_with_gif).with(any_args).and_return(true)
664 ResourcePicture.any_instance.stub(:save).with(any_args).and_return(false)
666 it '結果に素材のカラム値を追加している' do
667 r = ProviderOriginalPicture.import_resource_pictures @provider.id, [@attr]
668 r.should_not be_empty
673 describe 'インポートに於いて' do
675 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
676 @p = FactoryGirl.create :picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :revision => 0
677 @opattr = @op.attributes
678 @pattr = @p.attributes
679 @pattr['picture_data'] = "abc\ndef\nghi"
680 @rpattr = {:original_picture_id => @op.id, :picture_id => @p.id, :license_id => @license.id, :artist_id => @artist.id, :artist_name => 'tester',
681 :credit => '{}', :settings => {:reverse => 1, :gif_convert => 1}.to_json.to_s}
682 @opattr['resource_picture'] = @rpattr
683 @opattr['resource_picture']['picture_data'] = "abc\ndef\nghi"
685 context '事前チェックする' do
687 ProviderOriginalPicture.stub(:import_original_pictures).with(any_args).and_return([])
688 ProviderOriginalPicture.stub(:import_pictures).with(any_args).and_return([])
689 ProviderOriginalPicture.stub(:import_resource_pictures).with(any_args).and_return([])
691 it '自身に原画インポートを依頼している' do
692 ProviderOriginalPicture.should_receive(:import_original_pictures).with(any_args).exactly(1)
693 r = ProviderOriginalPicture.import @provider.id, [@opattr], [@pattr]
695 it '自身に実素材インポートを依頼している' do
696 ProviderOriginalPicture.should_receive(:import_pictures).with(any_args).exactly(1)
697 r = ProviderOriginalPicture.import @provider.id, [@opattr], [@pattr]
699 it '自身に素材インポートを依頼している' do
700 ProviderOriginalPicture.should_receive(:import_resource_pictures).with(any_args).exactly(1)
701 r = ProviderOriginalPicture.import @provider.id, [@opattr], [@pattr]
704 context 'つつがなく終わるとき' do
706 ProviderOriginalPicture.stub(:import_original_pictures).with(any_args).and_return([])
707 ProviderOriginalPicture.stub(:import_pictures).with(any_args).and_return([])
708 ProviderOriginalPicture.stub(:import_resource_pictures).with(any_args).and_return([])
710 it '各失敗したカラム値をHashで返す' do
711 r = ProviderOriginalPicture.import @provider.id, [@opattr], [@pattr]
712 r[:original_pictures].should be_empty
713 r[:pictures].should be_empty
714 r[:resource_pictures].should be_empty
718 context '原画インポートに失敗したとき' do
720 ProviderOriginalPicture.stub(:import_original_pictures).with(any_args).and_return([@opattr])
721 ProviderOriginalPicture.stub(:import_pictures).with(any_args).and_return([])
722 ProviderOriginalPicture.stub(:import_resource_pictures).with(any_args).and_return([])
724 it '失敗した原画のカラム値を配列でoriginal_picturesに追加している' do
725 r = ProviderOriginalPicture.import @provider.id, [@opattr], [@pattr]
726 r[:original_pictures].should_not be_empty
727 r[:pictures].should be_empty
728 r[:resource_pictures].should be_empty
731 context '実素材インポートに失敗したとき' do
733 ProviderOriginalPicture.stub(:import_original_pictures).with(any_args).and_return([])
734 ProviderOriginalPicture.stub(:import_pictures).with(any_args).and_return([@pattr])
735 ProviderOriginalPicture.stub(:import_resource_pictures).with(any_args).and_return([])
737 it '失敗した原画のカラム値を配列でpicturesに追加している' do
738 r = ProviderOriginalPicture.import @provider.id, [@opattr], [@pattr]
739 r[:original_pictures].should be_empty
740 r[:pictures].should_not be_empty
741 r[:resource_pictures].should be_empty
744 context '素材インポートに失敗したとき' do
746 ProviderOriginalPicture.stub(:import_original_pictures).with(any_args).and_return([])
747 ProviderOriginalPicture.stub(:import_pictures).with(any_args).and_return([])
748 ProviderOriginalPicture.stub(:import_resource_pictures).with(any_args).and_return([@rpattr])
750 it '失敗した原画のカラム値を配列でresource_picturesに追加している' do
751 r = ProviderOriginalPicture.import @provider.id, [@opattr], [@pattr]
752 r[:original_pictures].should be_empty
753 r[:pictures].should be_empty
754 r[:resource_pictures].should_not be_empty