OSDN Git Service

t#30322:create provider license import func
[pettanr/pettanr.git] / spec / models / demander_spec.rb
index da6c9ce..525e717 100644 (file)
@@ -497,4 +497,51 @@ describe Demander do
       end
     end
   end
+  
+  describe 'ライセンスエクスポートに於いて' do
+    before do
+      @ds = FactoryGirl.create :demander_status, :requested_at => Time.now, :approved_at => Time.now, :rejected_at => Time.now, :receive_hour1 => 0, :receive_hour2 => 0
+      @demander = FactoryGirl.create :demander, :demander_status_id => @ds.id
+    end
+    context '事前チェックする' do
+      before do
+        Demander.any_instance.stub(:status).and_return(3)
+      end
+      it 'ライセンスモデルにエクスポートを依頼している' do
+        License.stub(:export).with(nil).and_return([@license])
+        License.should_receive(:export).with(nil).exactly(1)
+        r = @demander.licenses_export
+      end
+    end
+    context 'つつがなく終わるとき' do
+      before do
+        Demander.any_instance.stub(:status).and_return(3)
+      end
+      it 'ライセンスリストを返す' do
+        License.stub(:export).with(Time.parse('2011/10/10')).and_return([@license])
+        r = @demander.licenses_export Time.parse('2011/10/10')
+        r.should eq [@license]
+      end
+    end
+    context '日時指定しないとき' do
+      before do
+        Demander.any_instance.stub(:status).and_return(3)
+      end
+      it 'パラメータなしでリストを取得する' do
+        License.stub(:export).with(nil).and_return([@license])
+        License.should_receive(:export).with(nil).exactly(1)
+        r = @demander.licenses_export nil
+      end
+    end
+    #例外ケース
+    context '状態が貸与中でないとき' do
+      it '例外403 ActiveRecord::Forbiddenを発生させる' do
+        Demander.any_instance.stub(:status).and_return(2)
+        lambda{
+          r = @demander.licenses_export
+        }.should raise_error(ActiveRecord::Forbidden)
+      end
+    end
+  end
+  
 end