github.com/shrimpyuk/bor@v0.2.15-0.20220224151350-fb4ec6020bae/internal/cli/flagset/flagset_test.go (about)

     1  package flagset
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestFlagsetBool(t *testing.T) {
    11  	f := NewFlagSet("")
    12  
    13  	value := false
    14  	f.BoolFlag(&BoolFlag{
    15  		Name:  "flag",
    16  		Value: &value,
    17  	})
    18  
    19  	assert.NoError(t, f.Parse([]string{"--flag", "true"}))
    20  	assert.Equal(t, value, true)
    21  }
    22  
    23  func TestFlagsetSliceString(t *testing.T) {
    24  	f := NewFlagSet("")
    25  
    26  	value := []string{}
    27  	f.SliceStringFlag(&SliceStringFlag{
    28  		Name:  "flag",
    29  		Value: &value,
    30  	})
    31  
    32  	assert.NoError(t, f.Parse([]string{"--flag", "a,b", "--flag", "c"}))
    33  	assert.Equal(t, value, []string{"a", "b", "c"})
    34  }
    35  
    36  func TestFlagsetDuration(t *testing.T) {
    37  	f := NewFlagSet("")
    38  
    39  	value := time.Duration(0)
    40  	f.DurationFlag(&DurationFlag{
    41  		Name:  "flag",
    42  		Value: &value,
    43  	})
    44  
    45  	assert.NoError(t, f.Parse([]string{"--flag", "1m"}))
    46  	assert.Equal(t, value, 1*time.Minute)
    47  }
    48  
    49  func TestFlagsetMapString(t *testing.T) {
    50  	f := NewFlagSet("")
    51  
    52  	value := map[string]string{}
    53  	f.MapStringFlag(&MapStringFlag{
    54  		Name:  "flag",
    55  		Value: &value,
    56  	})
    57  
    58  	assert.NoError(t, f.Parse([]string{"--flag", "a=b,c=d"}))
    59  	assert.Equal(t, value, map[string]string{"a": "b", "c": "d"})
    60  }