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
|