github.com/trevoraustin/hub@v2.2.0-preview1.0.20141105230840-96d8bfc654cc+incompatible/commands/args_test.go (about) 1 package commands 2 3 import ( 4 "testing" 5 6 "github.com/bmizerany/assert" 7 ) 8 9 func TestNewArgs(t *testing.T) { 10 args := NewArgs([]string{}) 11 assert.Equal(t, "", args.Command) 12 assert.Equal(t, 0, args.ParamsSize()) 13 14 args = NewArgs([]string{"command"}) 15 assert.Equal(t, "command", args.Command) 16 assert.Equal(t, 0, args.ParamsSize()) 17 18 args = NewArgs([]string{"command", "args"}) 19 assert.Equal(t, "command", args.Command) 20 assert.Equal(t, 1, args.ParamsSize()) 21 22 args = NewArgs([]string{"--noop", "command", "args"}) 23 assert.Equal(t, "command", args.Command) 24 assert.Equal(t, 1, args.ParamsSize()) 25 assert.T(t, args.Noop) 26 27 args = NewArgs([]string{"--version"}) 28 assert.Equal(t, "version", args.Command) 29 assert.Equal(t, 0, args.ParamsSize()) 30 31 args = NewArgs([]string{"--help"}) 32 assert.Equal(t, "help", args.Command) 33 assert.Equal(t, 0, args.ParamsSize()) 34 } 35 36 func TestArgs_Words(t *testing.T) { 37 args := NewArgs([]string{"--no-ff", "master"}) 38 a := args.Words() 39 40 assert.Equal(t, 1, len(a)) 41 assert.Equal(t, "master", a[0]) 42 } 43 44 func TestArgs_Insert(t *testing.T) { 45 args := NewArgs([]string{"command", "1", "2", "3", "4"}) 46 args.InsertParam(0, "foo") 47 48 assert.Equal(t, 5, args.ParamsSize()) 49 assert.Equal(t, "foo", args.FirstParam()) 50 51 args = NewArgs([]string{"command", "1", "2", "3", "4"}) 52 args.InsertParam(3, "foo") 53 54 assert.Equal(t, 5, args.ParamsSize()) 55 assert.Equal(t, "foo", args.Params[3]) 56 } 57 58 func TestArgs_Remove(t *testing.T) { 59 args := NewArgs([]string{"1", "2", "3", "4"}) 60 61 item := args.RemoveParam(1) 62 assert.Equal(t, "3", item) 63 assert.Equal(t, 2, args.ParamsSize()) 64 assert.Equal(t, "2", args.FirstParam()) 65 assert.Equal(t, "4", args.GetParam(1)) 66 }