github.com/jlmeeker/kismatic@v1.10.1-0.20180612190640-57f9005a1f1a/pkg/install/kube_controller_manager_options_test.go (about) 1 package install 2 3 import ( 4 "fmt" 5 "strings" 6 "testing" 7 ) 8 9 func TestValidateKubeControllerManagerOptions(t *testing.T) { 10 tests := []struct { 11 opts KubeControllerManagerOptions 12 valid bool 13 protectedFields []string 14 }{ 15 { 16 opts: KubeControllerManagerOptions{}, 17 valid: true, 18 }, 19 { 20 opts: KubeControllerManagerOptions{ 21 Overrides: map[string]string{ 22 "foobar": "baz", 23 }, 24 }, 25 valid: true, 26 }, 27 { 28 opts: KubeControllerManagerOptions{ 29 Overrides: map[string]string{ 30 "cluster-cidr": "1.2.3.4", 31 }, 32 }, 33 valid: false, 34 protectedFields: []string{"cluster-cidr"}, 35 }, 36 { 37 opts: KubeControllerManagerOptions{ 38 Overrides: map[string]string{ 39 "cluster-cidr": "1.2.3.4", 40 "kubeconfig": "/foo/.kube/config", 41 }, 42 }, 43 valid: false, 44 protectedFields: []string{"cluster-cidr", "kubeconfig"}, 45 }, 46 { 47 opts: KubeControllerManagerOptions{ 48 Overrides: map[string]string{ 49 "cluster-cidr": "1.2.3.4", 50 "kubeconfig": "/foo/.kube/config", 51 "v": "3", 52 }, 53 }, 54 valid: false, 55 protectedFields: []string{"cluster-cidr", "kubeconfig"}, 56 }, 57 } 58 for _, test := range tests { 59 ok, err := test.opts.validate() 60 assertEqual(t, ok, test.valid) 61 if !test.valid { 62 assertEqual(t, err, []error{fmt.Errorf("Kube Controller Manager Option(s) [%v] cannot be overridden", strings.Join(test.protectedFields, ", "))}) 63 } 64 } 65 }