diff options
| author | Alex Flint <[email protected]> | 2019-05-03 16:08:29 -0700 |
|---|---|---|
| committer | Alex Flint <[email protected]> | 2019-05-03 16:08:29 -0700 |
| commit | bd97edec87a0541321c6e2529150e315ee11cd8b (patch) | |
| tree | 2da1d9c08c5b829d591f915a5113ec03a0ef2f1a /subcommand_test.go | |
| parent | 3c5e61a2927728226af0abafab402c511c4e27ac (diff) | |
add Parser.Subcommand and Parser.SubcommandNames
Diffstat (limited to 'subcommand_test.go')
| -rw-r--r-- | subcommand_test.go | 34 |
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()) } } |
