aboutsummaryrefslogtreecommitdiffstats
path: root/certServiceK8sExternalProvider/src/leveledlogger/logger_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'certServiceK8sExternalProvider/src/leveledlogger/logger_test.go')
-rw-r--r--certServiceK8sExternalProvider/src/leveledlogger/logger_test.go87
1 files changed, 87 insertions, 0 deletions
diff --git a/certServiceK8sExternalProvider/src/leveledlogger/logger_test.go b/certServiceK8sExternalProvider/src/leveledlogger/logger_test.go
new file mode 100644
index 00000000..84aa5907
--- /dev/null
+++ b/certServiceK8sExternalProvider/src/leveledlogger/logger_test.go
@@ -0,0 +1,87 @@
+/*
+ * ============LICENSE_START=======================================================
+ * oom-certservice-k8s-external-provider
+ * ================================================================================
+ * Copyright (C) 2020 Nokia. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package leveledlogger
+
+import (
+ "bytes"
+ "fmt"
+ "log"
+ "os"
+ "testing"
+)
+
+func TestLoggerOnWarningLevel(t *testing.T) {
+ const resultLogName = "testdata/test_result_warn.log"
+ const expectedLogName = "testdata/test_expected_warn.log"
+
+ SetConfigFileName("testdata/test_logger_config_warn.json")
+ logger := GetLoggerWithName("loggername")
+
+ logOnAllLevels(logger)
+
+ resultLogBytes := readFile(resultLogName)
+ expectedLogBytes := readFile(expectedLogName)
+
+ assertLogEquals(t, resultLogBytes, expectedLogBytes, resultLogName)
+}
+
+func TestLoggerOnDebugLevel(t *testing.T) {
+ const resultLogName = "testdata/test_result_debug.log"
+ const expectedLogName = "testdata/test_expected_debug.log"
+
+ SetConfigFileName("testdata/test_logger_config_debug.json")
+ logger := GetLoggerWithName("loggername")
+
+ logOnAllLevels(logger)
+
+ resultLogBytes := readFile(resultLogName)
+ expectedLogBytes := readFile(expectedLogName)
+
+ assertLogEquals(t, resultLogBytes, expectedLogBytes, resultLogName)
+}
+
+func logOnAllLevels(logger Logger) {
+ logger.Debug("this is a debug message")
+ logger.Info("this is an info message")
+ logger.Warning("this is a warning message", "key1", "value1")
+ logger.Error(fmt.Errorf("this is an error message"), "err msg")
+}
+
+func assertLogEquals(t *testing.T, resultLogBytes []byte, expectedLogBytes []byte, resultLogName string) {
+ if areEqual(resultLogBytes, expectedLogBytes) {
+ removeTemporaryFile(resultLogName)
+ } else {
+ t.Fatal("Logs are different than expected. Please check: " + resultLogName)
+ }
+}
+
+func areEqual(slice1 []byte, slice2 []byte) bool {
+ return bytes.Compare(slice1, slice2) == 0
+}
+
+func removeTemporaryFile(fileName string) {
+ if _, err := os.Stat(fileName); err == nil {
+ e := os.Remove(fileName)
+ if e != nil {
+ log.Fatal(e)
+ }
+ }
+}