Customization of the original library will continue from here to make it leaner and more suited for general use in MimirTech projects.
77 lines
1.6 KiB
Go
77 lines
1.6 KiB
Go
// Copyright 2013, Örjan Persson. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package logging
|
|
|
|
import "testing"
|
|
|
|
func TestLevelString(t *testing.T) {
|
|
// Make sure all levels can be converted from string -> constant -> string
|
|
for _, name := range levelNames {
|
|
level, err := LogLevel(name)
|
|
if err != nil {
|
|
t.Errorf("failed to get level: %v", err)
|
|
continue
|
|
}
|
|
|
|
if level.String() != name {
|
|
t.Errorf("invalid level conversion: %v != %v", level, name)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestLevelLogLevel(t *testing.T) {
|
|
tests := []struct {
|
|
expected Level
|
|
level string
|
|
}{
|
|
{-1, "bla"},
|
|
{INFO, "iNfO"},
|
|
{ERROR, "error"},
|
|
{WARNING, "warninG"},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
level, err := LogLevel(test.level)
|
|
if err != nil {
|
|
if test.expected == -1 {
|
|
continue
|
|
} else {
|
|
t.Errorf("failed to convert %s: %s", test.level, err)
|
|
}
|
|
}
|
|
if test.expected != level {
|
|
t.Errorf("failed to convert %s to level: %s != %s", test.level, test.expected, level)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestLevelModuleLevel(t *testing.T) {
|
|
backend := NewMemoryBackend(128)
|
|
|
|
leveled := AddModuleLevel(backend)
|
|
leveled.SetLevel(NOTICE, "")
|
|
leveled.SetLevel(ERROR, "foo")
|
|
leveled.SetLevel(INFO, "foo.bar")
|
|
leveled.SetLevel(WARNING, "bar")
|
|
|
|
expected := []struct {
|
|
level Level
|
|
module string
|
|
}{
|
|
{NOTICE, ""},
|
|
{NOTICE, "something"},
|
|
{ERROR, "foo"},
|
|
{INFO, "foo.bar"},
|
|
{WARNING, "bar"},
|
|
}
|
|
|
|
for _, e := range expected {
|
|
actual := leveled.GetLevel(e.module)
|
|
if e.level != actual {
|
|
t.Errorf("unexpected level in %s: %s != %s", e.module, e.level, actual)
|
|
}
|
|
}
|
|
}
|