@@ -490,59 +490,146 @@ func TestHasVsStatusChanged(t *testing.T) {
490
490
reason := "AddedOrUpdated"
491
491
msg := "Configuration was added or updated"
492
492
493
+ // Create a statusUpdater with some external endpoints
494
+ su := & statusUpdater {
495
+ externalEndpoints : []conf_v1.ExternalEndpoint {
496
+ {
497
+ IP : "1.2.3.4" ,
498
+ Ports : "80,443" ,
499
+ },
500
+ },
501
+ }
502
+
493
503
tests := []struct {
494
504
expected bool
495
505
vs conf_v1.VirtualServer
506
+ desc string
496
507
}{
497
508
{
498
509
expected : false ,
510
+ desc : "no change in status or external endpoints" ,
499
511
vs : conf_v1.VirtualServer {
500
512
Status : conf_v1.VirtualServerStatus {
501
513
State : state ,
502
514
Reason : reason ,
503
515
Message : msg ,
516
+ ExternalEndpoints : []conf_v1.ExternalEndpoint {
517
+ {
518
+ IP : "1.2.3.4" ,
519
+ Ports : "80,443" ,
520
+ },
521
+ },
504
522
},
505
523
},
506
524
},
507
525
{
508
526
expected : true ,
527
+ desc : "different state" ,
509
528
vs : conf_v1.VirtualServer {
510
529
Status : conf_v1.VirtualServerStatus {
511
- State : "DifferentState " ,
530
+ State : "Invalid " ,
512
531
Reason : reason ,
513
532
Message : msg ,
533
+ ExternalEndpoints : []conf_v1.ExternalEndpoint {
534
+ {
535
+ IP : "1.2.3.4" ,
536
+ Ports : "80,443" ,
537
+ },
538
+ },
514
539
},
515
540
},
516
541
},
517
542
{
518
543
expected : true ,
544
+ desc : "different reason" ,
519
545
vs : conf_v1.VirtualServer {
520
546
Status : conf_v1.VirtualServerStatus {
521
547
State : state ,
522
548
Reason : "DifferentReason" ,
523
549
Message : msg ,
550
+ ExternalEndpoints : []conf_v1.ExternalEndpoint {
551
+ {
552
+ IP : "1.2.3.4" ,
553
+ Ports : "80,443" ,
554
+ },
555
+ },
524
556
},
525
557
},
526
558
},
527
559
{
528
560
expected : true ,
561
+ desc : "different message" ,
529
562
vs : conf_v1.VirtualServer {
530
563
Status : conf_v1.VirtualServerStatus {
531
564
State : state ,
532
565
Reason : reason ,
533
566
Message : "DifferentMessage" ,
567
+ ExternalEndpoints : []conf_v1.ExternalEndpoint {
568
+ {
569
+ IP : "1.2.3.4" ,
570
+ Ports : "80,443" ,
571
+ },
572
+ },
573
+ },
574
+ },
575
+ },
576
+ {
577
+ expected : true ,
578
+ desc : "different external endpoints - different IP" ,
579
+ vs : conf_v1.VirtualServer {
580
+ Status : conf_v1.VirtualServerStatus {
581
+ State : state ,
582
+ Reason : reason ,
583
+ Message : msg ,
584
+ ExternalEndpoints : []conf_v1.ExternalEndpoint {
585
+ {
586
+ IP : "5.6.7.8" ,
587
+ Ports : "80,443" ,
588
+ },
589
+ },
590
+ },
591
+ },
592
+ },
593
+ {
594
+ expected : true ,
595
+ desc : "different external endpoints - different ports" ,
596
+ vs : conf_v1.VirtualServer {
597
+ Status : conf_v1.VirtualServerStatus {
598
+ State : state ,
599
+ Reason : reason ,
600
+ Message : msg ,
601
+ ExternalEndpoints : []conf_v1.ExternalEndpoint {
602
+ {
603
+ IP : "1.2.3.4" ,
604
+ Ports : "8080,8443" ,
605
+ },
606
+ },
607
+ },
608
+ },
609
+ },
610
+ {
611
+ expected : true ,
612
+ desc : "missing external endpoints in VS" ,
613
+ vs : conf_v1.VirtualServer {
614
+ Status : conf_v1.VirtualServerStatus {
615
+ State : state ,
616
+ Reason : reason ,
617
+ Message : msg ,
618
+ // No ExternalEndpoints
534
619
},
535
620
},
536
621
},
537
622
}
538
623
539
624
for _ , test := range tests {
540
625
test := test // address gosec G601
541
- changed := hasVsStatusChanged (& test .vs , state , reason , msg )
626
+ t .Run (test .desc , func (t * testing.T ) {
627
+ changed := su .hasVsStatusChanged (& test .vs , state , reason , msg )
542
628
543
- if changed != test .expected {
544
- t .Errorf ("hasVsStatusChanged(%v, %v, %v, %v) returned %v but expected %v." , test .vs , state , reason , msg , changed , test .expected )
545
- }
629
+ if changed != test .expected {
630
+ t .Errorf ("hasVsStatusChanged(%v, %v, %v, %v) returned %v but expected %v for test: %s" , test .vs , state , reason , msg , changed , test .expected , test .desc )
631
+ }
632
+ })
546
633
}
547
634
}
548
635
@@ -553,74 +640,153 @@ func TestHasVsrStatusChanged(t *testing.T) {
553
640
reason := "AddedOrUpdated"
554
641
msg := "Configuration was added or updated"
555
642
643
+ // Create a statusUpdater with some external endpoints
644
+ su := & statusUpdater {
645
+ externalEndpoints : []conf_v1.ExternalEndpoint {
646
+ {
647
+ IP : "1.2.3.4" ,
648
+ Ports : "80,443" ,
649
+ },
650
+ },
651
+ }
652
+
556
653
tests := []struct {
557
654
expected bool
558
655
vsr conf_v1.VirtualServerRoute
656
+ desc string
559
657
}{
560
658
{
561
659
expected : false ,
660
+ desc : "no change in status or external endpoints" ,
562
661
vsr : conf_v1.VirtualServerRoute {
563
662
Status : conf_v1.VirtualServerRouteStatus {
564
663
State : state ,
565
664
Reason : reason ,
566
665
Message : msg ,
567
666
ReferencedBy : referencedBy ,
667
+ ExternalEndpoints : []conf_v1.ExternalEndpoint {
668
+ {
669
+ IP : "1.2.3.4" ,
670
+ Ports : "80,443" ,
671
+ },
672
+ },
568
673
},
569
674
},
570
675
},
571
676
{
572
677
expected : true ,
678
+ desc : "different state" ,
573
679
vsr : conf_v1.VirtualServerRoute {
574
680
Status : conf_v1.VirtualServerRouteStatus {
575
- State : "DifferentState " ,
681
+ State : "Invalid " ,
576
682
Reason : reason ,
577
683
Message : msg ,
578
684
ReferencedBy : referencedBy ,
685
+ ExternalEndpoints : []conf_v1.ExternalEndpoint {
686
+ {
687
+ IP : "1.2.3.4" ,
688
+ Ports : "80,443" ,
689
+ },
690
+ },
579
691
},
580
692
},
581
693
},
582
694
{
583
695
expected : true ,
696
+ desc : "different reason" ,
584
697
vsr : conf_v1.VirtualServerRoute {
585
698
Status : conf_v1.VirtualServerRouteStatus {
586
699
State : state ,
587
700
Reason : "DifferentReason" ,
588
701
Message : msg ,
589
702
ReferencedBy : referencedBy ,
703
+ ExternalEndpoints : []conf_v1.ExternalEndpoint {
704
+ {
705
+ IP : "1.2.3.4" ,
706
+ Ports : "80,443" ,
707
+ },
708
+ },
590
709
},
591
710
},
592
711
},
593
712
{
594
713
expected : true ,
714
+ desc : "different message" ,
595
715
vsr : conf_v1.VirtualServerRoute {
596
716
Status : conf_v1.VirtualServerRouteStatus {
597
717
State : state ,
598
718
Reason : reason ,
599
719
Message : "DifferentMessage" ,
600
720
ReferencedBy : referencedBy ,
721
+ ExternalEndpoints : []conf_v1.ExternalEndpoint {
722
+ {
723
+ IP : "1.2.3.4" ,
724
+ Ports : "80,443" ,
725
+ },
726
+ },
601
727
},
602
728
},
603
729
},
604
730
{
605
731
expected : true ,
732
+ desc : "different referenced by" ,
606
733
vsr : conf_v1.VirtualServerRoute {
607
734
Status : conf_v1.VirtualServerRouteStatus {
608
735
State : state ,
609
736
Reason : reason ,
610
737
Message : msg ,
611
738
ReferencedBy : "DifferentReferencedBy" ,
739
+ ExternalEndpoints : []conf_v1.ExternalEndpoint {
740
+ {
741
+ IP : "1.2.3.4" ,
742
+ Ports : "80,443" ,
743
+ },
744
+ },
745
+ },
746
+ },
747
+ },
748
+ {
749
+ expected : true ,
750
+ desc : "different external endpoints - different IP" ,
751
+ vsr : conf_v1.VirtualServerRoute {
752
+ Status : conf_v1.VirtualServerRouteStatus {
753
+ State : state ,
754
+ Reason : reason ,
755
+ Message : msg ,
756
+ ReferencedBy : referencedBy ,
757
+ ExternalEndpoints : []conf_v1.ExternalEndpoint {
758
+ {
759
+ IP : "5.6.7.8" ,
760
+ Ports : "80,443" ,
761
+ },
762
+ },
763
+ },
764
+ },
765
+ },
766
+ {
767
+ expected : true ,
768
+ desc : "missing external endpoints in VSR" ,
769
+ vsr : conf_v1.VirtualServerRoute {
770
+ Status : conf_v1.VirtualServerRouteStatus {
771
+ State : state ,
772
+ Reason : reason ,
773
+ Message : msg ,
774
+ ReferencedBy : referencedBy ,
775
+ // No ExternalEndpoints
612
776
},
613
777
},
614
778
},
615
779
}
616
780
617
781
for _ , test := range tests {
618
782
test := test // address gosec G601
619
- changed := hasVsrStatusChanged (& test .vsr , state , reason , msg , referencedBy )
783
+ t .Run (test .desc , func (t * testing.T ) {
784
+ changed := su .hasVsrStatusChanged (& test .vsr , state , reason , msg , referencedBy )
620
785
621
- if changed != test .expected {
622
- t .Errorf ("hasVsrStatusChanged(%v, %v, %v, %v) returned %v but expected %v." , test .vsr , state , reason , msg , changed , test .expected )
623
- }
786
+ if changed != test .expected {
787
+ t .Errorf ("hasVsrStatusChanged(%v, %v, %v, %v) returned %v but expected %v for test: %s" , test .vsr , state , reason , msg , changed , test .expected , test .desc )
788
+ }
789
+ })
624
790
}
625
791
}
626
792
0 commit comments