test json invalid boolean primitives ; only valid when wrapped

This commit is contained in:
Adrien Marquès 2020-03-02 21:56:05 +01:00
parent 4d663fc56c
commit 0395d763d6
Signed by: xdrm-brackets
GPG Key ID: D75243CA236D825E
1 changed files with 40 additions and 0 deletions

View File

@ -30,6 +30,7 @@ func TestSimpleString(t *testing.T) {
t.FailNow() t.FailNow()
} }
} }
func TestStringSlice(t *testing.T) { func TestStringSlice(t *testing.T) {
p := Parameter{Parsed: false, File: false, Value: `["str1", "str2"]`} p := Parameter{Parsed: false, File: false, Value: `["str1", "str2"]`}
@ -73,3 +74,42 @@ func TestStringSlice(t *testing.T) {
} }
} }
func TestJsonPrimitiveBool(t *testing.T) {
tcases := []struct {
Raw string
BoolValue bool
}{
{"true", true},
{"false", false},
}
for i, tcase := range tcases {
t.Run("case "+string(i), func(t *testing.T) {
p := Parameter{Parsed: false, File: false, Value: tcase.Raw}
err := p.Parse()
if err != nil {
t.Errorf("unexpected error: <%s>", err)
t.FailNow()
}
if !p.Parsed {
t.Errorf("expected parameter to be parsed")
t.FailNow()
}
cast, canCast := p.Value.(bool)
if !canCast {
t.Errorf("expected parameter to be a bool")
t.FailNow()
}
if cast != tcase.BoolValue {
t.Errorf("expected a value of %T, got %T", tcase.BoolValue, cast)
t.FailNow()
}
})
}
}