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  }