-
Notifications
You must be signed in to change notification settings - Fork 5
/
stop_test.go
135 lines (117 loc) · 3.5 KB
/
stop_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
127
128
129
130
131
132
133
134
135
package figtree
import (
"os"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestOptionsStopConfigD3(t *testing.T) {
opts := TestOptions{}
require.NoError(t, os.Chdir("d1/d2/d3"))
t.Cleanup(func() {
_ = os.Chdir("../../..")
})
arr1 := []StringOption{}
arr1 = append(arr1, StringOption{tSrc("stop.yml", 3, 5), true, "d3arr1val1"})
arr1 = append(arr1, StringOption{tSrc("stop.yml", 4, 5), true, "d3arr1val2"})
arr1 = append(arr1, StringOption{tSrc("../stop.yml", 5, 5), true, "d2arr1val1"})
arr1 = append(arr1, StringOption{tSrc("../stop.yml", 6, 5), true, "d2arr1val2"})
expected := TestOptions{
String1: StringOption{tSrc("stop.yml", 1, 7), true, "d3str1val1"},
LeaveEmpty: StringOption{},
Array1: arr1,
Map1: map[string]StringOption{
"key1": {tSrc("../stop.yml", 8, 9), true, "d2map1val1"},
"key2": {tSrc("stop.yml", 6, 9), true, "d3map1val2"},
"key3": {tSrc("stop.yml", 7, 9), true, "d3map1val3"},
},
Int1: IntOption{tSrc("stop.yml", 8, 7), true, 333},
Float1: Float32Option{tSrc("stop.yml", 9, 9), true, 3.33},
Bool1: BoolOption{tSrc("stop.yml", 10, 8), true, true},
}
fig := newFigTreeFromEnv()
err := fig.LoadAllConfigs("stop.yml", &opts)
assert.NoError(t, err)
assert.Exactly(t, expected, opts)
}
func TestOptionsStopConfigD2(t *testing.T) {
opts := TestOptions{}
require.NoError(t, os.Chdir("d1/d2"))
t.Cleanup(func() {
_ = os.Chdir("../..")
})
arr1 := []StringOption{}
arr1 = append(arr1, StringOption{tSrc("stop.yml", 5, 5), true, "d2arr1val1"})
arr1 = append(arr1, StringOption{tSrc("stop.yml", 6, 5), true, "d2arr1val2"})
expected := TestOptions{
String1: StringOption{tSrc("stop.yml", 3, 7), true, "d2str1val1"},
LeaveEmpty: StringOption{},
Array1: arr1,
Map1: map[string]StringOption{
"key1": {tSrc("stop.yml", 8, 9), true, "d2map1val1"},
"key2": {tSrc("stop.yml", 9, 9), true, "d2map1val2"},
},
Int1: IntOption{tSrc("stop.yml", 10, 7), true, 222},
Float1: Float32Option{tSrc("stop.yml", 11, 9), true, 2.22},
Bool1: BoolOption{tSrc("stop.yml", 12, 8), true, false},
}
fig := newFigTreeFromEnv()
err := fig.LoadAllConfigs("stop.yml", &opts)
assert.NoError(t, err)
assert.Exactly(t, expected, opts)
}
func TestBuiltinStopConfigD3(t *testing.T) {
opts := TestBuiltin{}
require.NoError(t, os.Chdir("d1/d2/d3"))
t.Cleanup(func() {
_ = os.Chdir("../../..")
})
arr1 := []string{}
arr1 = append(arr1, "d3arr1val1")
arr1 = append(arr1, "d3arr1val2")
arr1 = append(arr1, "d2arr1val1")
arr1 = append(arr1, "d2arr1val2")
expected := TestBuiltin{
String1: "d3str1val1",
LeaveEmpty: "",
Array1: arr1,
Map1: map[string]string{
"key1": "d2map1val1",
"key2": "d3map1val2",
"key3": "d3map1val3",
},
Int1: 333,
Float1: 3.33,
Bool1: true,
}
fig := newFigTreeFromEnv()
err := fig.LoadAllConfigs("stop.yml", &opts)
assert.NoError(t, err)
assert.Exactly(t, expected, opts)
}
func TestBuiltinStopConfigD2(t *testing.T) {
opts := TestBuiltin{}
require.NoError(t, os.Chdir("d1/d2"))
t.Cleanup(func() {
_ = os.Chdir("../..")
})
arr1 := []string{}
arr1 = append(arr1, "d2arr1val1")
arr1 = append(arr1, "d2arr1val2")
expected := TestBuiltin{
String1: "d2str1val1",
LeaveEmpty: "",
Array1: arr1,
Map1: map[string]string{
"key1": "d2map1val1",
"key2": "d2map1val2",
},
Int1: 222,
Float1: 2.22,
Bool1: false,
}
fig := newFigTreeFromEnv()
err := fig.LoadAllConfigs("stop.yml", &opts)
assert.NoError(t, err)
assert.Exactly(t, expected, opts)
}