| 
									
										
										
										
											2015-04-17 00:28:38 +00:00
										 |  |  | # 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' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-14 19:54:58 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-17 00:28:38 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2016-04-14 19:54:58 +00:00
										 |  |  |   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 | 
					
						
							| 
									
										
										
										
											2015-04-17 00:28:38 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-14 19:54:58 +00:00
										 |  |  |       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 | 
					
						
							| 
									
										
										
										
											2015-04-17 00:28:38 +00:00
										 |  |  |   end | 
					
						
							|  |  |  | end |