OSDN Git Service

comic test ok
[pettanr/pettanr.git] / spec / models / comic_spec.rb
1 # -*- encoding: utf-8 -*-
2 require 'spec_helper'
3
4 describe Comic do
5   before do
6     Factory :admin
7     @user = Factory( :user_yas)
8     @author = Factory( :author_yas, :user_id => @user.id)
9     @artist = Factory :artist_yas, :author_id => @author.id
10     @comic = Comic.new
11   end
12   
13   describe '検証に於いて' do
14     before do
15       @comic = Comic.new
16     end
17     
18     context 'titleを検証するとき' do
19       it '100文字以上なら失敗する' do
20       end
21     end
22   end
23   
24   describe 'データ補充に於いて' do
25     before do
26       @comic = Comic.new
27     end
28     
29     context '初期値を補充するとき' do
30       it '空なら0が補充される' do
31         @comic.supply_default
32         @comic.editable.should == 0
33         @comic.visible.should == 0
34       end
35       it 'editableが空でないなら変化なし' do
36         @comic.editable = 1
37         {@comic.supply_default}.should_not change(@comic, :editable)
38       end
39       it 'visibleが空でないなら変化なし' do
40         @comic.visible = 1
41         {@comic.supply_default}.should_not change(@comic, :visible)
42       end
43     end
44   end
45   
46   describe '作者判定に於いて' do
47     before do
48     end
49     it '自作のコミックならyes' do
50       comic = Factory :normal_comic, :author_id => @author.id
51       comic.own?(@author).should == true
52     end
53     it '他人のコミックならno' do
54       comic = Factory :normal_comic, :author_id => @author.id - 1
55       comic.own?(@author).should == false
56     end
57     it '作家が不明ならno' do
58       comic = Factory :normal_comic, :author_id => @author.id
59       comic.own?(nil).should == false
60     end
61   end
62   describe '閲覧許可に於いて' do
63     before do
64     end
65     it '自作の公開コミックを見るときは許可する' do
66       Comic.any_instance.stub('own?').and_return(true)
67       comic = Factory :normal_comic, :author_id => @author.id
68       comic.vis(@author).should == true
69     end
70     it '自作のコミックは非公開でも許可する' do
71       Comic.any_instance.stub('own?').and_return(true)
72       comic = Factory :hidden_comic, :author_id => @author.id
73       comic.vis(@author).should == true
74     end
75     it '他人のコミックでも公開コミックなら許可する' do
76       Comic.any_instance.stub('own?').and_return(false)
77       comic = Factory :normal_comic, :author_id => @author.id - 1
78       comic.vis(@author).should == true
79     end
80     it '他人のコミックで非公開コミックなら許可しない' do
81       Comic.any_instance.stub('own?').and_return(false)
82       comic = Factory :hidden_comic, :author_id => @author.id - 1
83       comic.vis(@author).should == false
84     end
85   end
86   describe '保存検証に於いて' do
87     before do
88     end
89     context '同一作家のとき' do
90       it 'trueを返す' do
91       end
92     end
93   end
94 end