| // 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) |
| } |
| } |
| } |