blob: d24274cc15b2a102ad6687b4ae980e4fa5cf5b51 [file] [log] [blame]
// -
// ========================LICENSE_START=================================
// Copyright (C) 2024: Deutsche Telecom
//
// 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 log_test
import (
"testing"
"bytes"
"github.com/sirupsen/logrus"
"policy-opa-pdp/pkg/log"
)
func TestSetOutput_Success(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.InfoLevel)
log.Info("Testing SetOutput")
if !bytes.Contains(buf.Bytes(), []byte("Testing SetOutput")) {
t.Errorf("Expected message to be logged")
}
}
func TestInit_Success(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.InitLogger("/tmp/logfile.log", 10, 5, "debug")
log.Info("Logger initialized")
if !bytes.Contains(buf.Bytes(), []byte("Logger initialized")) {
t.Errorf("Expected message to be logged after initialization")
}
}
func TestInitLogger_Success(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.InitLogger("/tmp/logfile.log", 10, 5, "info")
log.Info("Logger Initialized Test")
if !bytes.Contains(buf.Bytes(), []byte("Logger Initialized Test")) {
t.Errorf("Expected message to be logged")
}
}
func TestParseLevel_Success(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
level, err := logrus.ParseLevel("info")
if err != nil {
t.Fatalf("Failed to parse log level: %v", err)
}
log.SetLevel(level)
log.Info("Info level set")
if !bytes.Contains(buf.Bytes(), []byte("Info level set")) {
t.Errorf("Expected info level to be set")
}
}
func TestSetLevel_Success(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.DebugLevel)
log.Debug("This is a debug message")
if !bytes.Contains(buf.Bytes(), []byte("This is a debug message")) {
t.Errorf("Expected debug message to be logged")
}
}
func TestError_Success(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.ErrorLevel)
log.Error("This is an error message")
if !bytes.Contains(buf.Bytes(), []byte("This is an error message")) {
t.Errorf("Expected error message to be logged")
}
}
func TestInfo_Success(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.InfoLevel)
log.Info("This is an info message")
if !bytes.Contains(buf.Bytes(), []byte("This is an info message")) {
t.Errorf("Expected info message to be logged")
}
}
func TestDebug_Success(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.DebugLevel)
log.Debug("This is a debug message")
if !bytes.Contains(buf.Bytes(), []byte("This is a debug message")) {
t.Errorf("Expected debug message to be logged")
}
}
func TestWarn_Success(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.WarnLevel)
log.Warn("This is a warning message")
if !bytes.Contains(buf.Bytes(), []byte("This is a warning message")) {
t.Errorf("Expected warning message to be logged")
}
}
func TestPanic_Success(t *testing.T) {
defer func() {
if r := recover(); r == nil {
t.Errorf("Expected panic, but did not get one")
}
}()
log.SetLevel(logrus.PanicLevel)
log.Panic("This is a panic message")
}
func TestTrace_Success(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.TraceLevel)
log.Trace("This is a trace message")
if !bytes.Contains(buf.Bytes(), []byte("This is a trace message")) {
t.Errorf("Expected trace message to be logged")
}
}
func TestErrorf_Success(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.ErrorLevel)
log.Errorf("Error occurred: %s", "test error")
if !bytes.Contains(buf.Bytes(), []byte("Error occurred: test error")) {
t.Errorf("Expected error message to be logged")
}
}
func TestInfof_Success(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.InfoLevel)
log.Infof("Info log: %s", "test info")
if !bytes.Contains(buf.Bytes(), []byte("Info log: test info")) {
t.Errorf("Expected info message to be logged")
}
}
func TestDebugf_Success(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.DebugLevel)
log.Debugf("Debug message: %s", "should log")
if !bytes.Contains(buf.Bytes(), []byte("Debug message: should log")) {
t.Errorf("Expected debug message to be logged")
}
}
func TestWarnf_Success(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.WarnLevel)
log.Warnf("Warning message: %s", "should log")
if !bytes.Contains(buf.Bytes(), []byte("Warning message: should log")) {
t.Errorf("Expected warning message to be logged")
}
}
func TestPanicf_Success(t *testing.T) {
defer func() {
if r := recover(); r == nil {
t.Errorf("Expected panic, but did not get one")
}
}()
log.SetLevel(logrus.PanicLevel)
log.Panicf("Panic message: %s", "should panic")
}
func TestTracef_Success(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.TraceLevel)
log.Tracef("Trace message: %s", "should log")
if !bytes.Contains(buf.Bytes(), []byte("Trace message: should log")) {
t.Errorf("Expected trace message to be logged")
}
}
func TestError_Failure(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.FatalLevel) // Set level higher than Error
log.Error("This is an error message")
if bytes.Contains(buf.Bytes(), []byte("This is an error message")) {
t.Errorf("Expected error message not to be logged")
}
}
func TestInfo_Failure(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.WarnLevel) // Set level higher than Info
log.Info("This is an info message")
if bytes.Contains(buf.Bytes(), []byte("This is an info message")) {
t.Errorf("Expected info message not to be logged")
}
}
func TestDebug_Failure(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.InfoLevel) // Set level higher than Debug
log.Debug("This is a debug message")
if bytes.Contains(buf.Bytes(), []byte("This is a debug message")) {
t.Errorf("Expected debug message not to be logged")
}
}
func TestWarn_Failure(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.ErrorLevel) // Set level higher than Warn
log.Warn("This is a warning message")
if bytes.Contains(buf.Bytes(), []byte("This is a warning message")) {
t.Errorf("Expected warning message not to be logged")
}
}
func TestPanic_Failure(t *testing.T) {
defer func() {
if r := recover(); r == nil {
t.Errorf("Expected a panic at PanicLevel, but did not get one")
}
}()
log.SetLevel(logrus.PanicLevel) // Set to PanicLevel so a panic should occur
log.Panic("This should cause a panic at PanicLevel")
}
func TestTrace_Failure(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.DebugLevel) // Set level higher than Trace
log.Trace("This is a trace message")
if bytes.Contains(buf.Bytes(), []byte("This is a trace message")) {
t.Errorf("Expected trace message not to be logged")
}
}
func TestErrorf_Failure(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.FatalLevel) // Set level higher than Error
log.Errorf("Error occurred: %s", "test error")
if bytes.Contains(buf.Bytes(), []byte("Error occurred: test error")) {
t.Errorf("Expected error message not to be logged")
}
}
func TestInfof_Failure(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.WarnLevel) // Set level higher than Info
log.Infof("Info log: %s", "test info")
if bytes.Contains(buf.Bytes(), []byte("Info log: test info")) {
t.Errorf("Expected info message not to be logged")
}
}
func TestDebugf_Failure(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.InfoLevel) // Set level higher than Debug
log.Debugf("Debug message: %s", "should not log")
if bytes.Contains(buf.Bytes(), []byte("Debug message: should not log")) {
t.Errorf("Expected debug message not to be logged")
}
}
func TestWarnf_Failure(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.ErrorLevel) // Set level higher than Warn
log.Warnf("Warning message: %s", "should not log")
if bytes.Contains(buf.Bytes(), []byte("Warning message: should not log")) {
t.Errorf("Expected warning message not to be logged")
}
}
func TestPanicf_Failure(t *testing.T) {
defer func() {
if r := recover(); r == nil {
t.Errorf("Expected a panic at PanicLevel, but did not get one")
}
}()
log.SetLevel(logrus.PanicLevel) // Set to PanicLevel so a panic should occur
log.Panicf("Panicf message: %s", "should panic at PanicLevel")
}
func TestTracef_Failure(t *testing.T) {
var buf bytes.Buffer
log.SetOutput(&buf)
log.SetLevel(logrus.DebugLevel) // Set level higher than Trace
log.Tracef("Trace message: %s", "should not log")
if bytes.Contains(buf.Bytes(), []byte("Trace message: should not log")) {
t.Errorf("Expected trace message not to be logged")
}
}