test conversion from 1-sized slice to first element (bool vs json boolean primitive)
This commit is contained in:
parent
41d166529c
commit
e132a5af42
|
@ -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()
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue