OSDN Git Service

new repo
[bytom/vapor.git] / vendor / github.com / spf13 / jwalterweatherman / notepad_test.go
1 // Copyright © 2016 Steve Francia <spf@spf13.com>.
2 //
3 // Use of this source code is governed by an MIT-style
4 // license that can be found in the LICENSE file.
5
6 package jwalterweatherman
7
8 import (
9         "bytes"
10         "testing"
11
12         "github.com/stretchr/testify/require"
13 )
14
15 func TestNotepad(t *testing.T) {
16         var logHandle, outHandle bytes.Buffer
17
18         n := NewNotepad(LevelCritical, LevelError, &outHandle, &logHandle, "TestNotePad", 0)
19
20         require.Equal(t, LevelCritical, n.GetStdoutThreshold())
21         require.Equal(t, LevelError, n.GetLogThreshold())
22
23         n.DEBUG.Println("Some debug")
24         n.ERROR.Println("Some error")
25         n.CRITICAL.Println("Some critical error")
26
27         require.Contains(t, logHandle.String(), "[TestNotePad] ERROR Some error")
28         require.NotContains(t, logHandle.String(), "Some debug")
29         require.NotContains(t, outHandle.String(), "Some error")
30         require.Contains(t, outHandle.String(), "Some critical error")
31
32         require.Equal(t, n.LogCountForLevel(LevelError), uint64(1))
33         require.Equal(t, n.LogCountForLevel(LevelDebug), uint64(1))
34         require.Equal(t, n.LogCountForLevel(LevelTrace), uint64(0))
35 }
36
37 func TestThresholdString(t *testing.T) {
38         require.Equal(t, LevelError.String(), "ERROR")
39         require.Equal(t, LevelTrace.String(), "TRACE")
40 }
41
42 func BenchmarkLogPrintOnlyToCounter(b *testing.B) {
43         var logHandle, outHandle bytes.Buffer
44         n := NewNotepad(LevelCritical, LevelCritical, &outHandle, &logHandle, "TestNotePad", 0)
45
46         b.ResetTimer()
47         for i := 0; i < b.N; i++ {
48                 n.INFO.Print("Test")
49         }
50 }