args_test.go 1.4 KB
Newer Older
J
Jingwen Owen Ou 已提交
1 2 3 4
package commands

import (
	"testing"
5 6

	"github.com/bmizerany/assert"
J
Jingwen Owen Ou 已提交
7 8
)

J
Jingwen Owen Ou 已提交
9 10 11
func TestNewArgs(t *testing.T) {
	args := NewArgs([]string{})
	assert.Equal(t, "", args.Command)
J
Jingwen Owen Ou 已提交
12
	assert.Equal(t, 0, args.ParamsSize())
J
Jingwen Owen Ou 已提交
13 14 15

	args = NewArgs([]string{"command"})
	assert.Equal(t, "command", args.Command)
J
Jingwen Owen Ou 已提交
16
	assert.Equal(t, 0, args.ParamsSize())
J
Jingwen Owen Ou 已提交
17 18 19

	args = NewArgs([]string{"command", "args"})
	assert.Equal(t, "command", args.Command)
J
Jingwen Owen Ou 已提交
20
	assert.Equal(t, 1, args.ParamsSize())
21 22 23 24 25

	args = NewArgs([]string{"--noop", "command", "args"})
	assert.Equal(t, "command", args.Command)
	assert.Equal(t, 1, args.ParamsSize())
	assert.T(t, args.Noop)
J
Jingwen Owen Ou 已提交
26 27
}

28 29 30 31 32 33 34 35
func TestArgs_Words(t *testing.T) {
	args := NewArgs([]string{"--no-ff", "master"})
	a := args.Words()

	assert.Equal(t, 1, len(a))
	assert.Equal(t, "master", a[0])
}

J
Jingwen Owen Ou 已提交
36
func TestArgs_Insert(t *testing.T) {
J
Jingwen Owen Ou 已提交
37 38 39 40 41 42 43 44 45 46 47 48 49
	args := NewArgs([]string{"command", "1", "2", "3", "4"})
	args.InsertParam(0, "foo")

	assert.Equal(t, 5, args.ParamsSize())
	assert.Equal(t, "foo", args.FirstParam())

	args = NewArgs([]string{"command", "1", "2", "3", "4"})
	args.InsertParam(3, "foo")

	assert.Equal(t, 5, args.ParamsSize())
	assert.Equal(t, "foo", args.Params[3])
}

J
Jingwen Owen Ou 已提交
50
func TestArgs_Remove(t *testing.T) {
J
Jingwen Owen Ou 已提交
51
	args := NewArgs([]string{"1", "2", "3", "4"})
J
Jingwen Owen Ou 已提交
52

J
Jingwen Owen Ou 已提交
53
	item := args.RemoveParam(1)
J
Jingwen Owen Ou 已提交
54
	assert.Equal(t, "3", item)
J
Jingwen Owen Ou 已提交
55 56 57
	assert.Equal(t, 2, args.ParamsSize())
	assert.Equal(t, "2", args.FirstParam())
	assert.Equal(t, "4", args.GetParam(1))
J
Jingwen Owen Ou 已提交
58
}