@@ -151,3 +151,74 @@ func TestGetBindMode(t *testing.T) {
151
151
assert .Equal (t , getBindMode (& composetypes.ServiceVolumeBind {SELinux : composetypes .SELinuxShared }, true ), "ro,z" )
152
152
assert .Equal (t , getBindMode (& composetypes.ServiceVolumeBind {SELinux : composetypes .SELinuxPrivate }, true ), "ro,Z" )
153
153
}
154
+
155
+ func TestGetDefaultNetworkMode (t * testing.T ) {
156
+ t .Run ("returns the network with the highest priority when service has multiple networks" , func (t * testing.T ) {
157
+ service := composetypes.ServiceConfig {
158
+ Name : "myService" ,
159
+ Networks : map [string ]* composetypes.ServiceNetworkConfig {
160
+ "myNetwork1" : {
161
+ Priority : 10 ,
162
+ },
163
+ "myNetwork2" : {
164
+ Priority : 1000 ,
165
+ },
166
+ },
167
+ }
168
+ project := composetypes.Project {
169
+ Name : "myProject" ,
170
+ Services : []composetypes.ServiceConfig {
171
+ service ,
172
+ },
173
+ Networks : composetypes .Networks (map [string ]composetypes.NetworkConfig {
174
+ "myNetwork1" : {
175
+ Name : "myProject_myNetwork1" ,
176
+ },
177
+ "myNetwork2" : {
178
+ Name : "myProject_myNetwork2" ,
179
+ },
180
+ }),
181
+ }
182
+
183
+ assert .Equal (t , getDefaultNetworkMode (& project , service ), "myProject_myNetwork2" )
184
+ })
185
+
186
+ t .Run ("returns default network when service has no networks" , func (t * testing.T ) {
187
+ service := composetypes.ServiceConfig {
188
+ Name : "myService" ,
189
+ }
190
+ project := composetypes.Project {
191
+ Name : "myProject" ,
192
+ Services : []composetypes.ServiceConfig {
193
+ service ,
194
+ },
195
+ Networks : composetypes .Networks (map [string ]composetypes.NetworkConfig {
196
+ "myNetwork1" : {
197
+ Name : "myProject_myNetwork1" ,
198
+ },
199
+ "myNetwork2" : {
200
+ Name : "myProject_myNetwork2" ,
201
+ },
202
+ "default" : {
203
+ Name : "myProject_default" ,
204
+ },
205
+ }),
206
+ }
207
+
208
+ assert .Equal (t , getDefaultNetworkMode (& project , service ), "myProject_default" )
209
+ })
210
+
211
+ t .Run ("returns none if project has no networks" , func (t * testing.T ) {
212
+ service := composetypes.ServiceConfig {
213
+ Name : "myService" ,
214
+ }
215
+ project := composetypes.Project {
216
+ Name : "myProject" ,
217
+ Services : []composetypes.ServiceConfig {
218
+ service ,
219
+ },
220
+ }
221
+
222
+ assert .Equal (t , getDefaultNetworkMode (& project , service ), "none" )
223
+ })
224
+ }
0 commit comments