github.com/huiliang/nomad@v0.2.1-0.20151124023127-7a8b664699ff/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  	cases := []struct {
    12  		Flags    FlagSetFlags
    13  		Expected []string
    14  	}{
    15  		{
    16  			FlagSetNone,
    17  			[]string{},
    18  		},
    19  		{
    20  			FlagSetClient,
    21  			[]string{"address"},
    22  		},
    23  	}
    24  
    25  	for i, tc := range cases {
    26  		var m Meta
    27  		fs := m.FlagSet("foo", tc.Flags)
    28  
    29  		actual := make([]string, 0, 0)
    30  		fs.VisitAll(func(f *flag.Flag) {
    31  			actual = append(actual, f.Name)
    32  		})
    33  		sort.Strings(actual)
    34  		sort.Strings(tc.Expected)
    35  
    36  		if !reflect.DeepEqual(actual, tc.Expected) {
    37  			t.Fatalf("%d: flags: %#v\n\nExpected: %#v\nGot: %#v",
    38  				i, tc.Flags, tc.Expected, actual)
    39  		}
    40  	}
    41  }