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