package flags import ( "testing" "k8s.io/kubernetes/pkg/util/sets" ) func TestExpand(t *testing.T) { flag := NewComponentFlag(nil, "1", "2") if x := flag.Expand("1"); !x.Equal(sets.NewString("1")) { t.Fatalf("unexpected: %#v", x) } if x := flag.Expand("2"); !x.Equal(sets.NewString("2")) { t.Fatalf("unexpected: %#v", x) } if x := flag.Expand("1,2"); !x.Equal(sets.NewString("1", "2")) { t.Fatalf("unexpected: %#v", x) } if x := flag.Expand("3"); !x.Equal(sets.NewString("3")) { t.Fatalf("unexpected: %#v", x) } flag = NewComponentFlag(map[string][]string{"1": {"3", "4"}}, "3", "2", "4") if x := flag.Expand("1"); !x.Equal(sets.NewString("3", "4")) { t.Fatalf("unexpected: %#v", x) } if x := flag.Expand("1,2"); !x.Equal(sets.NewString("3", "4", "2")) { t.Fatalf("unexpected: %#v", x) } } func TestActual(t *testing.T) { flag := NewComponentFlag(nil, "1", "2") flag.enabled = "1" if x, err := flag.Validate(); err != nil || !x.Equal(sets.NewString("1")) { t.Fatalf("unexpected %#v: %v", x, err) } flag = NewComponentFlag(nil, "1", "2") flag.enabled = "" if x, err := flag.Validate(); err != nil || !x.Equal(sets.NewString()) { t.Fatalf("unexpected %#v: %v", x, err) } flag = NewComponentFlag(nil, "1", "2") flag.enabled = "1,2,3" if x, err := flag.Validate(); err == nil || !x.Equal(sets.NewString()) { t.Fatalf("unexpected %#v: %v", x, err) } flag = NewComponentFlag(nil, "1", "2") flag.enabled = "3" if x, err := flag.Validate(); err == nil || !x.Equal(sets.NewString()) { t.Fatalf("unexpected %#v: %v", x, err) } flag = NewComponentFlag(map[string][]string{"3": {"1", "2"}}, "1", "2") flag.enabled = "3" if x, err := flag.Validate(); err != nil || !x.Equal(sets.NewString("1", "2")) { t.Fatalf("unexpected %#v: %v", x, err) } flag = NewComponentFlag(map[string][]string{"3": {"1", "2"}}, "1", "2") flag.enabled = "1,3" if x, err := flag.Validate(); err != nil || !x.Equal(sets.NewString("1", "2")) { t.Fatalf("unexpected %#v: %v", x, err) } }