test conversion from 1-sized slice to first element (bool vs json boolean primitive)

This commit is contained in:
Adrien Marquès 2020-03-02 22:19:28 +01:00
parent 41d166529c
commit e132a5af42
Signed by: xdrm-brackets
GPG Key ID: D75243CA236D825E
1 changed files with 106 additions and 0 deletions

View File

@ -162,3 +162,109 @@ func TestJsonPrimitiveFloat(t *testing.T) {
} }
} }
func TestOneSliceStringToString(t *testing.T) {
p := Parameter{Parsed: false, File: false, Value: []string{"lonely-string"}}
if err := p.Parse(); 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.(string)
if !canCast {
t.Errorf("expected parameter to be a string")
t.FailNow()
}
if cast != "lonely-string" {
t.Errorf("expected a value of '%s', got '%s'", "lonely-string", cast)
t.FailNow()
}
}
func TestOneSliceBoolToBool(t *testing.T) {
tcases := []struct {
Raw bool
}{
{true},
{false},
}
for i, tcase := range tcases {
t.Run("case "+string(i), func(t *testing.T) {
p := Parameter{Parsed: false, File: false, Value: []bool{tcase.Raw}}
if err := p.Parse(); 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.Raw {
t.Errorf("expected a value of '%t', got '%t'", tcase.Raw, cast)
t.FailNow()
}
})
}
}
func TestOneSliceJsonBoolToBool(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: []string{tcase.Raw}}
if err := p.Parse(); 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()
}
})
}
}