@@ -2,6 +2,7 @@ package daemon
2
2
3
3
import (
4
4
"context"
5
+ "os"
5
6
"testing"
6
7
7
8
"github.com/stretchr/testify/assert"
@@ -72,3 +73,103 @@ func TestInitService(t *testing.T) {
72
73
})
73
74
}
74
75
}
76
+
77
+ func TestNetworkServiceBuilder_LoadGlobalConfig (t * testing.T ) {
78
+ tmpFile , err := os .CreateTemp ("" , "config-*.yaml" )
79
+ if err != nil {
80
+ t .Fatalf ("Failed to create temp file: %v" , err )
81
+ }
82
+ defer tmpFile .Close ()
83
+ configContent := `
84
+ {
85
+ "version": "1",
86
+ "max_pool_size": 5,
87
+ "min_pool_size": 0,
88
+ "credential_path": "/var/addon/token-config",
89
+ "ipam_type": "crd"
90
+ }`
91
+ err = os .WriteFile (tmpFile .Name (), []byte (configContent ), os .ModeDir )
92
+ assert .NoError (t , err )
93
+ builder := & NetworkServiceBuilder {
94
+ configFilePath : tmpFile .Name (),
95
+ service : & networkService {},
96
+ }
97
+ builder .LoadGlobalConfig ()
98
+ assert .True (t , * builder .config .EnablePatchPodIPs )
99
+ }
100
+
101
+ func TestNetworkServiceBuilder_LoadGlobalConfig2 (t * testing.T ) {
102
+ tmpFile , err := os .CreateTemp ("" , "config-*.yaml" )
103
+ if err != nil {
104
+ t .Fatalf ("Failed to create temp file: %v" , err )
105
+ }
106
+ defer tmpFile .Close ()
107
+ configContent := `
108
+ {
109
+ "version": "1",
110
+ "max_pool_size": 5,
111
+ "min_pool_size": 0,
112
+ "credential_path": "/var/addon/token-config",
113
+ "enable_patch_pod_ips": false,
114
+ "ipam_type": "crd"
115
+ }`
116
+ err = os .WriteFile (tmpFile .Name (), []byte (configContent ), os .ModeDir )
117
+ assert .NoError (t , err )
118
+ builder := & NetworkServiceBuilder {
119
+ configFilePath : tmpFile .Name (),
120
+ service : & networkService {},
121
+ }
122
+ builder .LoadGlobalConfig ()
123
+ assert .False (t , * builder .config .EnablePatchPodIPs )
124
+ }
125
+
126
+ func TestNetworkServiceBuilder_GetConfigFromFileWithMerge_1 (t * testing.T ) {
127
+ tmpFile , err := os .CreateTemp ("" , "config-*.yaml" )
128
+ if err != nil {
129
+ t .Fatalf ("Failed to create temp file: %v" , err )
130
+ }
131
+ defer tmpFile .Close ()
132
+ configContent := `
133
+ {
134
+ "version": "1",
135
+ "max_pool_size": 5,
136
+ "min_pool_size": 0,
137
+ "credential_path": "/var/addon/token-config",
138
+ "ipam_type": "crd"
139
+ }`
140
+
141
+ dynamicCfg := ""
142
+ err = os .WriteFile (tmpFile .Name (), []byte (configContent ), os .ModeDir )
143
+ assert .NoError (t , err )
144
+ config , err := daemon .GetConfigFromFileWithMerge (tmpFile .Name (), []byte (dynamicCfg ))
145
+ assert .NoError (t , err )
146
+ config .Populate ()
147
+
148
+ assert .True (t , * config .EnablePatchPodIPs )
149
+ }
150
+
151
+ func TestNetworkServiceBuilder_GetConfigFromFileWithMerge_2 (t * testing.T ) {
152
+ tmpFile , err := os .CreateTemp ("" , "config-*.yaml" )
153
+ if err != nil {
154
+ t .Fatalf ("Failed to create temp file: %v" , err )
155
+ }
156
+ defer tmpFile .Close ()
157
+ configContent := `
158
+ {
159
+ "version": "1",
160
+ "max_pool_size": 5,
161
+ "min_pool_size": 0,
162
+ "credential_path": "/var/addon/token-config",
163
+ "enable_patch_pod_ips": false,
164
+ "ipam_type": "crd"
165
+ }`
166
+
167
+ dynamicCfg := ""
168
+ err = os .WriteFile (tmpFile .Name (), []byte (configContent ), os .ModeDir )
169
+ assert .NoError (t , err )
170
+ config , err := daemon .GetConfigFromFileWithMerge (tmpFile .Name (), []byte (dynamicCfg ))
171
+ assert .NoError (t , err )
172
+ config .Populate ()
173
+
174
+ assert .False (t , * config .EnablePatchPodIPs )
175
+ }
0 commit comments