# -*- 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