OSDN Git Service

new repo
[bytom/vapor.git] / vendor / github.com / sirupsen / logrus / entry_test.go
1 package logrus
2
3 import (
4         "bytes"
5         "fmt"
6         "testing"
7
8         "github.com/stretchr/testify/assert"
9 )
10
11 func TestEntryWithError(t *testing.T) {
12
13         assert := assert.New(t)
14
15         defer func() {
16                 ErrorKey = "error"
17         }()
18
19         err := fmt.Errorf("kaboom at layer %d", 4711)
20
21         assert.Equal(err, WithError(err).Data["error"])
22
23         logger := New()
24         logger.Out = &bytes.Buffer{}
25         entry := NewEntry(logger)
26
27         assert.Equal(err, entry.WithError(err).Data["error"])
28
29         ErrorKey = "err"
30
31         assert.Equal(err, entry.WithError(err).Data["err"])
32
33 }
34
35 func TestEntryPanicln(t *testing.T) {
36         errBoom := fmt.Errorf("boom time")
37
38         defer func() {
39                 p := recover()
40                 assert.NotNil(t, p)
41
42                 switch pVal := p.(type) {
43                 case *Entry:
44                         assert.Equal(t, "kaboom", pVal.Message)
45                         assert.Equal(t, errBoom, pVal.Data["err"])
46                 default:
47                         t.Fatalf("want type *Entry, got %T: %#v", pVal, pVal)
48                 }
49         }()
50
51         logger := New()
52         logger.Out = &bytes.Buffer{}
53         entry := NewEntry(logger)
54         entry.WithField("err", errBoom).Panicln("kaboom")
55 }
56
57 func TestEntryPanicf(t *testing.T) {
58         errBoom := fmt.Errorf("boom again")
59
60         defer func() {
61                 p := recover()
62                 assert.NotNil(t, p)
63
64                 switch pVal := p.(type) {
65                 case *Entry:
66                         assert.Equal(t, "kaboom true", pVal.Message)
67                         assert.Equal(t, errBoom, pVal.Data["err"])
68                 default:
69                         t.Fatalf("want type *Entry, got %T: %#v", pVal, pVal)
70                 }
71         }()
72
73         logger := New()
74         logger.Out = &bytes.Buffer{}
75         entry := NewEntry(logger)
76         entry.WithField("err", errBoom).Panicf("kaboom %v", true)
77 }