5849898283
Unit tests functional and coverage back to 100% Add more routes to dictionary, add more credentials, add default port 5554, rename cameradar logs ENV variable, improve unit test readability, remove tmp file
57 lines
1.2 KiB
Go
57 lines
1.2 KiB
Go
package pflag
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
func setUpCount(c *int) *FlagSet {
|
|
f := NewFlagSet("test", ContinueOnError)
|
|
f.CountVarP(c, "verbose", "v", "a counter")
|
|
return f
|
|
}
|
|
|
|
func TestCount(t *testing.T) {
|
|
testCases := []struct {
|
|
input []string
|
|
success bool
|
|
expected int
|
|
}{
|
|
{[]string{}, true, 0},
|
|
{[]string{"-v"}, true, 1},
|
|
{[]string{"-vvv"}, true, 3},
|
|
{[]string{"-v", "-v", "-v"}, true, 3},
|
|
{[]string{"-v", "--verbose", "-v"}, true, 3},
|
|
{[]string{"-v=3", "-v"}, true, 4},
|
|
{[]string{"--verbose=0"}, true, 0},
|
|
{[]string{"-v=0"}, true, 0},
|
|
{[]string{"-v=a"}, false, 0},
|
|
}
|
|
|
|
devnull, _ := os.Open(os.DevNull)
|
|
os.Stderr = devnull
|
|
for i := range testCases {
|
|
var count int
|
|
f := setUpCount(&count)
|
|
|
|
tc := &testCases[i]
|
|
|
|
err := f.Parse(tc.input)
|
|
if err != nil && tc.success == true {
|
|
t.Errorf("expected success, got %q", err)
|
|
continue
|
|
} else if err == nil && tc.success == false {
|
|
t.Errorf("expected failure, got success")
|
|
continue
|
|
} else if tc.success {
|
|
c, err := f.GetCount("verbose")
|
|
if err != nil {
|
|
t.Errorf("Got error trying to fetch the counter flag")
|
|
}
|
|
if c != tc.expected {
|
|
t.Errorf("expected %d, got %d", tc.expected, c)
|
|
}
|
|
}
|
|
}
|
|
}
|