github.com/scorpionis/hub@v2.2.1+incompatible/commands/args_test.go (about) 1 package commands 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/github/hub/Godeps/_workspace/src/github.com/bmizerany/assert" 8 ) 9 10 func TestNewArgs(t *testing.T) { 11 args := NewArgs([]string{}) 12 assert.Equal(t, "", args.Command) 13 assert.Equal(t, 0, args.ParamsSize()) 14 15 args = NewArgs([]string{"command"}) 16 assert.Equal(t, "command", args.Command) 17 assert.Equal(t, 0, args.ParamsSize()) 18 19 args = NewArgs([]string{"command", "args"}) 20 assert.Equal(t, "command", args.Command) 21 assert.Equal(t, 1, args.ParamsSize()) 22 23 args = NewArgs([]string{"--noop", "command", "args"}) 24 assert.Equal(t, "command", args.Command) 25 assert.Equal(t, 1, args.ParamsSize()) 26 assert.T(t, args.Noop) 27 28 args = NewArgs([]string{"--version"}) 29 assert.Equal(t, "version", args.Command) 30 assert.Equal(t, 0, args.ParamsSize()) 31 32 args = NewArgs([]string{"--help"}) 33 assert.Equal(t, "help", args.Command) 34 assert.Equal(t, 0, args.ParamsSize()) 35 36 args = NewArgs([]string{"--noop", "--version"}) 37 assert.T(t, args.Noop) 38 assert.Equal(t, "version", args.Command) 39 40 args = NewArgs([]string{"-c", "foo=bar", "--git-dir=path", "--bare"}) 41 assert.Equal(t, 5, len(args.GlobalFlags)) 42 assert.Equal(t, "-c foo=bar --bare --git-dir path", strings.Join(args.GlobalFlags, " ")) 43 } 44 45 func TestArgs_Words(t *testing.T) { 46 args := NewArgs([]string{"--no-ff", "master"}) 47 a := args.Words() 48 49 assert.Equal(t, 1, len(a)) 50 assert.Equal(t, "master", a[0]) 51 } 52 53 func TestArgs_Insert(t *testing.T) { 54 args := NewArgs([]string{"command", "1", "2", "3", "4"}) 55 args.InsertParam(0, "foo") 56 57 assert.Equal(t, 5, args.ParamsSize()) 58 assert.Equal(t, "foo", args.FirstParam()) 59 60 args = NewArgs([]string{"command", "1", "2", "3", "4"}) 61 args.InsertParam(3, "foo") 62 63 assert.Equal(t, 5, args.ParamsSize()) 64 assert.Equal(t, "foo", args.Params[3]) 65 66 args = NewArgs([]string{"checkout", "-b"}) 67 args.InsertParam(1, "foo") 68 69 assert.Equal(t, 2, args.ParamsSize()) 70 assert.Equal(t, "-b", args.Params[0]) 71 assert.Equal(t, "foo", args.Params[1]) 72 73 args = NewArgs([]string{"checkout"}) 74 args.InsertParam(1, "foo") 75 76 assert.Equal(t, 1, args.ParamsSize()) 77 assert.Equal(t, "foo", args.Params[0]) 78 } 79 80 func TestArgs_Remove(t *testing.T) { 81 args := NewArgs([]string{"1", "2", "3", "4"}) 82 83 item := args.RemoveParam(1) 84 assert.Equal(t, "3", item) 85 assert.Equal(t, 2, args.ParamsSize()) 86 assert.Equal(t, "2", args.FirstParam()) 87 assert.Equal(t, "4", args.GetParam(1)) 88 }