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  }