-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstatus_test.go
More file actions
81 lines (67 loc) · 1.67 KB
/
Copy pathstatus_test.go
File metadata and controls
81 lines (67 loc) · 1.67 KB
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
package errors
import (
"fmt"
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
func TestStatusCode(t *testing.T) {
t.Run("annotate", func(t *testing.T) {
for i := 0; i < int(totalStatus); i++ {
s := StatusCode(i)
m := &MockModifier{}
s.Annotate(m)
assert.Equal(t, s, m.Code)
}
})
t.Run("invalid", func(t *testing.T) {
s := StatusCode(-1)
assert.False(t, s.Valid())
})
t.Run("message", func(t *testing.T) {
for i := 0; i < int(totalStatus); i++ {
s := StatusCode(i)
msg := fmt.Sprintf("%d %s", httpList[i], statusList[i])
assert.Equal(t, msg, s.Error())
}
s := StatusCode(-1)
assert.Equal(t, "500 Code(-1)", s.Error())
})
}
func TestStatusName(t *testing.T) {
t.Run("code", func(t *testing.T) {
for i := 0; i < int(totalStatus); i++ {
code := statusList[i].StatusCode()
assert.Equal(t, StatusCode(i), code)
}
name := StatusName("don't known")
assert.Equal(t, Unknown, name.StatusCode())
})
t.Run("name", func(t *testing.T) {
for i := 0; i < int(totalStatus); i++ {
lower := strings.ToLower(string(statusList[i]))
code := StatusName(lower).StatusCode()
assert.Equal(t, StatusCode(i), code)
}
})
}
func TestStatusTemporary(t *testing.T) {
for i := 0; i < int(totalStatus); i++ {
code := StatusCode(i)
assert.Equal(t, code == Unavailable, code.Temporary())
}
}
type MockModifier struct {
Code StatusCode
Messages []string
Details []Any
}
func (m *MockModifier) SetCode(code StatusCode) {
m.Code = code
}
func (m *MockModifier) WrapMessage(msg string) {
m.Messages = append(m.Messages, msg)
}
func (m *MockModifier) AppendDetails(details ...Any) {
m.Details = append(m.Details, details...)
}