-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patherr_test.go
126 lines (105 loc) · 2.67 KB
/
err_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package err
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/suite"
)
type ErrTestSuite struct {
suite.Suite
}
func (suite *ErrTestSuite) TestNew() {
e := New()
assert.NotNil(suite.T(), e)
assert.Nil(suite.T(), e.(*errs).err)
assert.Equal(suite.T(), uint32(0), e.(*errs).code)
assert.Empty(suite.T(), e.(*errs).msg)
}
func (suite *ErrTestSuite) TestErrSetAndAdd() {
e := New().Err("initial error")
assert.Equal(
suite.T(), "initial error;", e.(*errs).err.Error(),
)
e.Err("second error")
assert.Equal(
suite.T(),
"second error; initial error;",
e.(*errs).err.Error(),
)
e.Err("third error")
assert.Equal(
suite.T(),
"third error; second error; initial error;",
e.(*errs).err.Error(),
)
}
func (suite *ErrTestSuite) TestFailed() {
e := New().Failed("operation")
assert.Equal(
suite.T(),
"operation failed;",
e.(*errs).err.Error(),
)
}
func (suite *ErrTestSuite) TestInfoSetAndAdd() {
e := New().Info("context", "detail")
assert.Equal(
suite.T(),
"context: [detail];",
e.(*errs).err.Error(),
)
e.Info("additional context", "more detail")
assert.Equal(
suite.T(),
"context: [detail]; additional context: [more detail];",
e.(*errs).err.Error(),
)
}
func (suite *ErrTestSuite) TestCode() {
e := New().Code(404)
assert.Equal(suite.T(), uint32(404), e.(*errs).code)
e.Code(500)
assert.Equal(suite.T(), uint32(500), e.(*errs).code)
}
func (suite *ErrTestSuite) TestMsgSetAndAdd() {
e := New().Msg("initial message")
assert.Equal(suite.T(), "initial message", e.(*errs).msg)
e.Msg("additional message")
assert.Equal(
suite.T(),
"initial message; additional message",
e.(*errs).msg,
)
}
func (suite *ErrTestSuite) TestGetMsg() {
e := New().Msg("test message")
assert.Equal(
suite.T(), "test message", e.GetMsg(),
)
}
func (suite *ErrTestSuite) TestGetCode() {
e := New().Code(200)
assert.Equal(suite.T(), "200", e.GetCode())
}
func (suite *ErrTestSuite) TestGetCodeUint32() {
e := New().Code(1234)
assert.Equal(
suite.T(), uint32(1234), e.GetCodeUint32(),
)
}
func (suite *ErrTestSuite) TestGetCodeInt32() {
e := New().Code(1234)
assert.Equal(suite.T(), int32(1234), e.GetCodeInt32())
}
func (suite *ErrTestSuite) TestError() {
e := New().Err("test error").Code(400).Msg("bad request")
expected := `{"err": 'test error;',"code": 400,"msg": "bad request"}`
assert.Equal(suite.T(), expected, e.Error())
}
func (suite *ErrTestSuite) TestString() {
e := New().Err("test string").Code(500).Msg("server error")
expected := `{"err": 'test string;',"code": 500,"msg": "server error"}`
assert.Equal(suite.T(), expected, e.String())
}
func TestErrTestSuite(t *testing.T) {
suite.Run(t, new(ErrTestSuite))
}