go.dedis.ch/onet/v4@v4.0.0-pre1/log/loggers_test.go (about) 1 package log 2 3 import ( 4 "io/ioutil" 5 "os" 6 "testing" 7 8 "github.com/stretchr/testify/require" 9 ) 10 11 type countMsgs struct { 12 count int 13 lInfo *LoggerInfo 14 } 15 16 func (c *countMsgs) Log(lvl int, msg string) { 17 c.count++ 18 } 19 20 func (c *countMsgs) Close() {} 21 22 func (c *countMsgs) GetLoggerInfo() *LoggerInfo { 23 return c.lInfo 24 } 25 26 func TestRegisterLogger(t *testing.T) { 27 lInfo := &LoggerInfo{ 28 DebugLvl: 3, 29 UseColors: false, 30 ShowTime: false, 31 Padding: false, 32 } 33 c := &countMsgs{ 34 count: 0, 35 lInfo: lInfo, 36 } 37 key := RegisterLogger(c) 38 defer UnregisterLogger(key) 39 Lvl1("testing") 40 Lvl3("testing") 41 Lvl5("testing") 42 if c.count != 2 { 43 t.Fatal("wrong count") 44 } 45 } 46 47 func TestUnregisterLogger(t *testing.T) { 48 lInfo := &LoggerInfo{ 49 DebugLvl: 3, 50 UseColors: false, 51 ShowTime: false, 52 Padding: false, 53 } 54 c := &countMsgs{ 55 count: 0, 56 lInfo: lInfo, 57 } 58 key := RegisterLogger(c) 59 Lvl1("testing") 60 UnregisterLogger(key) 61 Lvl1("testing") 62 if c.count != 1 { 63 t.Fatal("wrong count") 64 } 65 } 66 67 func TestFileLogger(t *testing.T) { 68 tempFile, err := ioutil.TempFile("", "test_file_logger.txt") 69 require.Nil(t, err) 70 path := tempFile.Name() 71 lInfo := &LoggerInfo{ 72 DebugLvl: 2, 73 ShowTime: false, 74 UseColors: false, 75 Padding: false, 76 } 77 fileLogger, err := NewFileLogger(lInfo, path) 78 require.Nil(t, err) 79 key := RegisterLogger(fileLogger) 80 defer func() { 81 UnregisterLogger(key) 82 err := os.Remove(path) 83 require.Nil(t, err) 84 }() 85 86 Lvl1("testing1") 87 Lvl2("testing2") 88 out, err := ioutil.ReadFile(path) 89 require.Nil(t, err) 90 require.Equal(t, "1 : fake_name.go:0 (log.TestFileLogger) - testing1\n"+ 91 "2 : fake_name.go:0 (log.TestFileLogger) - testing2\n", string(out)) 92 }