-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathget_test.go
121 lines (112 loc) · 2.56 KB
/
get_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
package ecp
import (
"strings"
"testing"
)
func TestGet(t *testing.T) {
config := &configType{
LogLevel: "debug",
Port: 999,
Sub: subConfig{
Int: 6464,
Int8: 8,
Int16: 16,
Int32: 32,
Int64: 64,
F32: -3.14,
F64: 2.987,
Bool: true,
Book: "1984",
},
SubStruct: struct {
Str string "default:\"skrskr\""
Int int64 "default:\"111\""
SubStruct struct {
Bool bool "default:\"true\""
Int int "default:\"123\""
}
}{
Str: "skrskr",
SubStruct: struct {
Bool bool `default:"true"`
Int int "default:\"123\""
}{
Bool: true,
},
},
}
toEnvName := func(s string) string { return strings.ToUpper(strings.ReplaceAll(s, ".", "_")) }
// int
if p, err := GetInt64(config, toEnvName("port")); err != nil {
t.Fatal(err)
} else if p != int64(config.Port) {
t.Fatal("wrong port")
}
if p, err := GetInt64(config, "int"); err != nil {
t.Fatal(err)
} else if p != int64(config.Sub.Int) {
t.Fatal("wrong sub.Int")
}
if p, err := GetInt64(config, toEnvName("sub.Int8")); err != nil {
t.Fatal(err)
} else if p != int64(config.Sub.Int8) {
t.Fatal("wrong sub.Int8")
}
if p, err := GetInt64(config, toEnvName("sub.Int16")); err != nil {
t.Fatal(err)
} else if p != int64(config.Sub.Int16) {
t.Fatal("wrong sub.Int16")
}
if p, err := GetInt64(config, toEnvName("sub.Int32")); err != nil {
t.Fatal(err)
} else if p != int64(config.Sub.Int32) {
t.Fatal("wrong sub.Int32")
}
if p, err := GetInt64(config, toEnvName("sub.Int64")); err != nil {
t.Fatal(err)
} else if p != int64(config.Sub.Int64) {
t.Fatal("wrong sub.Int64")
}
// string
s, err := GetString(config, toEnvName("sub.Book"))
if err != nil {
t.Fatal(err)
}
if s != config.Sub.Book {
t.Fatal("wrong config.Sub.Book")
}
// bool
b, err := GetBool(config, toEnvName("sub.Bool"))
if err != nil {
t.Fatal(err)
}
if !b {
t.Fatal("not true")
}
// float
if f, err := GetFloat64(config, toEnvName("sub.F64")); err != nil {
t.Fatal(err)
} else if f != config.Sub.F64 {
t.Fatal("wrong config.Sub.F64")
}
if f, err := GetFloat64(config, toEnvName("sub.F32")); err != nil {
t.Fatal(err)
} else if float32(f) != config.Sub.F32 {
t.Fatalf("wrong config.Sub.F32 %v", f)
}
// sub.sub
subBool, err := GetBool(config, toEnvName("SubStruct.SubStruct.Bool"))
if err != nil {
t.Fatal(err)
}
if !subBool {
t.Fatal("not true")
}
subStr, err := GetString(config, toEnvName("SubStruct.Str"))
if err != nil {
t.Fatal(err)
}
if subStr != config.SubStruct.Str {
t.Fatal("wrong config.SubStruct.Str")
}
}