github.com/quite/nomad@v0.8.6/command/meta_test.go (about)

     1  package command
     2  
     3  import (
     4  	"flag"
     5  	"reflect"
     6  	"sort"
     7  	"testing"
     8  )
     9  
    10  func TestMeta_FlagSet(t *testing.T) {
    11  	t.Parallel()
    12  	cases := []struct {
    13  		Flags    FlagSetFlags
    14  		Expected []string
    15  	}{
    16  		{
    17  			FlagSetNone,
    18  			[]string{},
    19  		},
    20  		{
    21  			FlagSetClient,
    22  			[]string{
    23  				"address",
    24  				"no-color",
    25  				"region",
    26  				"namespace",
    27  				"ca-cert",
    28  				"ca-path",
    29  				"client-cert",
    30  				"client-key",
    31  				"insecure",
    32  				"tls-skip-verify",
    33  				"token",
    34  			},
    35  		},
    36  	}
    37  
    38  	for i, tc := range cases {
    39  		var m Meta
    40  		fs := m.FlagSet("foo", tc.Flags)
    41  
    42  		actual := make([]string, 0, 0)
    43  		fs.VisitAll(func(f *flag.Flag) {
    44  			actual = append(actual, f.Name)
    45  		})
    46  		sort.Strings(actual)
    47  		sort.Strings(tc.Expected)
    48  
    49  		if !reflect.DeepEqual(actual, tc.Expected) {
    50  			t.Fatalf("%d: flags: %#v\n\nExpected: %#v\nGot: %#v",
    51  				i, tc.Flags, tc.Expected, actual)
    52  		}
    53  	}
    54  }