From a160e6f2e90be1aeecf0423a90f0dc988a2ececf Mon Sep 17 00:00:00 2001
From: Thu Trang Pham <thuutrangpham@gmail.com>
Date: Wed, 11 Feb 2015 07:25:13 -0500
Subject: [PATCH] Testing Geocoder.log

---
 lib/geocoder.rb          |  1 +
 lib/geocoder/logger.rb   | 14 +++++++-------
 test/unit/logger_test.rb | 35 +++++++++++++++++++++++++++++++++++
 3 files changed, 43 insertions(+), 7 deletions(-)
 create mode 100644 test/unit/logger_test.rb

diff --git a/lib/geocoder.rb b/lib/geocoder.rb
index 3dd4203c..8c4d2b8c 100644
--- a/lib/geocoder.rb
+++ b/lib/geocoder.rb
@@ -1,4 +1,5 @@
 require "geocoder/configuration"
+require "geocoder/logger"
 require "geocoder/query"
 require "geocoder/calculations"
 require "geocoder/exceptions"
diff --git a/lib/geocoder/logger.rb b/lib/geocoder/logger.rb
index 79120185..c39c5139 100644
--- a/lib/geocoder/logger.rb
+++ b/lib/geocoder/logger.rb
@@ -10,15 +10,15 @@ module Geocoder
     include Singleton
 
     SEVERITY = {
-      debug: Logger::Severity::DEBUG,
-      info: Logger::Severity::INFO,
-      warn: Logger::Severity::WARN,
-      error: Logger::Severity::ERROR,
-      fatal: Logger::Severity::FATAL
+      debug: ::Logger::DEBUG,
+      info: ::Logger::INFO,
+      warn: ::Logger::WARN,
+      error: ::Logger::ERROR,
+      fatal: ::Logger::FATAL
     }
 
     def log(level, message)
-      logger = config[:logger]
+      logger = Geocoder.config[:logger]
       return true unless logger && valid_level?(level)
 
       if logger == :default
@@ -44,7 +44,7 @@ module Geocoder
     end
 
     def valid_level?(level)
-      [:debug, :info, :warn, :error, :fatal].includes? level
+      [:debug, :info, :warn, :error, :fatal].include? level
     end
   end
 end
diff --git a/test/unit/logger_test.rb b/test/unit/logger_test.rb
new file mode 100644
index 00000000..166dc915
--- /dev/null
+++ b/test/unit/logger_test.rb
@@ -0,0 +1,35 @@
+# encoding: utf-8
+$: << File.join(File.dirname(__FILE__), "..")
+require 'test_helper'
+require 'logger'
+require 'tempfile'
+
+class LoggerTest < GeocoderTestCase
+
+  def setup
+    @tempfile = Tempfile.new("log")
+    @logger = Logger.new(@tempfile.path)
+    Geocoder.configure(logger: @logger)
+  end
+
+  def teardown
+    @logger.close
+    @tempfile.close
+  end
+
+  def test_nil_logger_does_not_log
+    Geocoder.configure(logger: nil)
+    assert_equal true, Geocoder.log(:warn, "should not log")
+  end
+
+  def test_set_logger_logs
+    Geocoder.log(:warn, "should log")
+    assert_equal "should log\n", @tempfile.read
+  end
+
+  def test_set_logger_does_not_log_severity_too_low
+    @logger.level = Logger::ERROR
+    assert_equal true, Geocoder.log(:info, "should not log")
+    assert_equal "", @tempfile.read
+  end
+end
-- 
GitLab