adds some specs for storage class
authorVolker Zöpfel <volker@zoepfel.de>
Mon, 18 Nov 2013 10:39:58 +0000 (11:39 +0100)
committerVolker Zöpfel <volker@zoepfel.de>
Mon, 18 Nov 2013 10:39:58 +0000 (11:39 +0100)
spec/google/api_client/auth/storage_spec.rb

index c6d3c3ef3b1abf6ba17914a769fe7a9c80140a65..b61057df3e7507c62d709890376a9c800a45d07b 100644 (file)
@@ -7,10 +7,48 @@ describe Google::APIClient::Storage do
   let(:root_path) { File.expand_path(File.join(__FILE__, '..', '..', '..')) }
   let(:json_file) { File.expand_path(File.join(root_path, 'fixtures', 'files', 'auth_stored_credentials.json')) }
 
+  let(:store) { double }
+  let(:client_stub) { double }
+  subject { Google::APIClient::Storage.new(store) }
+
   it 'should initialize'
 
   describe 'authorize' do
-    it 'should authorize'
+    it 'should authorize' do
+      subject.should respond_to(:authorization)
+      subject.store.should == store
+    end
+  end
+
+  describe 'authorize' do
+    describe 'with credentials' do
+
+      it 'should initialize a new OAuth Client' do
+        subject.should_receive(:load_credentials).and_return({:first => 'a dummy'})
+        client_stub.stub(:issued_at=)
+        client_stub.stub(:expired?).and_return(false)
+        Signet::OAuth2::Client.should_receive(:new).and_return(client_stub)
+        subject.should_not_receive(:refresh_authorization)
+        subject.authorize
+      end
+
+      it 'should refresh authorization' do
+        subject.should_receive(:load_credentials).and_return({:first => 'a dummy'})
+        client_stub.stub(:issued_at=)
+        client_stub.stub(:expired?).and_return(true)
+        Signet::OAuth2::Client.should_receive(:new).and_return(client_stub)
+        subject.should_receive(:refresh_authorization)
+        subject.authorize
+      end
+
+    end
+    describe 'without credentials' do
+
+      it 'should return false' do
+        subject.should_receive(:load_credentials).and_return({})
+        subject.authorize.should be_false
+      end
+    end
   end
 
 
@@ -26,8 +64,13 @@ describe Google::APIClient::Storage do
 
   describe 'refresh_authorization' do
 
-    it 'should call refresh and write credentials'
-
+    it 'should call refresh and write credentials' do
+      subject.should_receive(:write_credentials)
+      authorization_stub = double
+      subject.stub(:authorization).and_return(authorization_stub)
+      authorization_stub.should_receive(:refresh!).and_return(true)
+      subject.refresh_authorization
+    end
   end
 
   describe 'load_credentials' do