github.com/jrxfive/nomad@v0.6.1-0.20170802162750-1fef470e89bf/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  				"ca-cert",
    27  				"ca-path",
    28  				"client-cert",
    29  				"client-key",
    30  				"insecure",
    31  				"tls-skip-verify",
    32  			},
    33  		},
    34  	}
    35  
    36  	for i, tc := range cases {
    37  		var m Meta
    38  		fs := m.FlagSet("foo", tc.Flags)
    39  
    40  		actual := make([]string, 0, 0)
    41  		fs.VisitAll(func(f *flag.Flag) {
    42  			actual = append(actual, f.Name)
    43  		})
    44  		sort.Strings(actual)
    45  		sort.Strings(tc.Expected)
    46  
    47  		if !reflect.DeepEqual(actual, tc.Expected) {
    48  			t.Fatalf("%d: flags: %#v\n\nExpected: %#v\nGot: %#v",
    49  				i, tc.Flags, tc.Expected, actual)
    50  		}
    51  	}
    52  }