66 lines
1.1 KiB
Go
66 lines
1.1 KiB
Go
|
package flag_test
|
||
|
|
||
|
import (
|
||
|
"slices"
|
||
|
"testing"
|
||
|
|
||
|
internalFlag "codeflow.dananglin.me.uk/apollo/enbas/internal/flag"
|
||
|
)
|
||
|
|
||
|
func TestBoolPtrValue(t *testing.T) {
|
||
|
tests := []struct {
|
||
|
input string
|
||
|
want bool
|
||
|
}{
|
||
|
{
|
||
|
input: "True",
|
||
|
want: true,
|
||
|
},
|
||
|
{
|
||
|
input: "false",
|
||
|
want: false,
|
||
|
},
|
||
|
}
|
||
|
|
||
|
value := internalFlag.NewBoolPtrValue()
|
||
|
|
||
|
for _, test := range slices.All(tests) {
|
||
|
if err := value.Set(test.input); err != nil {
|
||
|
t.Fatalf(
|
||
|
"Unable to parse %s as a BoolPtrValue: %v",
|
||
|
test.input,
|
||
|
err,
|
||
|
)
|
||
|
}
|
||
|
|
||
|
got := *value.Value
|
||
|
|
||
|
if got != test.want {
|
||
|
t.Errorf(
|
||
|
"Unexpected bool parsed from %s: want %t, got %t",
|
||
|
test.input,
|
||
|
test.want,
|
||
|
got,
|
||
|
)
|
||
|
} else {
|
||
|
t.Logf(
|
||
|
"Expected bool parsed from %s: got %t",
|
||
|
test.input,
|
||
|
got,
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestNilBoolPtrValue(t *testing.T) {
|
||
|
value := internalFlag.NewBoolPtrValue()
|
||
|
want := "NOT SET"
|
||
|
got := value.String()
|
||
|
|
||
|
if got != want {
|
||
|
t.Errorf("Unexpected string returned from the nil value; want %s, got %s", want, got)
|
||
|
} else {
|
||
|
t.Logf("Expected string returned from the nil value; got %s", got)
|
||
|
}
|
||
|
}
|