@ -1974,6 +1974,71 @@ func TestTimestampFlagApply_Fail_Parse_Wrong_Time(t *testing.T) {
expect ( t , err , fmt . Errorf ( "invalid value \"2006-01-02T15:04:05Z\" for flag -time: parsing time \"2006-01-02T15:04:05Z\" as \"Jan 2, 2006 at 3:04pm (MST)\": cannot parse \"2006-01-02T15:04:05Z\" as \"Jan\"" ) )
}
type flagDefaultTestCase struct {
name string
flag Flag
toParse [ ] string
expect string
}
func TestFlagDefaultValue ( t * testing . T ) {
cases := [ ] * flagDefaultTestCase {
& flagDefaultTestCase {
name : "stringSclice" ,
flag : & StringSliceFlag { Name : "flag" , Value : NewStringSlice ( "default1" , "default2" ) } ,
toParse : [ ] string { "--flag" , "parsed" } ,
expect : ` --flag value (default: "default1", "default2") (accepts multiple inputs) ` ,
} ,
& flagDefaultTestCase {
name : "float64Sclice" ,
flag : & Float64SliceFlag { Name : "flag" , Value : NewFloat64Slice ( 1.1 , 2.2 ) } ,
toParse : [ ] string { "--flag" , "13.3" } ,
expect : ` --flag value (default: 1.1, 2.2) (accepts multiple inputs) ` ,
} ,
& flagDefaultTestCase {
name : "int64Sclice" ,
flag : & Int64SliceFlag { Name : "flag" , Value : NewInt64Slice ( 1 , 2 ) } ,
toParse : [ ] string { "--flag" , "13" } ,
expect : ` --flag value (default: 1, 2) (accepts multiple inputs) ` ,
} ,
& flagDefaultTestCase {
name : "intSclice" ,
flag : & IntSliceFlag { Name : "flag" , Value : NewIntSlice ( 1 , 2 ) } ,
toParse : [ ] string { "--flag" , "13" } ,
expect : ` --flag value (default: 1, 2) (accepts multiple inputs) ` ,
} ,
& flagDefaultTestCase {
name : "string" ,
flag : & StringFlag { Name : "flag" , Value : "default" } ,
toParse : [ ] string { "--flag" , "parsed" } ,
expect : ` --flag value (default: "default") ` ,
} ,
& flagDefaultTestCase {
name : "bool" ,
flag : & BoolFlag { Name : "flag" , Value : true } ,
toParse : [ ] string { "--flag" , "false" } ,
expect : ` --flag (default: true) ` ,
} ,
& flagDefaultTestCase {
name : "uint64" ,
flag : & Uint64Flag { Name : "flag" , Value : 1 } ,
toParse : [ ] string { "--flag" , "13" } ,
expect : ` --flag value (default: 1) ` ,
} ,
}
for i , v := range cases {
set := flag . NewFlagSet ( "test" , 0 )
set . SetOutput ( ioutil . Discard )
_ = v . flag . Apply ( set )
if err := set . Parse ( v . toParse ) ; err != nil {
t . Error ( err )
}
if got := v . flag . String ( ) ; got != v . expect {
t . Errorf ( "TestFlagDefaultValue %d %s\nexpect:%s\ngot:%s" , i , v . name , v . expect , got )
}
}
}
func TestTimestampFlagApply_WithDestination ( t * testing . T ) {
var destination Timestamp
expectedResult , _ := time . Parse ( time . RFC3339 , "2006-01-02T15:04:05Z" )