1 # -*- encoding: utf-8 -*-
5 describe ProviderLicense 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 @provider_status = FactoryGirl.create :provider_status
14 @provider = FactoryGirl.create :provider, :provider_status_id => @provider_status.id
18 @pl = FactoryGirl.build :provider_license, :provider_id => @provider.id, :providers_license_id => 2, :demanders_license_id => @license.id
21 context 'オーソドックスなデータのとき' do
30 context 'provider_idを検証するとき' do
33 @pl.should_not be_valid
37 @pl.should_not be_valid
39 it '存在する貸手でなければ失敗する' do
41 @pl.should_not be_valid
44 context 'providers_license_idを検証するとき' do
46 @pl.providers_license_id = nil
47 @pl.should_not be_valid
50 @pl.providers_license_id = 'a'
51 @pl.should_not be_valid
54 context 'demanders_license_idを検証するとき' do
56 @pl.demanders_license_id = nil
57 @pl.should_not be_valid
60 @pl.demanders_license_id = 'a'
61 @pl.should_not be_valid
66 describe '対照表取得に於いて' do
68 @pl = FactoryGirl.create :provider_license, :provider_id => @provider.id, :providers_license_id => 2, :demanders_license_id => @license.id
71 r = ProviderLicense.exist_license @provider.id, 2
75 r = ProviderLicense.exist_license @provider.id, 1
77 r = ProviderLicense.exist_license 0, 2
82 describe 'インポートに於いて' do
84 @license2 = FactoryGirl.create :license, :license_group_id => @lg.id, :system_picture_id => @sp.id, :name => 'license2', :url => 'http://licen.se/2'
87 it '対照表取得を問い合わせている' do
88 ProviderLicense.stub(:exist_license).with(any_args).and_return(true)
89 ProviderLicense.should_receive(:exist_license).with(any_args).exactly(1)
90 r = ProviderLicense.import @provider.id, [@license.attributes]
92 it 'ライセンスモデルに管理名取得を依頼している' do
93 License.stub(:find_by_name).with(any_args).and_return(@license)
94 License.should_receive(:find_by_name).with(any_args).exactly(1)
95 r = ProviderLicense.import @provider.id, [@license.attributes]
97 it '対照表オブジェクトを保存している' do
98 ProviderLicense.any_instance.stub(:save).with(any_args).and_return(true)
99 ProviderLicense.any_instance.should_receive(:save).with(any_args).exactly(1)
100 r = ProviderLicense.import @provider.id, [@license.attributes]
103 context 'つつがなく終わるとき' do
105 r = ProviderLicense.import @provider.id, [@license.attributes]
110 r = ProviderLicense.import @provider.id, [@license.attributes]
111 }.should change ProviderLicense, :count
114 context '複数インポートのとき' do
116 r = ProviderLicense.import @provider.id, [@license.attributes, @license2.attributes]
121 r = ProviderLicense.import @provider.id, [@license.attributes, @license2.attributes]
122 }.should change(ProviderLicense, :count).by(2)
126 context '対照表オブジェクトの保存に失敗したとき' do
128 ProviderLicense.any_instance.stub(:save).with(any_args).and_return(false)
130 it '結果に貸手側ライセンスのカラム値を追加している' do
131 r = ProviderLicense.import @provider.id, [@license.attributes]
132 r.should_not be_empty
135 context 'ライセンスの管理名取得に失敗したとき' do
137 License.stub(:find_by_name).with(any_args).and_return(nil)
139 it '結果に貸手側ライセンスのカラム値を追加している' do
140 r = ProviderLicense.import @provider.id, [@license.attributes]
141 r.should_not be_empty