Skip to content

Commit f90b50b

Browse files
committed
Add tests
1 parent 472c724 commit f90b50b

File tree

2 files changed

+160
-0
lines changed

2 files changed

+160
-0
lines changed

client/nginx.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -507,6 +507,7 @@ func (client *NginxClient) UpdateHTTPServers(upstream string, servers []Upstream
507507
return toAdd, toDelete, toUpdate, nil
508508
}
509509

510+
// haveSameParameters checks if a given server has the same parameters an NGINX server already present. Order matters
510511
func haveSameParameters(newServer UpstreamServer, serverNGX UpstreamServer) bool {
511512
newServer.ID = serverNGX.ID
512513

@@ -807,6 +808,7 @@ func (client *NginxClient) getIDOfStreamServer(upstream string, name string) (in
807808
return -1, nil
808809
}
809810

811+
// haveStreamSameParameters checks if a given stream server has the same parameters an NGINX server already present. Order matters
810812
func haveStreamSameParameters(newServer StreamUpstreamServer, serverNGX StreamUpstreamServer) bool {
811813
newServer.ID = serverNGX.ID
812814
if serverNGX.MaxConns != nil && newServer.MaxConns == nil {

client/nginx_test.go

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,3 +353,161 @@ func TestAddPortToServer(t *testing.T) {
353353
}
354354
}
355355
}
356+
357+
func TestHaveSameParameters(t *testing.T) {
358+
tests := []struct {
359+
server UpstreamServer
360+
serverNGX UpstreamServer
361+
expected bool
362+
}{
363+
{
364+
server: UpstreamServer{},
365+
serverNGX: UpstreamServer{},
366+
expected: true,
367+
},
368+
{
369+
server: UpstreamServer{ID: 2},
370+
serverNGX: UpstreamServer{ID: 3},
371+
expected: true,
372+
},
373+
{
374+
server: UpstreamServer{},
375+
serverNGX: UpstreamServer{
376+
MaxConns: &defaultMaxConns,
377+
MaxFails: &defaultMaxFails,
378+
FailTimeout: defaultFailTimeout,
379+
SlowStart: defaultSlowStart,
380+
Backup: &defaultBackup,
381+
Weight: &defaultWeight,
382+
Down: &defaultDown,
383+
},
384+
expected: true,
385+
},
386+
{
387+
server: UpstreamServer{
388+
ID: 1,
389+
Server: "127.0.0.1",
390+
MaxConns: &defaultMaxConns,
391+
MaxFails: &defaultMaxFails,
392+
FailTimeout: defaultFailTimeout,
393+
SlowStart: defaultSlowStart,
394+
Backup: &defaultBackup,
395+
Weight: &defaultWeight,
396+
Down: &defaultDown,
397+
},
398+
serverNGX: UpstreamServer{
399+
ID: 1,
400+
Server: "127.0.0.1",
401+
MaxConns: &defaultMaxConns,
402+
MaxFails: &defaultMaxFails,
403+
FailTimeout: defaultFailTimeout,
404+
SlowStart: defaultSlowStart,
405+
Backup: &defaultBackup,
406+
Weight: &defaultWeight,
407+
Down: &defaultDown,
408+
},
409+
expected: true,
410+
},
411+
{
412+
server: UpstreamServer{SlowStart: "10s"},
413+
serverNGX: UpstreamServer{},
414+
expected: false,
415+
},
416+
{
417+
server: UpstreamServer{},
418+
serverNGX: UpstreamServer{SlowStart: "10s"},
419+
expected: false,
420+
},
421+
{
422+
server: UpstreamServer{SlowStart: "20s"},
423+
serverNGX: UpstreamServer{SlowStart: "10s"},
424+
expected: false,
425+
},
426+
}
427+
428+
for _, test := range tests {
429+
result := haveSameParameters(test.server, test.serverNGX)
430+
if result != test.expected {
431+
t.Errorf("haveSameParameters(%v, %v) returned %v but expected %v", test.server, test.serverNGX, result, test.expected)
432+
}
433+
}
434+
}
435+
436+
func TestHaveStreamSameParameters(t *testing.T) {
437+
tests := []struct {
438+
server StreamUpstreamServer
439+
serverNGX StreamUpstreamServer
440+
expected bool
441+
}{
442+
{
443+
server: StreamUpstreamServer{},
444+
serverNGX: StreamUpstreamServer{},
445+
expected: true,
446+
},
447+
{
448+
server: StreamUpstreamServer{ID: 2},
449+
serverNGX: StreamUpstreamServer{ID: 3},
450+
expected: true,
451+
},
452+
{
453+
server: StreamUpstreamServer{},
454+
serverNGX: StreamUpstreamServer{
455+
MaxConns: &defaultMaxConns,
456+
MaxFails: &defaultMaxFails,
457+
FailTimeout: defaultFailTimeout,
458+
SlowStart: defaultSlowStart,
459+
Backup: &defaultBackup,
460+
Weight: &defaultWeight,
461+
Down: &defaultDown,
462+
},
463+
expected: true,
464+
},
465+
{
466+
server: StreamUpstreamServer{
467+
ID: 1,
468+
Server: "127.0.0.1",
469+
MaxConns: &defaultMaxConns,
470+
MaxFails: &defaultMaxFails,
471+
FailTimeout: defaultFailTimeout,
472+
SlowStart: defaultSlowStart,
473+
Backup: &defaultBackup,
474+
Weight: &defaultWeight,
475+
Down: &defaultDown,
476+
},
477+
serverNGX: StreamUpstreamServer{
478+
ID: 1,
479+
Server: "127.0.0.1",
480+
MaxConns: &defaultMaxConns,
481+
MaxFails: &defaultMaxFails,
482+
FailTimeout: defaultFailTimeout,
483+
SlowStart: defaultSlowStart,
484+
Backup: &defaultBackup,
485+
Weight: &defaultWeight,
486+
Down: &defaultDown,
487+
},
488+
expected: true,
489+
},
490+
{
491+
server: StreamUpstreamServer{SlowStart: "10s"},
492+
serverNGX: StreamUpstreamServer{},
493+
expected: false,
494+
},
495+
{
496+
server: StreamUpstreamServer{},
497+
serverNGX: StreamUpstreamServer{SlowStart: "10s"},
498+
expected: false,
499+
},
500+
{
501+
server: StreamUpstreamServer{SlowStart: "20s"},
502+
serverNGX: StreamUpstreamServer{SlowStart: "10s"},
503+
expected: false,
504+
},
505+
}
506+
507+
for _, test := range tests {
508+
result := haveStreamSameParameters(test.server, test.serverNGX)
509+
if result != test.expected {
510+
t.Errorf("haveStreamSameParameters(%v, %v) returned %v but expected %v", test.server, test.serverNGX, result, test.expected)
511+
}
512+
}
513+
}

0 commit comments

Comments
 (0)