@@ -342,6 +342,78 @@ func TestParseMGMTConfigMapWarnings(t *testing.T) {
342342 },
343343 msg : "enforce-initial-report set empty" ,
344344 },
345+ {
346+ configMap : & v1.ConfigMap {
347+ Data : map [string ]string {
348+ "license-token-secret-name" : "license-token" ,
349+ "usage-report-interval" : "" ,
350+ },
351+ },
352+ msg : "usage-report-interval set empty" ,
353+ },
354+ {
355+ configMap : & v1.ConfigMap {
356+ Data : map [string ]string {
357+ "license-token-secret-name" : "license-token" ,
358+ "usage-report-interval" : "1s" ,
359+ },
360+ },
361+ msg : "usage-report-interval set below allowed value" ,
362+ },
363+ {
364+ configMap : & v1.ConfigMap {
365+ Data : map [string ]string {
366+ "license-token-secret-name" : "license-token" ,
367+ "usage-report-interval" : "1s" ,
368+ },
369+ },
370+ msg : "usage-report-interval set below allowed value" ,
371+ },
372+ {
373+ configMap : & v1.ConfigMap {
374+ Data : map [string ]string {
375+ "license-token-secret-name" : "license-token" ,
376+ "ssl-verify" : "10" ,
377+ },
378+ },
379+ msg : "ssl-verify set to an invalid int" ,
380+ },
381+ {
382+ configMap : & v1.ConfigMap {
383+ Data : map [string ]string {
384+ "license-token-secret-name" : "license-token" ,
385+ "ssl-verify" : "test" ,
386+ },
387+ },
388+ msg : "ssl-verify set to an invalid value" ,
389+ },
390+ {
391+ configMap : & v1.ConfigMap {
392+ Data : map [string ]string {
393+ "license-token-secret-name" : "license-token" ,
394+ "ssl-verify" : "" ,
395+ },
396+ },
397+ msg : "ssl-verify set to an empty string" ,
398+ },
399+ {
400+ configMap : & v1.ConfigMap {
401+ Data : map [string ]string {
402+ "license-token-secret-name" : "license-token" ,
403+ "resolver-ipv6" : "" ,
404+ },
405+ },
406+ msg : "resolver-ipv6 set to an empty string" ,
407+ },
408+ {
409+ configMap : & v1.ConfigMap {
410+ Data : map [string ]string {
411+ "license-token-secret-name" : "license-token" ,
412+ "resolver-ipv6" : "10" ,
413+ },
414+ },
415+ msg : "resolver-ipv6 set to an invalid int" ,
416+ },
345417 }
346418
347419 for _ , test := range tests {
@@ -450,6 +522,272 @@ func TestParseMGMTConfigMapEnforceInitialReport(t *testing.T) {
450522 }
451523}
452524
525+ func TestParseMGMTConfigMapSSLVerify (t * testing.T ) {
526+ t .Parallel ()
527+ tests := []struct {
528+ configMap * v1.ConfigMap
529+ want * MGMTConfigParams
530+ msg string
531+ }{
532+ {
533+ configMap : & v1.ConfigMap {
534+ Data : map [string ]string {
535+ "license-token-secret-name" : "license-token" ,
536+ "ssl-verify" : "false" ,
537+ },
538+ },
539+ want : & MGMTConfigParams {
540+ SSLVerify : BoolToPointerBool (false ),
541+ Secrets : MGMTSecrets {
542+ License : "license-token" ,
543+ },
544+ },
545+ msg : "ssl-verify set to false" ,
546+ },
547+ {
548+ configMap : & v1.ConfigMap {
549+ Data : map [string ]string {
550+ "license-token-secret-name" : "license-token" ,
551+ "ssl-verify" : "true" ,
552+ },
553+ },
554+ want : & MGMTConfigParams {
555+ SSLVerify : BoolToPointerBool (true ),
556+ Secrets : MGMTSecrets {
557+ License : "license-token" ,
558+ },
559+ },
560+ msg : "ssl-verify set to true" ,
561+ },
562+ }
563+
564+ for _ , test := range tests {
565+ t .Run (test .msg , func (t * testing.T ) {
566+ result , warnings , err := ParseMGMTConfigMap (context .Background (), test .configMap , makeEventLogger ())
567+ if err != nil {
568+ t .Fatal (err )
569+ }
570+ if warnings {
571+ t .Error ("Unexpected warnings" )
572+ }
573+
574+ if result .SSLVerify == nil {
575+ t .Errorf ("ssl-verify: want %v, got nil" , * test .want .SSLVerify )
576+ }
577+ if * result .SSLVerify != * test .want .SSLVerify {
578+ t .Errorf ("ssl-verify: want %v, got %v" , * test .want .SSLVerify , * result .SSLVerify )
579+ }
580+ })
581+ }
582+ }
583+
584+ func TestParseMGMTConfigMapUsageReportInterval (t * testing.T ) {
585+ t .Parallel ()
586+ tests := []struct {
587+ configMap * v1.ConfigMap
588+ want * MGMTConfigParams
589+ msg string
590+ }{
591+ {
592+ configMap : & v1.ConfigMap {
593+ Data : map [string ]string {
594+ "license-token-secret-name" : "license-token" ,
595+ "usage-report-interval" : "120s" ,
596+ },
597+ },
598+ want : & MGMTConfigParams {
599+ Interval : "120s" ,
600+ Secrets : MGMTSecrets {
601+ License : "license-token" ,
602+ },
603+ },
604+ msg : "usage report interval set to 120s" ,
605+ },
606+ {
607+ configMap : & v1.ConfigMap {
608+ Data : map [string ]string {
609+ "license-token-secret-name" : "license-token" ,
610+ "usage-report-interval" : "20m" ,
611+ },
612+ },
613+ want : & MGMTConfigParams {
614+ Interval : "20m" ,
615+ Secrets : MGMTSecrets {
616+ License : "license-token" ,
617+ },
618+ },
619+ msg : "usage report interval set to 20m" ,
620+ },
621+ {
622+ configMap : & v1.ConfigMap {
623+ Data : map [string ]string {
624+ "license-token-secret-name" : "license-token" ,
625+ "usage-report-interval" : "1h" ,
626+ },
627+ },
628+ want : & MGMTConfigParams {
629+ Interval : "1h" ,
630+ Secrets : MGMTSecrets {
631+ License : "license-token" ,
632+ },
633+ },
634+ msg : "usage report interval set to 1h" ,
635+ },
636+ {
637+ configMap : & v1.ConfigMap {
638+ Data : map [string ]string {
639+ "license-token-secret-name" : "license-token" ,
640+ "usage-report-interval" : "24h" ,
641+ },
642+ },
643+ want : & MGMTConfigParams {
644+ Interval : "24h" ,
645+ Secrets : MGMTSecrets {
646+ License : "license-token" ,
647+ },
648+ },
649+ msg : "usage report interval set to 24h" ,
650+ },
651+ }
652+
653+ for _ , test := range tests {
654+ t .Run (test .msg , func (t * testing.T ) {
655+ result , warnings , err := ParseMGMTConfigMap (context .Background (), test .configMap , makeEventLogger ())
656+ if err != nil {
657+ t .Fatal (err )
658+ }
659+ if warnings {
660+ t .Error ("Unexpected warnings" )
661+ }
662+
663+ if result .Interval == "" {
664+ t .Errorf ("UsageReportInterval: want %s, got empty string" , test .want .Interval )
665+ }
666+ if result .Interval != test .want .Interval {
667+ t .Errorf ("UsageReportInterval: want %v, got %v" , test .want .Interval , result .Interval )
668+ }
669+ })
670+ }
671+ }
672+
673+ func TestParseMGMTConfigMapResolverIPV6 (t * testing.T ) {
674+ t .Parallel ()
675+ tests := []struct {
676+ configMap * v1.ConfigMap
677+ want * MGMTConfigParams
678+ msg string
679+ }{
680+ {
681+ configMap : & v1.ConfigMap {
682+ Data : map [string ]string {
683+ "license-token-secret-name" : "license-token" ,
684+ "resolver-ipv6" : "false" ,
685+ },
686+ },
687+ want : & MGMTConfigParams {
688+ ResolverIPV6 : BoolToPointerBool (false ),
689+ Secrets : MGMTSecrets {
690+ License : "license-token" ,
691+ },
692+ },
693+ msg : "resolver-ipv6 set to false" ,
694+ },
695+ {
696+ configMap : & v1.ConfigMap {
697+ Data : map [string ]string {
698+ "license-token-secret-name" : "license-token" ,
699+ "resolver-ipv6" : "true" ,
700+ },
701+ },
702+ want : & MGMTConfigParams {
703+ ResolverIPV6 : BoolToPointerBool (true ),
704+ Secrets : MGMTSecrets {
705+ License : "license-token" ,
706+ },
707+ },
708+ msg : "resolver-ipv6 set to true" ,
709+ },
710+ }
711+
712+ for _ , test := range tests {
713+ t .Run (test .msg , func (t * testing.T ) {
714+ result , warnings , err := ParseMGMTConfigMap (context .Background (), test .configMap , makeEventLogger ())
715+ if err != nil {
716+ t .Fatal (err )
717+ }
718+ if warnings {
719+ t .Error ("Unexpected warnings" )
720+ }
721+
722+ if result .ResolverIPV6 == nil {
723+ t .Errorf ("resolver-ipv6: want %v, got nil" , * test .want .ResolverIPV6 )
724+ }
725+ if * result .ResolverIPV6 != * test .want .ResolverIPV6 {
726+ t .Errorf ("resolver-ipv6: want %v, got %v" , * test .want .ResolverIPV6 , * result .ResolverIPV6 )
727+ }
728+ })
729+ }
730+ }
731+
732+ func TestParseMGMTConfigMapUsageReportEndpoint (t * testing.T ) {
733+ t .Parallel ()
734+ tests := []struct {
735+ configMap * v1.ConfigMap
736+ want * MGMTConfigParams
737+ msg string
738+ }{
739+ {
740+ configMap : & v1.ConfigMap {
741+ Data : map [string ]string {
742+ "license-token-secret-name" : "license-token" ,
743+ "usage-report-endpoint" : "product.connect.nginx.com" ,
744+ },
745+ },
746+ want : & MGMTConfigParams {
747+ Endpoint : "product.connect.nginx.com" ,
748+ Secrets : MGMTSecrets {
749+ License : "license-token" ,
750+ },
751+ },
752+ msg : "usage report endpoint set to product.connect.nginx.com" ,
753+ },
754+ {
755+ configMap : & v1.ConfigMap {
756+ Data : map [string ]string {
757+ "license-token-secret-name" : "license-token" ,
758+ "usage-report-endpoint" : "product.connect.nginx.com:80" ,
759+ },
760+ },
761+ want : & MGMTConfigParams {
762+ Endpoint : "product.connect.nginx.com:80" ,
763+ Secrets : MGMTSecrets {
764+ License : "license-token" ,
765+ },
766+ },
767+ msg : "usage report endpoint set to product.connect.nginx.com with port 80" ,
768+ },
769+ }
770+
771+ for _ , test := range tests {
772+ t .Run (test .msg , func (t * testing.T ) {
773+ result , warnings , err := ParseMGMTConfigMap (context .Background (), test .configMap , makeEventLogger ())
774+ if err != nil {
775+ t .Fatal (err )
776+ }
777+ if warnings {
778+ t .Error ("Unexpected warnings" )
779+ }
780+
781+ if result .Endpoint == "" {
782+ t .Errorf ("UsageReportEndpoint: want %s, got empty string" , test .want .Endpoint )
783+ }
784+ if result .Endpoint != test .want .Endpoint {
785+ t .Errorf ("UsageReportEndpoint: want %v, got %v" , test .want .Endpoint , result .Endpoint )
786+ }
787+ })
788+ }
789+ }
790+
453791func makeEventLogger () record.EventRecorder {
454792 return record .NewFakeRecorder (1024 )
455793}
0 commit comments