getopt: init module
This commit is contained in:
parent
8290a04536
commit
2729e58eab
17 changed files with 1076 additions and 3 deletions
74
getopt/flag_test.go
Normal file
74
getopt/flag_test.go
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
package getopt
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestInt(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
p := NewFlagSet("", 0)
|
||||
var k int
|
||||
p.IntVar(&k, "k", 16, "set k")
|
||||
i := p.Int64("i", -1, "set i")
|
||||
j := p.Uint("j", 64, "set j")
|
||||
|
||||
err := p.parse([]string{"bin", "-i", "32", "normal arg"})
|
||||
assert.Nil(err, "Expected err to be nil")
|
||||
assert.Equal(3, p.optindex, "Expected to only parse two arguments")
|
||||
assert.Equal(int64(32), *i, "Expected -i argument to equal 32")
|
||||
assert.Equal(uint(64), *j, "Expected -j argument to equal 64, since unset")
|
||||
assert.Equal(16, k, "Expected -k argument to equal 16, since unset")
|
||||
}
|
||||
|
||||
func TestBool(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
p := NewFlagSet("", 0)
|
||||
var a bool
|
||||
p.BoolVar(&a, "a", false, "set a")
|
||||
b := p.Bool("b", false, "set b")
|
||||
|
||||
err := p.parse([]string{"bin", "-a", "normal arg"})
|
||||
assert.Nil(err, "Expected err to be nil")
|
||||
assert.Equal(2, p.optindex, "Expected to only parse two arguments")
|
||||
assert.Equal(true, a, "Expected -a argument to be set")
|
||||
assert.Equal(false, *b, "Expected -b argument to not be set")
|
||||
}
|
||||
|
||||
func TestString(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
p := NewFlagSet("", 0)
|
||||
get := p.String("c", "default", "get -c")
|
||||
|
||||
opt := "some options"
|
||||
err := p.parse([]string{"bin", "-c", opt, "normal arg"})
|
||||
assert.Nil(err, "Expected err to be nil")
|
||||
assert.Equal(opt, *get, "Expected argument to be parsed")
|
||||
}
|
||||
|
||||
func TestFloat64(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
p := NewFlagSet("", 0)
|
||||
f := p.Float64("f", -3.14, "get -f")
|
||||
|
||||
err := p.parse([]string{"bin", "-f", "3.14", "normal arg"})
|
||||
assert.Nil(err, "Expected err to be nil")
|
||||
assert.Equal(3.14, *f, "Expected -f to equal 3.14")
|
||||
}
|
||||
|
||||
func TestDuration(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
p := NewFlagSet("", 0)
|
||||
d := p.Duration("d", 0, "get -d")
|
||||
|
||||
err := p.parse([]string{"bin", "-d", "1h3m", "normal arg"})
|
||||
assert.Nil(err, "Expected err to be nil")
|
||||
assert.Equal(time.Hour+3*time.Minute, *d, "Expected -d to equal 1 hour and 3 minutes")
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue