github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/cli/context_test.go (about) 1 package cli 2 3 import ( 4 "flag" 5 "testing" 6 "time" 7 ) 8 9 func TestNewContext(t *testing.T) { 10 set := flag.NewFlagSet("test", 0) 11 set.Int("myflag", 12, "doc") 12 globalSet := flag.NewFlagSet("test", 0) 13 globalSet.Int("myflag", 42, "doc") 14 globalCtx := NewContext(nil, globalSet, nil) 15 command := Command{Name: "mycommand"} 16 c := NewContext(nil, set, globalCtx) 17 c.Command = command 18 expect(t, c.Int("myflag"), 12) 19 expect(t, c.GlobalInt("myflag"), 42) 20 expect(t, c.Command.Name, "mycommand") 21 } 22 23 func TestContext_Int(t *testing.T) { 24 set := flag.NewFlagSet("test", 0) 25 set.Int("myflag", 12, "doc") 26 c := NewContext(nil, set, nil) 27 expect(t, c.Int("myflag"), 12) 28 } 29 30 func TestContext_Duration(t *testing.T) { 31 set := flag.NewFlagSet("test", 0) 32 set.Duration("myflag", time.Duration(12*time.Second), "doc") 33 c := NewContext(nil, set, nil) 34 expect(t, c.Duration("myflag"), time.Duration(12*time.Second)) 35 } 36 37 func TestContext_String(t *testing.T) { 38 set := flag.NewFlagSet("test", 0) 39 set.String("myflag", "hello world", "doc") 40 c := NewContext(nil, set, nil) 41 expect(t, c.String("myflag"), "hello world") 42 } 43 44 func TestContext_Bool(t *testing.T) { 45 set := flag.NewFlagSet("test", 0) 46 set.Bool("myflag", false, "doc") 47 c := NewContext(nil, set, nil) 48 expect(t, c.Bool("myflag"), false) 49 } 50 51 func TestContext_BoolT(t *testing.T) { 52 set := flag.NewFlagSet("test", 0) 53 set.Bool("myflag", true, "doc") 54 c := NewContext(nil, set, nil) 55 expect(t, c.BoolT("myflag"), true) 56 } 57 58 func TestContext_Args(t *testing.T) { 59 set := flag.NewFlagSet("test", 0) 60 set.Bool("myflag", false, "doc") 61 c := NewContext(nil, set, nil) 62 set.Parse([]string{"--myflag", "bat", "baz"}) 63 expect(t, len(c.Args()), 2) 64 expect(t, c.Bool("myflag"), true) 65 } 66 67 func TestContext_NArg(t *testing.T) { 68 set := flag.NewFlagSet("test", 0) 69 set.Bool("myflag", false, "doc") 70 c := NewContext(nil, set, nil) 71 set.Parse([]string{"--myflag", "bat", "baz"}) 72 expect(t, c.NArg(), 2) 73 } 74 75 func TestContext_IsSet(t *testing.T) { 76 set := flag.NewFlagSet("test", 0) 77 set.Bool("myflag", false, "doc") 78 set.String("otherflag", "hello world", "doc") 79 globalSet := flag.NewFlagSet("test", 0) 80 globalSet.Bool("myflagGlobal", true, "doc") 81 globalCtx := NewContext(nil, globalSet, nil) 82 c := NewContext(nil, set, globalCtx) 83 set.Parse([]string{"--myflag", "bat", "baz"}) 84 globalSet.Parse([]string{"--myflagGlobal", "bat", "baz"}) 85 expect(t, c.IsSet("myflag"), true) 86 expect(t, c.IsSet("otherflag"), false) 87 expect(t, c.IsSet("bogusflag"), false) 88 expect(t, c.IsSet("myflagGlobal"), false) 89 } 90 91 func TestContext_GlobalIsSet(t *testing.T) { 92 set := flag.NewFlagSet("test", 0) 93 set.Bool("myflag", false, "doc") 94 set.String("otherflag", "hello world", "doc") 95 globalSet := flag.NewFlagSet("test", 0) 96 globalSet.Bool("myflagGlobal", true, "doc") 97 globalSet.Bool("myflagGlobalUnset", true, "doc") 98 globalCtx := NewContext(nil, globalSet, nil) 99 c := NewContext(nil, set, globalCtx) 100 set.Parse([]string{"--myflag", "bat", "baz"}) 101 globalSet.Parse([]string{"--myflagGlobal", "bat", "baz"}) 102 expect(t, c.GlobalIsSet("myflag"), false) 103 expect(t, c.GlobalIsSet("otherflag"), false) 104 expect(t, c.GlobalIsSet("bogusflag"), false) 105 expect(t, c.GlobalIsSet("myflagGlobal"), true) 106 expect(t, c.GlobalIsSet("myflagGlobalUnset"), false) 107 expect(t, c.GlobalIsSet("bogusGlobal"), false) 108 } 109 110 func TestContext_NumFlags(t *testing.T) { 111 set := flag.NewFlagSet("test", 0) 112 set.Bool("myflag", false, "doc") 113 set.String("otherflag", "hello world", "doc") 114 globalSet := flag.NewFlagSet("test", 0) 115 globalSet.Bool("myflagGlobal", true, "doc") 116 globalCtx := NewContext(nil, globalSet, nil) 117 c := NewContext(nil, set, globalCtx) 118 set.Parse([]string{"--myflag", "--otherflag=foo"}) 119 globalSet.Parse([]string{"--myflagGlobal"}) 120 expect(t, c.NumFlags(), 2) 121 }