@@ -304,7 +304,7 @@ func TestPreCreateModifierHook(t *testing.T) {
304
304
)
305
305
})
306
306
307
- t .Run ("Request contains exposed port modifiers" , func (t * testing.T ) {
307
+ t .Run ("Request contains exposed port modifiers without protocol " , func (t * testing.T ) {
308
308
req := ContainerRequest {
309
309
Image : nginxAlpineImage , // alpine image does expose port 80
310
310
HostConfigModifier : func (hostConfig * container.HostConfig ) {
@@ -334,6 +334,37 @@ func TestPreCreateModifierHook(t *testing.T) {
334
334
assert .Equal (t , "localhost" , inputHostConfig .PortBindings ["80/tcp" ][0 ].HostIP )
335
335
assert .Equal (t , "8080" , inputHostConfig .PortBindings ["80/tcp" ][0 ].HostPort )
336
336
})
337
+
338
+ t .Run ("Request contains exposed port modifiers with protocol" , func (t * testing.T ) {
339
+ req := ContainerRequest {
340
+ Image : nginxAlpineImage , // alpine image does expose port 80
341
+ HostConfigModifier : func (hostConfig * container.HostConfig ) {
342
+ hostConfig .PortBindings = nat.PortMap {
343
+ "80/tcp" : []nat.PortBinding {
344
+ {
345
+ HostIP : "localhost" ,
346
+ HostPort : "8080" ,
347
+ },
348
+ },
349
+ }
350
+ },
351
+ ExposedPorts : []string {"80/tcp" },
352
+ }
353
+
354
+ // define empty inputs to be overwritten by the pre create hook
355
+ inputConfig := & container.Config {
356
+ Image : req .Image ,
357
+ }
358
+ inputHostConfig := & container.HostConfig {}
359
+ inputNetworkingConfig := & network.NetworkingConfig {}
360
+
361
+ err = provider .preCreateContainerHook (ctx , req , inputConfig , inputHostConfig , inputNetworkingConfig )
362
+ require .NoError (t , err )
363
+
364
+ // assertions
365
+ assert .Equal (t , "localhost" , inputHostConfig .PortBindings ["80/tcp" ][0 ].HostIP )
366
+ assert .Equal (t , "8080" , inputHostConfig .PortBindings ["80/tcp" ][0 ].HostPort )
367
+ })
337
368
}
338
369
339
370
func TestMergePortBindings (t * testing.T ) {
@@ -352,7 +383,6 @@ func TestMergePortBindings(t *testing.T) {
352
383
arg : arg {
353
384
configPortMap : nil ,
354
385
parsedPortMap : nil ,
355
- exposedPorts : nil ,
356
386
},
357
387
expected : map [nat.Port ][]nat.PortBinding {},
358
388
},
@@ -363,7 +393,6 @@ func TestMergePortBindings(t *testing.T) {
363
393
"80/tcp" : {{HostIP : "1" , HostPort : "2" }},
364
394
},
365
395
parsedPortMap : nil ,
366
- exposedPorts : nil ,
367
396
},
368
397
expected : map [nat.Port ][]nat.PortBinding {},
369
398
},
@@ -374,22 +403,6 @@ func TestMergePortBindings(t *testing.T) {
374
403
parsedPortMap : map [nat.Port ][]nat.PortBinding {
375
404
"80/tcp" : {{HostIP : "" , HostPort : "" }},
376
405
},
377
- exposedPorts : nil ,
378
- },
379
- expected : map [nat.Port ][]nat.PortBinding {
380
- "80/tcp" : {{HostIP : "" , HostPort : "" }},
381
- },
382
- },
383
- {
384
- name : "parsed and configured but not exposed" ,
385
- arg : arg {
386
- configPortMap : map [nat.Port ][]nat.PortBinding {
387
- "80/tcp" : {{HostIP : "1" , HostPort : "2" }},
388
- },
389
- parsedPortMap : map [nat.Port ][]nat.PortBinding {
390
- "80/tcp" : {{HostIP : "" , HostPort : "" }},
391
- },
392
- exposedPorts : nil ,
393
406
},
394
407
expected : map [nat.Port ][]nat.PortBinding {
395
408
"80/tcp" : {{HostIP : "" , HostPort : "" }},
@@ -407,7 +420,6 @@ func TestMergePortBindings(t *testing.T) {
407
420
"80/tcp" : {{HostIP : "" , HostPort : "" }},
408
421
"90/tcp" : {{HostIP : "" , HostPort : "" }},
409
422
},
410
- exposedPorts : []string {"70" , "80" },
411
423
},
412
424
expected : map [nat.Port ][]nat.PortBinding {
413
425
"70/tcp" : {{HostIP : "1" , HostPort : "2" }},
@@ -419,7 +431,7 @@ func TestMergePortBindings(t *testing.T) {
419
431
420
432
for _ , c := range cases {
421
433
t .Run (c .name , func (t * testing.T ) {
422
- res := mergePortBindings (c .arg .configPortMap , c .arg .parsedPortMap , c . arg . exposedPorts )
434
+ res := mergePortBindings (c .arg .configPortMap , c .arg .parsedPortMap )
423
435
assert .Equal (t , c .expected , res )
424
436
})
425
437
}
0 commit comments