summaryrefslogtreecommitdiff
path: root/subcommand_test.go
diff options
context:
space:
mode:
authorAlex Flint <[email protected]>2019-05-03 16:08:29 -0700
committerAlex Flint <[email protected]>2019-05-03 16:08:29 -0700
commitbd97edec87a0541321c6e2529150e315ee11cd8b (patch)
tree2da1d9c08c5b829d591f915a5113ec03a0ef2f1a /subcommand_test.go
parent3c5e61a2927728226af0abafab402c511c4e27ac (diff)
add Parser.Subcommand and Parser.SubcommandNames
Diffstat (limited to 'subcommand_test.go')
-rw-r--r--subcommand_test.go34
1 files changed, 25 insertions, 9 deletions
diff --git a/subcommand_test.go b/subcommand_test.go
index fdc3ff4..c34ab01 100644
--- a/subcommand_test.go
+++ b/subcommand_test.go
@@ -41,9 +41,11 @@ func TestMinimalSubcommand(t *testing.T) {
var args struct {
List *listCmd `arg:"subcommand"`
}
- err := parse("list", &args)
+ p, err := pparse("list", &args)
require.NoError(t, err)
assert.NotNil(t, args.List)
+ assert.Equal(t, args.List, p.Subcommand())
+ assert.Equal(t, []string{"list"}, p.SubcommandNames())
}
func TestNoSuchSubcommand(t *testing.T) {
@@ -52,7 +54,7 @@ func TestNoSuchSubcommand(t *testing.T) {
var args struct {
List *listCmd `arg:"subcommand"`
}
- err := parse("invalid", &args)
+ _, err := pparse("invalid", &args)
assert.Error(t, err)
}
@@ -62,9 +64,11 @@ func TestNamedSubcommand(t *testing.T) {
var args struct {
List *listCmd `arg:"subcommand:ls"`
}
- err := parse("ls", &args)
+ p, err := pparse("ls", &args)
require.NoError(t, err)
assert.NotNil(t, args.List)
+ assert.Equal(t, args.List, p.Subcommand())
+ assert.Equal(t, []string{"ls"}, p.SubcommandNames())
}
func TestEmptySubcommand(t *testing.T) {
@@ -73,9 +77,11 @@ func TestEmptySubcommand(t *testing.T) {
var args struct {
List *listCmd `arg:"subcommand"`
}
- err := parse("", &args)
+ p, err := pparse("", &args)
require.NoError(t, err)
assert.Nil(t, args.List)
+ assert.Nil(t, p.Subcommand())
+ assert.Empty(t, p.SubcommandNames())
}
func TestTwoSubcommands(t *testing.T) {
@@ -87,10 +93,12 @@ func TestTwoSubcommands(t *testing.T) {
Get *getCmd `arg:"subcommand"`
List *listCmd `arg:"subcommand"`
}
- err := parse("list", &args)
+ p, err := pparse("list", &args)
require.NoError(t, err)
assert.Nil(t, args.Get)
assert.NotNil(t, args.List)
+ assert.Equal(t, args.List, p.Subcommand())
+ assert.Equal(t, []string{"list"}, p.SubcommandNames())
}
func TestSubcommandsWithOptions(t *testing.T) {
@@ -185,35 +193,43 @@ func TestNestedSubcommands(t *testing.T) {
{
var args root
- err := parse("grandparent parent child", &args)
+ p, err := pparse("grandparent parent child", &args)
require.NoError(t, err)
require.NotNil(t, args.Grandparent)
require.NotNil(t, args.Grandparent.Parent)
require.NotNil(t, args.Grandparent.Parent.Child)
+ assert.Equal(t, args.Grandparent.Parent.Child, p.Subcommand())
+ assert.Equal(t, []string{"grandparent", "parent", "child"}, p.SubcommandNames())
}
{
var args root
- err := parse("grandparent parent", &args)
+ p, err := pparse("grandparent parent", &args)
require.NoError(t, err)
require.NotNil(t, args.Grandparent)
require.NotNil(t, args.Grandparent.Parent)
require.Nil(t, args.Grandparent.Parent.Child)
+ assert.Equal(t, args.Grandparent.Parent, p.Subcommand())
+ assert.Equal(t, []string{"grandparent", "parent"}, p.SubcommandNames())
}
{
var args root
- err := parse("grandparent", &args)
+ p, err := pparse("grandparent", &args)
require.NoError(t, err)
require.NotNil(t, args.Grandparent)
require.Nil(t, args.Grandparent.Parent)
+ assert.Equal(t, args.Grandparent, p.Subcommand())
+ assert.Equal(t, []string{"grandparent"}, p.SubcommandNames())
}
{
var args root
- err := parse("", &args)
+ p, err := pparse("", &args)
require.NoError(t, err)
require.Nil(t, args.Grandparent)
+ assert.Nil(t, p.Subcommand())
+ assert.Empty(t, p.SubcommandNames())
}
}