OSDN Git Service

merge v04
[pettanr/pettanr.git] / spec / models / panel_picture_spec.rb
1 # -*- encoding: utf-8 -*-
2 require 'spec_helper'
3 #コマ絵
4 describe PanelPicture do
5   before do
6     Factory :admin
7     @user = Factory( :user_yas)
8     @author = @user.author
9     @artist = Factory :artist_yas, :author_id => @author.id
10     @sp = Factory :system_picture
11     @lg = Factory :license_group
12     @license = Factory :license, :license_group_id => @lg.id, :system_picture_id => @sp.id
13     @op = Factory :original_picture, :artist_id => @artist.id
14     @p = Factory :picture, :original_picture_id => @op.id, :license_id => @license.id, :artist_id => @artist.id
15     @rp = Factory :resource_picture, :artist_id => @artist.id, :license_id => @license.id, :original_picture_id => @op.id, :picture_id => @p.id
16     @panel = Factory :panel, :author_id => @author.id
17   end
18   
19   describe '検証に於いて' do
20     before do
21     end
22     it 'オーソドックスなデータなら通る' do
23       @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
24       @pp.save!
25       @pp.should be_valid
26     end
27     
28     context 'panel_idを検証するとき' do
29       before do
30         @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
31       end
32       #ネストの保存はnilを許可しなければならないので数値チェックだけ
33       it 'テストデータの確認' do
34         @pp.panel_id = @panel.id
35         @pp.should be_valid
36       end
37       it '数値でなければ失敗する' do
38         @pp.panel_id = 'a'
39         @pp.should_not be_valid
40       end
41     end
42     context 'linkを検証するとき' do
43       before do
44         @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
45       end
46       it 'テストデータの確認' do
47         @pp.link = 'abcdefghi0abcdefghi0abcdefghi0abcdefghi0abcdefghi0'*4
48         @pp.should be_valid
49       end
50       it 'nullでも通る' do
51         @pp.link = ''
52         @pp.should be_valid
53       end
54       it '201文字以上なら失敗する' do
55         @pp.link = 'a'*201
56         @pp.should_not be_valid
57       end
58     end
59     context 'xを検証するとき' do
60       before do
61         @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
62       end
63       it 'テストデータの確認' do
64         @pp.x = '1'
65         @pp.should be_valid
66       end
67       it 'nullなら失敗する' do
68         @pp.x = nil
69         @pp.should_not be_valid
70       end
71       it '数値でなければ失敗する' do
72         @pp.x = 'a'
73         @pp.should_not be_valid
74       end
75       it '0なら通る' do
76         @pp.x = '0'
77         @pp.should be_valid
78       end
79       it '負でも通る' do
80         @pp.x = -1
81         @pp.should be_valid
82       end
83     end
84     context 'yを検証するとき' do
85       before do
86         @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
87       end
88       it 'テストデータの確認' do
89         @pp.y = '1'
90         @pp.should be_valid
91       end
92       it 'nullなら失敗する' do
93         @pp.y = nil
94         @pp.should_not be_valid
95       end
96       it '数値でなければ失敗する' do
97         @pp.y = 'a'
98         @pp.should_not be_valid
99       end
100       it '0なら通る' do
101         @pp.y = '0'
102         @pp.should be_valid
103       end
104       it '負でも通る' do
105         @pp.y = -1
106         @pp.should be_valid
107       end
108     end
109     context 'widthを検証するとき' do
110       before do
111         @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
112       end
113       it 'テストデータの確認' do
114         @pp.width = 1
115         @pp.should be_valid
116       end
117       it 'nullなら失敗する' do
118         @pp.width = nil
119         @pp.should_not be_valid
120       end
121       it '数値でなければ失敗する' do
122         @pp.width = 'a'
123         @pp.should_not be_valid
124       end
125       it '0なら失敗する' do
126         @pp.width = '0'
127         @pp.should_not be_valid
128       end
129       it '負でも通る' do
130         @pp.width = -1
131         @pp.should be_valid
132       end
133     end
134     context 'heightを検証するとき' do
135       before do
136         @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
137       end
138       it 'テストデータの確認' do
139         @pp.height = '1'
140         @pp.should be_valid
141       end
142       it 'nullなら失敗する' do
143         @pp.height = nil
144         @pp.should_not be_valid
145       end
146       it '数値でなければ失敗する' do
147         @pp.height = 'a'
148         @pp.should_not be_valid
149       end
150       it '0なら失敗する' do
151         @pp.height = '0'
152         @pp.should_not be_valid
153       end
154       it '負でも通る' do
155         @pp.height = -1
156         @pp.should be_valid
157       end
158     end
159     context 'zを検証するとき' do
160       before do
161         @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
162       end
163       it 'テストデータの確認' do
164         @pp.z = 1
165         @pp.should be_valid
166       end
167       it 'nullなら失敗する' do
168         @pp.z = nil
169         @pp.should_not be_valid
170       end
171       it '数値でなければ失敗する' do
172         @pp.z = 'a'
173         @pp.should_not be_valid
174       end
175       it '負なら失敗する' do
176         @pp.z = -1
177         @pp.should_not be_valid
178       end
179       it '負なら失敗する' do
180         @pp.z = 0
181         @pp.should_not be_valid
182       end
183     end
184     context 'tを検証するとき' do
185       before do
186         @pp = Factory.build :panel_picture, :panel_id => @panel.id, :resource_picture_id => @rp.id
187       end
188       it 'テストデータの確認' do
189         @pp.t = 0
190         @pp.should be_valid
191       end
192       it 'nullなら失敗する' do
193         @pp.t = nil
194         @pp.should_not be_valid
195       end
196       it '数値でなければ失敗する' do
197         @pp.t = 'a'
198         @pp.should_not be_valid
199       end
200       it '負なら失敗する' do
201         @pp.t = -1
202         @pp.should_not be_valid
203       end
204     end
205   end
206 end