OSDN Git Service

t#32046:
[pettanr/pettanr.git] / spec / controllers / provider_sources_controller_spec.rb
1 # -*- encoding: utf-8 -*-
2 require 'spec_helper'
3 #貸手文献
4
5 describe ProviderSourcesController do
6   before do
7     @admin = FactoryGirl.create :admin
8     @sp = FactoryGirl.create :system_picture
9     @lg = FactoryGirl.create :license_group
10     @license = FactoryGirl.create :license, :license_group_id => @lg.id, :system_picture_id => @sp.id
11     @user = FactoryGirl.create :user_yas
12     @author = @user.author    #ユーザ作成時に連動して作成される
13   end
14   
15   describe '一覧表示に於いて' do
16     before do
17       sign_in @admin
18     end
19     context '事前チェックする' do
20     end
21     context 'つつがなく終わるとき' do
22       it 'ステータスコード200 OKを返す' do
23         get :index
24         response.should be_success 
25       end
26       it '@urlsにリストを取得している' do
27         get :index
28         assigns(:urls).should eq MagicNumber['provider_sources']
29       end
30       context 'html形式' do
31         it 'indexテンプレートを描画する' do
32           get :index
33           response.should render_template("index")
34         end
35       end
36       context 'json形式' do
37       end
38     end
39     context '管理者権限がないとき' do
40       before do
41         sign_out @admin
42       end
43       context 'html形式' do
44         it 'ステータスコード302 Foundを返す' do
45           get :index
46           response.status.should eq 302
47         end
48         it 'サインインページへ遷移する' do
49           get :index
50           response.should redirect_to '/admins/sign_in'
51         end
52       end
53       context 'json形式' do
54       end
55     end
56   end
57   
58   describe 'インポートに於いて' do
59     before do
60       sign_in @admin
61       @ps = MagicNumber['provider_sources']
62       @results = @ps.map {|u| {u => {'validations' => []}}}
63       Provider.stub(:import).with(@ps).and_return @results
64     end
65     context '事前チェックする' do
66       it '貸手モデルに文献からのインポートを依頼している' do
67         Provider.should_receive(:import).with(@ps).exactly(1)
68         post :import
69       end
70     end
71     context 'つつがなく終わるとき' do
72       it 'ステータスコード200 OKを返す' do
73         post :import
74         response.should be_success 
75       end
76       it '@resultsにインポート結果を取得している' do
77         post :import
78         assigns(:results).should eq @results
79       end
80       context 'html形式' do
81         it 'importテンプレートを描画する' do
82           post :import
83           response.should render_template("import")
84         end
85       end
86       context 'json形式' do
87       end
88     end
89     context '管理者権限がないとき' do
90       before do
91         sign_out @admin
92       end
93       context 'html形式' do
94         it 'ステータスコード302 Foundを返す' do
95           post :import
96           response.status.should eq 302
97         end
98         it 'サインインページへ遷移する' do
99           post :import
100           response.should redirect_to '/admins/sign_in'
101         end
102       end
103       context 'json形式' do
104       end
105     end
106   end
107   
108
109 end