Files
velero/pkg/cmd/util/flag/accessors_test.go
Wenkai Yin(尹文开) e92047c43e Add unit test cases for pkg/cmd/util/flag package
Add unit test cases for pkg/cmd/util/flag package

Fixes #6253

Signed-off-by: Wenkai Yin(尹文开) <yinw@vmware.com>
2023-06-01 10:29:11 +08:00

46 lines
1.0 KiB
Go

package flag
import (
"testing"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
)
func TestGetOptionalStringFlag(t *testing.T) {
flagName := "flag"
// not specified
cmd := &cobra.Command{}
assert.Equal(t, "", GetOptionalStringFlag(cmd, flagName))
// specified
cmd.Flags().String(flagName, "value", "")
assert.Equal(t, "value", GetOptionalStringFlag(cmd, flagName))
}
func TestGetOptionalBoolFlag(t *testing.T) {
flagName := "flag"
// not specified
cmd := &cobra.Command{}
assert.False(t, GetOptionalBoolFlag(cmd, flagName))
// specified
cmd.Flags().Bool(flagName, true, "")
assert.True(t, GetOptionalBoolFlag(cmd, flagName))
}
func TestGetOptionalStringArrayFlag(t *testing.T) {
flagName := "flag"
// not specified
cmd := &cobra.Command{}
assert.Equal(t, []string{}, GetOptionalStringArrayFlag(cmd, flagName))
// specified
values := NewStringArray("value")
cmd.Flags().Var(&values, flagName, "")
assert.Equal(t, []string{"value"}, GetOptionalStringArrayFlag(cmd, flagName))
}