OSDN Git Service

t#29400:update artist, author:itr1
[pettanr/pettanr.git] / spec / models / resource_picture_spec.rb
index 559b2fa..c8d377d 100644 (file)
@@ -144,6 +144,23 @@ describe ResourcePicture do
         @rp.should_not be_valid\r
       end\r
     end\r
+    context 'md5を検証するとき' do\r
+      before do\r
+        @rp = FactoryGirl.build :picture\r
+      end\r
+      it 'テストデータの確認' do\r
+        @rp.md5 = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'\r
+        @rp.should be_valid\r
+      end\r
+      it 'nullなら失敗する' do\r
+        @rp.md5 = ''\r
+        @rp.should_not be_valid\r
+      end\r
+      it '32文字以上なら失敗する' do\r
+        @rp.md5 = 'a'*33\r
+        @rp.should_not be_valid\r
+      end\r
+    end\r
     context 'license_idを検証するとき' do\r
       it 'テストデータの確認' do\r
         @rp.license_id = @license.id\r
@@ -440,6 +457,7 @@ describe ResourcePicture do
       @rp.width.should eq 264\r
       @rp.height.should eq 265\r
       @rp.filesize.should eq 266\r
+      @rp.md5.should eq @op.md5\r
       @rp.artist_id.should eq @artist.id\r
     end\r
   end\r
@@ -682,7 +700,8 @@ describe ResourcePicture do
         ResourcePicture.stub(:png_to_gif).with(any_args).and_return(@gifmgk)\r
       end\r
       it '画像ファイルの作成・更新機能で画像を保存している' do\r
-        ResourcePicture.any_instance.should_receive(:store_picture).with(@mgk).exactly(1)\r
+        ResourcePicture.any_instance.stub(:filename).with(any_args).and_return('1.png')\r
+        ResourcePicture.any_instance.should_receive(:store_picture).with(@mgk, '1.png').exactly(1)\r
         res = @rp.store_picture_with_gif @mgk\r
       end\r
       it '自身にフォーマット変換対象かを問い合わせている' do\r
@@ -695,7 +714,8 @@ describe ResourcePicture do
       end\r
       it '画像ファイルの作成・更新機能でgif画像を保存している' do\r
         #二回目の保存はgif変換の結果を渡す。\r
-        ResourcePicture.any_instance.should_receive(:store_picture).with(@gifmgk).exactly(1)\r
+        ResourcePicture.any_instance.stub(:gifname).with(any_args).and_return('1.gif')\r
+        ResourcePicture.any_instance.should_receive(:store_picture).with(@gifmgk, '1.gif').exactly(1)\r
         res = @rp.store_picture_with_gif @mgk\r
       end\r
     end\r
@@ -764,13 +784,15 @@ describe ResourcePicture do
     end\r
     context 'gif画像の保存に失敗したとき' do\r
       before do\r
+        ResourcePicture.any_instance.stub(:filename).with(any_args).and_return('1.png')\r
+        ResourcePicture.any_instance.stub(:gifname).with(any_args).and_return('1.gif')\r
         @mgk = Mgk.new\r
-        ResourcePicture.any_instance.stub(:store_picture).with(@mgk).and_return(true)\r
+        ResourcePicture.any_instance.stub(:store_picture).with(@mgk, '1.png').and_return(true)\r
         ResourcePicture.any_instance.stub(:to_gif?).with(any_args).and_return(true)\r
         class GifMgk < Mgk ; end  #store_pictureは二回呼び出される。区別をつけるために\r
         @gifmgk = GifMgk.new      #パラメータを二種類用意する。\r
         ResourcePicture.stub(:png_to_gif).with(any_args).and_return(@gifmgk)\r
-        ResourcePicture.any_instance.stub(:store_picture).with(@gifmgk).and_return(false)\r
+        ResourcePicture.any_instance.stub(:store_picture).with(@gifmgk, '1.gif').and_return(false)\r
       end\r
       it 'Falseを返す' do\r
         res = @rp.store_picture_with_gif @mgk\r
@@ -797,19 +819,19 @@ describe ResourcePicture do
       end\r
       it 'サムネイル化が1回呼ばれる' do\r
         ResourcePicture.any_instance.should_receive(:thumbnail).with(any_args).exactly(1)\r
-        res = @rp.store_picture(Mgk.new)\r
+        res = @rp.store_picture(Mgk.new, '1.gif')\r
       end\r
       it '画像ファイルの保存が2回呼ばれる' do\r
         PictureIO.resource_picture_io.should_receive(:put).with(any_args).exactly(2)\r
-        res = @rp.store_picture(Mgk.new)\r
+        res = @rp.store_picture(Mgk.new, '1.gif')\r
       end\r
       it '画像ファイルのベースへのサムネイル保存が1回呼ばれる' do\r
-        PictureIO.resource_picture_io.should_receive(:put).with('tmbdata', @rp.filename).exactly(1)\r
-        res = @rp.store_picture(Mgk.new)\r
+        PictureIO.resource_picture_io.should_receive(:put).with('tmbdata', '1.gif').exactly(1)\r
+        res = @rp.store_picture(Mgk.new, '1.gif')\r
       end\r
       it '画像ファイルのfullへの保存が1回呼ばれる' do\r
-        PictureIO.resource_picture_io.should_receive(:put).with('data', @rp.filename, 'full').exactly(1)\r
-        res = @rp.store_picture(Mgk.new)\r
+        PictureIO.resource_picture_io.should_receive(:put).with('data', '1.gif', 'full').exactly(1)\r
+        res = @rp.store_picture(Mgk.new, '1.gif')\r
       end\r
     end\r
     context 'つつがなく終わるとき' do\r
@@ -817,19 +839,21 @@ describe ResourcePicture do
         #すべての処理を正常パターンで通過させ、保存機能をチェックする。\r
         PictureIO.resource_picture_io.stub(:put).with(any_args).and_return(true)\r
         ResourcePicture.any_instance.stub(:flag_thumbnail).with(any_args).and_return(1)\r
+        ResourcePicture.any_instance.stub(:thumbnail).with(any_args).and_return('tmbdata')\r
       end\r
       it 'Trueを返す' do\r
-        res = @rp.store_picture(Mgk.new)\r
+        res = @rp.store_picture(Mgk.new, '1.gif')\r
         res.should be_true\r
       end\r
     end\r
     context '例外ケース' do\r
       before do\r
         ResourcePicture.any_instance.stub(:flag_thumbnail).with(any_args).and_return(1)\r
+        ResourcePicture.any_instance.stub(:thumbnail).with(any_args).and_return('tmbdata')\r
         PictureIO.resource_picture_io.stub(:put).with(any_args).and_return(false)\r
       end\r
-      it 'Falseを返す' do\r
-        res = @rp.store_picture(Mgk.new)\r
+      it '画像の保存に失敗したならFalseを返す' do\r
+        res = @rp.store_picture(Mgk.new, '1.gif')\r
         res.should be_false\r
       end\r
     end\r