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  }