From 4df5b125a80bc70bfc1a43845e13abc364006c91 Mon Sep 17 00:00:00 2001
From: Wojciech Nagrodzki <278594+wnagrodzki@users.noreply.github.com>
Date: Sun, 26 Aug 2018 10:51:36 +0200
Subject: [PATCH] Added LoggerTests

---
 Logger.xcodeproj/project.pbxproj |  4 +++
 UnitTests/LoggetTests.swift      | 55 ++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+)
 create mode 100644 UnitTests/LoggetTests.swift

diff --git a/Logger.xcodeproj/project.pbxproj b/Logger.xcodeproj/project.pbxproj
index 684a132..14a8da4 100644
--- a/Logger.xcodeproj/project.pbxproj
+++ b/Logger.xcodeproj/project.pbxproj
@@ -18,6 +18,7 @@
 		2EBF4B572122B598008E4117 /* DiskLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EBF4B542122B598008E4117 /* DiskLogger.swift */; };
 		2EBF4B582122B598008E4117 /* FileWriter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EBF4B552122B598008E4117 /* FileWriter.swift */; };
 		2EBF4B592122B598008E4117 /* Logrotate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EBF4B562122B598008E4117 /* Logrotate.swift */; };
+		2ED077D721329CA30058EEFC /* LoggetTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2ED077D621329CA30058EEFC /* LoggetTests.swift */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
@@ -58,6 +59,7 @@
 		2EBF4B542122B598008E4117 /* DiskLogger.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DiskLogger.swift; sourceTree = "<group>"; };
 		2EBF4B552122B598008E4117 /* FileWriter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileWriter.swift; sourceTree = "<group>"; };
 		2EBF4B562122B598008E4117 /* Logrotate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Logrotate.swift; sourceTree = "<group>"; };
+		2ED077D621329CA30058EEFC /* LoggetTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoggetTests.swift; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -83,6 +85,7 @@
 			isa = PBXGroup;
 			children = (
 				2E58D35C21316C3500BEF81A /* LogStringConvertibleTests.swift */,
+				2ED077D621329CA30058EEFC /* LoggetTests.swift */,
 				2E58D35E21316C3500BEF81A /* Info.plist */,
 			);
 			path = UnitTests;
@@ -231,6 +234,7 @@
 			buildActionMask = 2147483647;
 			files = (
 				2E58D35D21316C3500BEF81A /* LogStringConvertibleTests.swift in Sources */,
+				2ED077D721329CA30058EEFC /* LoggetTests.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
diff --git a/UnitTests/LoggetTests.swift b/UnitTests/LoggetTests.swift
new file mode 100644
index 0000000..a753ca7
--- /dev/null
+++ b/UnitTests/LoggetTests.swift
@@ -0,0 +1,55 @@
+//
+// MIT License
+//
+// Copyright (c) 2018 Wojciech Nagrodzki
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all
+// copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+// SOFTWARE.
+//
+
+import XCTest
+@testable import Logger
+
+class LoggetTests: XCTestCase {
+
+    func testLocation() {
+        let mock = LoggerMock()
+        mock.log("", level: .critical)
+        XCTAssertEqual(mock.location, "LoggetTests:32 testLocation()")
+    }
+    
+    func testLogLevelLogDescription() {
+        XCTAssertEqual(LogLevel.emergency.logDescription, "emerg")
+        XCTAssertEqual(LogLevel.alert.logDescription, "alert")
+        XCTAssertEqual(LogLevel.critical.logDescription, "crit")
+        XCTAssertEqual(LogLevel.error.logDescription, "err")
+        XCTAssertEqual(LogLevel.warning.logDescription, "warning")
+        XCTAssertEqual(LogLevel.notice.logDescription, "notice")
+        XCTAssertEqual(LogLevel.informational.logDescription, "info")
+        XCTAssertEqual(LogLevel.debug.logDescription, "debug")
+    }
+}
+
+private class LoggerMock: Logger {
+    
+    var location: String?
+    
+    func log(time: Date, level: LogLevel, location: String, message: @autoclosure () -> String) {
+        self.location = location
+    }
+}