1 # -*- encoding: utf-8 -*-
5 describe StandardLicensesController do
7 FactoryGirl.create :admin
8 @user = FactoryGirl.create( :user_yas)
10 @artist = FactoryGirl.create :artist_yas, :author_id => @author.id
11 @sp = FactoryGirl.create :system_picture
12 @lg = FactoryGirl.create :license_group, :classname => 'OriginalPicture'
13 @license = FactoryGirl.create :license, :license_group_id => @lg.id, :system_picture_id => @sp.id
14 @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
17 describe '新規作成フォーム表示に於いて' do
21 context 'つつがなく終わるとき' do
23 @oplg = FactoryGirl.build :oplg, :original_picture_id => @op.id, :license_group_id => @lg.id
24 @attr = {:original_picture_id => @op.id, :original_picture_license_group => {:original_picture_id => @oplg.original_picture_id, :license_group_id => @oplg.license_group_id}}
25 @attrj = @attr.merge({:format => :js})
27 it 'ステータスコード200 OKを返す' do
29 response.should be_success
31 it '原画モデルに単体取得を問い合わせている' do
32 OriginalPicture.stub(:show).with(any_args()).and_return(@op)
33 OriginalPicture.should_receive(:show).with(any_args()).exactly(1)
\r
36 it '@original_pictureにデータを用意している' do
38 assigns(:original_picture).should eq @op
40 it '@original_picture_license_groupに新規データを用意している' do
42 assigns(:original_picture_license_group).should be_a_new(OriginalPictureLicenseGroup)
44 it 'ライセンスグループモデルに単体取得を問い合わせている' do
45 LicenseGroup.stub(:show).with(any_args()).and_return(@lg)
46 LicenseGroup.should_receive(:show).with(any_args()).exactly(1)
\r
49 it '@license_groupにデータを用意している' do
51 assigns(:license_group).should eq @lg
53 it '@standard_licenseにライセンス選択新規データを用意している' do
55 assigns(:standard_license).should be_a_new(StandardLicense)
57 it 'ライセンス選択にデフォルト値補充を依頼している' do
58 StandardLicense.any_instance.should_receive(:supply_default).exactly(1)
\r
62 it 'ページテンプレートnewを描画する' do
64 response.should render_template("new")
68 it '部分テンプレートnew.jsを描画する' do
70 response.should render_template("new")
74 context '作家権限がないとき' do
77 @oplg = FactoryGirl.build :oplg, :original_picture_id => @op.id, :license_group_id => @lg.id
78 @attr = {:original_picture_id => @op.id, :original_picture_license_group => {:original_picture_id => @oplg.original_picture_id, :license_group_id => @oplg.license_group_id}}
79 @attrj = @attr.merge({:format => :js})
82 it 'ステータスコード302 Foundを返す' do
84 response.status.should eq 302
88 response.body.should redirect_to '/users/sign_in'
92 it 'ステータスコード401 Unauthorizedを返す' do
94 response.status.should eq 401
96 it '応答メッセージにUnauthorizedを返す' do
98 response.message.should match(/Unauthorized/)
102 context '作家が絵師でないとき' do
104 @oplg = FactoryGirl.build :oplg, :original_picture_id => @op.id, :license_group_id => @lg.id
105 @attr = {:original_picture_id => @op.id, :original_picture_license_group => {:original_picture_id => @oplg.original_picture_id, :license_group_id => @oplg.license_group_id}}
106 @attrj = @attr.merge({:format => :js})
107 Author.any_instance.stub(:artist?).and_return(false)
110 it 'ステータスコード302 Foundを返す' do
112 response.status.should eq 302
116 response.should redirect_to new_artist_path
120 it 'ステータスコード200 Okを返す' do
122 response.status.should eq 200
124 it '絵師登録部分テンプレートartists/new.jsを描画する' do
126 response.should render_template("artists/new")
132 describe '新規作成に於いて' do
136 context '事前チェックしておく' do
138 StandardLicense.any_instance.stub(:valid?).with(any_args()).and_return(true)
139 @oplg = FactoryGirl.build :oplg, :original_picture_id => @op.id, :license_group_id => @lg.id
140 @attr = {:original_picture_id => @op.id, :original_picture_license_group => {:original_picture_id => @oplg.original_picture_id, :license_group_id => @oplg.license_group_id},
141 :standard_license => {:license_id => @license.id, :artist_name => @artist.name}
143 @attrj = @attr.merge({:format => :js})
145 it '原画モデルに単体取得を問い合わせている' do
146 OriginalPicture.stub(:show).with(any_args()).and_return(@op)
147 OriginalPicture.should_receive(:show).exactly(1)
\r
150 it '@original_pictureにデータを用意している' do
152 assigns(:original_picture).should eq @op
154 it '@original_picture_license_groupにデータを用意している' do
156 assigns(:original_picture_license_group).should be_a_new OriginalPictureLicenseGroup
158 it 'ライセンスグループモデルに単体取得を問い合わせている' do
159 LicenseGroup.stub(:show).with(any_args()).and_return(@lg)
160 LicenseGroup.should_receive(:show).exactly(1)
\r
163 it '@license_groupにデータを用意している' do
165 assigns(:license_group).should eq @lg
167 it '@standard_licenseにデータを用意している' do
169 assigns(:standard_license).should be_a_new StandardLicense
171 it '@licenseにデータを用意している' do
173 assigns(:license).should eq @license
175 it '@creditにデータを用意している' do
177 assigns(:credit).should eq nil
180 StandardLicense.any_instance.stub(:valid?).with(any_args()).and_return(true)
181 StandardLicense.any_instance.should_receive(:valid?).exactly(1)
185 context 'つつがなく終わるとき' do
187 @oplg = FactoryGirl.build :oplg, :original_picture_id => @op.id, :license_group_id => @lg.id
188 @attr = {:original_picture_id => @op.id, :original_picture_license_group => {:original_picture_id => @oplg.original_picture_id, :license_group_id => @oplg.license_group_id},
189 :standard_license => {:license_id => @license.id, :artist_name => @artist.name}
191 @attrj = @attr.merge({:format => :js})
195 assigns(:standard_license).valid?.should eq true
200 }.should_not change StandardLicense, :count
203 it 'ステータスコード200 OKを返す' do
205 response.should be_success
207 it 'ライセンスクラスの新規作成テンプレートnewを描画する' do
209 response.should render_template("resource_pictures/new")
213 it 'ステータスコード200 OKを返す' do
215 response.should be_success
217 it 'ライセンスクラスの新規作成部分テンプレートnew.jsを描画する' do
219 response.should render_template("resource_pictures/new")
223 context '作家権限がないとき' do
226 @oplg = FactoryGirl.build :oplg, :original_picture_id => @op.id, :license_group_id => @lg.id
227 @attr = {:original_picture_id => @op.id, :original_picture_license_group => {:original_picture_id => @oplg.original_picture_id, :license_group_id => @oplg.license_group_id},
228 :standard_license => {:license_id => @license.id, :artist_name => @artist.name}
230 @attrj = @attr.merge({:format => :js})
233 it 'ステータスコード302 Foundを返す' do
235 response.status.should eq 302
237 it 'サインインページへ遷移する' do
239 response.body.should redirect_to '/users/sign_in'
243 it 'ステータスコード401 Unauthorizedを返す' do
245 response.status.should eq 401
247 it '応答メッセージにUnauthorizedを返す' do
249 response.message.should match(/Unauthorized/)
253 context '作家が絵師でないとき' do
255 Author.any_instance.stub(:artist?).and_return(false)
256 @oplg = FactoryGirl.build :oplg, :original_picture_id => @op.id, :license_group_id => @lg.id
257 @attr = {:original_picture_id => @op.id, :original_picture_license_group => {:original_picture_id => @oplg.original_picture_id, :license_group_id => @oplg.license_group_id},
258 :standard_license => {:license_id => @license.id, :artist_name => @artist.name}
260 @attrj = @attr.merge({:format => :js})
263 it 'ステータスコード302 Foundを返す' do
265 response.status.should eq 302
269 response.should redirect_to new_artist_path
273 it 'ステータスコード200 OKを返す' do
275 response.status.should eq 200
279 response.should render_template("artists/new")
283 context '検証、保存に失敗した' do
285 StandardLicense.any_instance.stub(:valid?).and_return(false)
286 @oplg = FactoryGirl.build :oplg, :original_picture_id => @op.id, :license_group_id => @lg.id
287 @attr = {:original_picture_id => @op.id, :original_picture_license_group => {:original_picture_id => @oplg.original_picture_id, :license_group_id => @oplg.license_group_id},
288 :standard_license => {:license_id => @license.id, :artist_name => @artist.name}
290 @attrj = @attr.merge({:format => :js})
292 it "未保存の原画ライセンスグループを保持している" do
294 assigns(:standard_license).should be_a_new(StandardLicense)
297 it 'ステータスコード200 OKを返す' do
299 response.status.should eq 200
303 response.should render_template("new")
307 it 'ステータスコード200 OKを返す' do
309 response.status.should eq 200
313 response.should render_template("new")