OSDN Git Service

repair test
[pettanr/pettanr.git] / spec / models / panel_picture_spec.rb
index 4deb967..a15713c 100644 (file)
@@ -1,9 +1,225 @@
 # -*- encoding: utf-8 -*-
 require 'spec_helper'
-
+#コマ絵
 describe PanelPicture do
+  before do
+    Factory :admin
+    @user = Factory( :user_yas)
+    @author = @user.author
+    @artist = Factory :artist_yas, :author_id => @author.id
+    @sp = Factory :system_picture
+    @lg = Factory :license_group
+    @license = Factory :license, :license_group_id => @lg.id, :system_picture_id => @sp.id
+    @op = Factory :original_picture, :artist_id => @artist.id, :license_id => @license.id
+    @rp = Factory :resource_picture, :artist_id => @artist.id, :license_id => @license.id, :original_picture_id => @op.id
+    @panel = Factory :panel, :author_id => @author.id
+  end
+  
   describe '検証に於いて' do
     before do
     end
+    it 'オーソドックスなデータなら通る' do
+      @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
+      @pp.save!
+      @pp.should be_valid
+    end
+    
+    context 'panel_idを検証するとき' do
+      before do
+        @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
+      end
+      it 'テストデータの確認' do
+        @pp.panel_id = @panel.id
+        @pp.should be_valid
+      end
+      it '数値でなければ失敗する' do
+        @pp.panel_id = 'a'
+        @pp.should_not be_valid
+      end
+    end
+    context 'resource_picture_idを検証するとき' do
+      before do
+        @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
+      end
+      it 'テストデータの確認' do
+        @pp.resource_picture_id = @rp.id
+        @pp.should be_valid
+      end
+      it 'nullなら失敗する' do
+        @pp.resource_picture_id = nil
+        @pp.should_not be_valid
+      end
+      it '数値でなければ失敗する' do
+        @pp.resource_picture_id = 'a'
+        @pp.should_not be_valid
+      end
+      it '存在するフキダシテンプレートでなければ失敗する' do
+        @pp.resource_picture_id = 0
+        @pp.should_not be_valid
+      end
+    end
+    context 'linkを検証するとき' do
+      before do
+        @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
+      end
+      it 'テストデータの確認' do
+        @pp.link = 'abcdefghi0abcdefghi0abcdefghi0abcdefghi0abcdefghi0'*4
+        @pp.should be_valid
+      end
+      it 'nullでも通る' do
+        @pp.link = ''
+        @pp.should be_valid
+      end
+      it '201文字以上なら失敗する' do
+        @pp.link = 'a'*201
+        @pp.should_not be_valid
+      end
+    end
+    context 'xを検証するとき' do
+      before do
+        @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
+      end
+      it 'テストデータの確認' do
+        @pp.x = '1'
+        @pp.should be_valid
+      end
+      it 'nullなら失敗する' do
+        @pp.x = nil
+        @pp.should_not be_valid
+      end
+      it '数値でなければ失敗する' do
+        @pp.x = 'a'
+        @pp.should_not be_valid
+      end
+      it '0なら通る' do
+        @pp.x = '0'
+        @pp.should be_valid
+      end
+      it '負でも通る' do
+        @pp.x = -1
+        @pp.should be_valid
+      end
+    end
+    context 'yを検証するとき' do
+      before do
+        @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
+      end
+      it 'テストデータの確認' do
+        @pp.y = '1'
+        @pp.should be_valid
+      end
+      it 'nullなら失敗する' do
+        @pp.y = nil
+        @pp.should_not be_valid
+      end
+      it '数値でなければ失敗する' do
+        @pp.y = 'a'
+        @pp.should_not be_valid
+      end
+      it '0なら通る' do
+        @pp.y = '0'
+        @pp.should be_valid
+      end
+      it '負でも通る' do
+        @pp.y = -1
+        @pp.should be_valid
+      end
+    end
+    context 'widthを検証するとき' do
+      before do
+        @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
+      end
+      it 'テストデータの確認' do
+        @pp.width = 1
+        @pp.should be_valid
+      end
+      it 'nullなら失敗する' do
+        @pp.width = nil
+        @pp.should_not be_valid
+      end
+      it '数値でなければ失敗する' do
+        @pp.width = 'a'
+        @pp.should_not be_valid
+      end
+      it '0なら失敗する' do
+        @pp.width = '0'
+        @pp.should_not be_valid
+      end
+      it '負でも通る' do
+        @pp.width = -1
+        @pp.should be_valid
+      end
+    end
+    context 'heightを検証するとき' do
+      before do
+        @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
+      end
+      it 'テストデータの確認' do
+        @pp.height = '1'
+        @pp.should be_valid
+      end
+      it 'nullなら失敗する' do
+        @pp.height = nil
+        @pp.should_not be_valid
+      end
+      it '数値でなければ失敗する' do
+        @pp.height = 'a'
+        @pp.should_not be_valid
+      end
+      it '0なら失敗する' do
+        @pp.height = '0'
+        @pp.should_not be_valid
+      end
+      it '負でも通る' do
+        @pp.height = -1
+        @pp.should be_valid
+      end
+    end
+    context 'zを検証するとき' do
+      before do
+        @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
+      end
+      it 'テストデータの確認' do
+        @pp.z = 1
+        @pp.should be_valid
+      end
+      it 'nullなら失敗する' do
+        @pp.z = nil
+        @pp.should_not be_valid
+      end
+      it '数値でなければ失敗する' do
+        @pp.z = 'a'
+        @pp.should_not be_valid
+      end
+      it '負なら失敗する' do
+        @pp.z = -1
+        @pp.should_not be_valid
+      end
+      it '負なら失敗する' do
+        @pp.z = 0
+        @pp.should_not be_valid
+      end
+    end
+    context 'tを検証するとき' do
+      before do
+        @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
+      end
+      it 'テストデータの確認' do
+        @pp.t = 0
+        @pp.should be_valid
+      end
+      it 'nullなら失敗する' do
+        @pp.t = nil
+        @pp.should_not be_valid
+      end
+      it '数値でなければ失敗する' do
+        @pp.t = 'a'
+        @pp.should_not be_valid
+      end
+      it '負なら失敗する' do
+        @pp.t = -1
+        @pp.should_not be_valid
+      end
+    end
   end
 end