101 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| # Copyright 2015 Google Inc.
 | |
| #
 | |
| # Licensed under the Apache License, Version 2.0 (the "License");
 | |
| # you may not use this file except in compliance with the License.
 | |
| # You may obtain a copy of the License at
 | |
| #
 | |
| #      http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| # Unless required by applicable law or agreed to in writing, software
 | |
| # distributed under the License is distributed on an "AS IS" BASIS,
 | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
| # See the License for the specific language governing permissions and
 | |
| # limitations under the License.
 | |
| 
 | |
| require 'spec_helper'
 | |
| require 'google/apis'
 | |
| require 'google/apis/core/logging'
 | |
| 
 | |
| 
 | |
| RSpec.describe Google::Apis do
 | |
|   it 'should have a default logger' do
 | |
|     expect(Google::Apis.logger).to be_an_instance_of(Logger)
 | |
|   end
 | |
| 
 | |
|   context 'with service' do
 | |
|     let(:service) do
 | |
|       Class.new do
 | |
|         include Google::Apis::Core::Logging
 | |
|       end.new
 | |
|     end
 | |
| 
 | |
|     it 'should have a logger' do
 | |
|       expect(service.logger).to be_an_instance_of(Logger)
 | |
|     end
 | |
| 
 | |
|     it 'should use the default logger' do
 | |
|       expect(service.logger).to be Google::Apis.logger
 | |
|     end
 | |
| 
 | |
|     it 'should allow custom loggers' do
 | |
|       Google::Apis.logger = Logger.new(STDERR)
 | |
|       expect(service.logger).to be Google::Apis.logger
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   context 'with Rails' do
 | |
| 
 | |
|     before(:example) do
 | |
|       Google::Apis.logger = nil
 | |
|       Kernel.const_set('Rails', Module.new) unless defined?(::Rails)
 | |
|     end
 | |
| 
 | |
|     let(:logger) { Logger.new(STDERR) }
 | |
| 
 | |
|     let(:service) do
 | |
|       Class.new do
 | |
|         include Google::Apis::Core::Logging
 | |
|       end.new
 | |
|     end
 | |
| 
 | |
|     context 'with logger present' do
 | |
|       before(:example) do
 | |
|         allow(::Rails).to receive(:logger).and_return(logger)
 | |
|       end
 | |
| 
 | |
|       it 'should use the Rails logger' do
 | |
|         expect(service.logger).to be Rails.logger
 | |
|       end
 | |
|     end
 | |
| 
 | |
|     context 'with ENV bypass' do
 | |
|       before(:example) do
 | |
|         allow(::Rails).to receive(:logger).and_return(logger)
 | |
|         allow(::ENV).to receive(:fetch).and_return('false')
 | |
|       end
 | |
| 
 | |
|       it 'should use own logger' do
 | |
|         expect(service.logger).not_to be Rails.logger
 | |
|       end
 | |
| 
 | |
|       it 'should have a logger' do
 | |
|         expect(service.logger).to be_an_instance_of(Logger)
 | |
|       end
 | |
|     end
 | |
| 
 | |
|     context 'with logger not present' do
 | |
|       before(:example) do
 | |
|         allow(::Rails).to receive(:logger).and_return(nil)
 | |
|       end
 | |
| 
 | |
|       it 'should use own logger' do
 | |
|         expect(service.logger).not_to be Rails.logger
 | |
|       end
 | |
| 
 | |
|       it 'should have a logger' do
 | |
|         expect(service.logger).to be_an_instance_of(Logger)
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |