-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathenum_test.go
More file actions
76 lines (69 loc) · 2.22 KB
/
enum_test.go
File metadata and controls
76 lines (69 loc) · 2.22 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
package enum_test
import (
"testing"
"github.com/stretchr/testify/require"
"github.com/yylego/enum"
)
// TestNewEnum tests the creation and Code method of Enum instance
// Checks Code method returns expected value
//
// 验证 Enum 实例的创建和 Code 方法
// 测试 Code 方法返回预期值
func TestNewEnum(t *testing.T) {
type Status string
const (
unknown Status = "unknown"
success Status = "success"
failure Status = "failure"
)
one := enum.NewEnum(success)
t.Log(one.Code())
require.Equal(t, success, one.Code())
require.Equal(t, unknown, enum.NewEnum(unknown).Code())
require.Equal(t, failure, enum.NewEnum(failure).Code())
}
// TestNewEnumWithDesc tests Enum creation with description
// Checks both Code and Meta().Desc() return expected values
//
// 验证带描述的 Enum 创建
// 测试 Code 和 Meta().Desc() 返回预期值
func TestNewEnumWithDesc(t *testing.T) {
type Status string
const (
unknown Status = "unknown"
success Status = "success"
failure Status = "failure"
)
one := enum.NewEnumWithDesc(success, "Success")
t.Log(one.Code())
t.Log(one.Meta())
require.Equal(t, success, one.Code())
require.Equal(t, "Success", one.Meta().Desc())
require.Equal(t, "Unknown", enum.NewEnumWithDesc(unknown, "Unknown").Meta().Desc())
require.Equal(t, "Failure", enum.NewEnumWithDesc(failure, "Failure").Meta().Desc())
}
// TestNewEnumWithMeta tests Enum creation with custom metadata
// Checks Code and custom Meta fields return expected values
//
// 验证带自定义元数据的 Enum 创建
// 测试 Code 和自定义 Meta 字段返回预期值
func TestNewEnumWithMeta(t *testing.T) {
type Status string
const (
unknown Status = "unknown"
success Status = "success"
failure Status = "failure"
)
type MetaType struct {
Flag int
Mark string
}
one := enum.NewEnumWithMeta(success, &MetaType{Flag: 200, Mark: "Success"})
t.Log(one.Code())
t.Log(one.Meta())
require.Equal(t, success, one.Code())
require.Equal(t, 200, one.Meta().Flag)
require.Equal(t, "Success", one.Meta().Mark)
require.Equal(t, "Unknown", enum.NewEnumWithMeta(unknown, &MetaType{Flag: 0, Mark: "Unknown"}).Meta().Mark)
require.Equal(t, 400, enum.NewEnumWithMeta(failure, &MetaType{Flag: 400, Mark: "Failure"}).Meta().Flag)
}