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  }