enbas/internal/flag/boolptrvalue_test.go

66 lines
1.1 KiB
Go
Raw Normal View History

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)
}
}