more test coverage
This commit is contained in:
parent
57f610284f
commit
a80336128c
|
@ -59,15 +59,15 @@ func cardinalityOf(t reflect.Type) (cardinality, error) {
|
||||||
switch t.Kind() {
|
switch t.Kind() {
|
||||||
case reflect.Slice:
|
case reflect.Slice:
|
||||||
if !scalar.CanParse(t.Elem()) {
|
if !scalar.CanParse(t.Elem()) {
|
||||||
return unsupported, fmt.Errorf("cannot parse into %v because we cannot parse into %v", t, t.Elem())
|
return unsupported, fmt.Errorf("cannot parse into %v because %v not supported", t, t.Elem())
|
||||||
}
|
}
|
||||||
return multiple, nil
|
return multiple, nil
|
||||||
case reflect.Map:
|
case reflect.Map:
|
||||||
if !scalar.CanParse(t.Key()) {
|
if !scalar.CanParse(t.Key()) {
|
||||||
return unsupported, fmt.Errorf("cannot parse into %v because we cannot parse into the key type %v", t, t.Elem())
|
return unsupported, fmt.Errorf("cannot parse into %v because key type %v not supported", t, t.Elem())
|
||||||
}
|
}
|
||||||
if !scalar.CanParse(t.Elem()) {
|
if !scalar.CanParse(t.Elem()) {
|
||||||
return unsupported, fmt.Errorf("cannot parse into %v because we cannot parse into the value type %v", t, t.Elem())
|
return unsupported, fmt.Errorf("cannot parse into %v because value type %v not supported", t, t.Elem())
|
||||||
}
|
}
|
||||||
return multiple, nil
|
return multiple, nil
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -26,6 +26,7 @@ func TestCardinalityOf(t *testing.T) {
|
||||||
var unsupported1 struct{}
|
var unsupported1 struct{}
|
||||||
var unsupported2 []struct{}
|
var unsupported2 []struct{}
|
||||||
var unsupported3 map[string]struct{}
|
var unsupported3 map[string]struct{}
|
||||||
|
var unsupported4 map[struct{}]string
|
||||||
|
|
||||||
assertCardinality(t, reflect.TypeOf(b), zero)
|
assertCardinality(t, reflect.TypeOf(b), zero)
|
||||||
assertCardinality(t, reflect.TypeOf(i), one)
|
assertCardinality(t, reflect.TypeOf(i), one)
|
||||||
|
@ -52,6 +53,8 @@ func TestCardinalityOf(t *testing.T) {
|
||||||
assertCardinality(t, reflect.TypeOf(&unsupported2), unsupported)
|
assertCardinality(t, reflect.TypeOf(&unsupported2), unsupported)
|
||||||
assertCardinality(t, reflect.TypeOf(unsupported3), unsupported)
|
assertCardinality(t, reflect.TypeOf(unsupported3), unsupported)
|
||||||
assertCardinality(t, reflect.TypeOf(&unsupported3), unsupported)
|
assertCardinality(t, reflect.TypeOf(&unsupported3), unsupported)
|
||||||
|
assertCardinality(t, reflect.TypeOf(unsupported4), unsupported)
|
||||||
|
assertCardinality(t, reflect.TypeOf(&unsupported4), unsupported)
|
||||||
}
|
}
|
||||||
|
|
||||||
type implementsTextUnmarshaler struct{}
|
type implementsTextUnmarshaler struct{}
|
||||||
|
@ -78,3 +81,11 @@ func TestIsExported(t *testing.T) {
|
||||||
assert.False(t, isExported(""))
|
assert.False(t, isExported(""))
|
||||||
assert.False(t, isExported(string([]byte{255})))
|
assert.False(t, isExported(string([]byte{255})))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCardinalityString(t *testing.T) {
|
||||||
|
assert.Equal(t, "zero", zero.String())
|
||||||
|
assert.Equal(t, "one", one.String())
|
||||||
|
assert.Equal(t, "multiple", multiple.String())
|
||||||
|
assert.Equal(t, "unsupported", unsupported.String())
|
||||||
|
assert.Equal(t, "unknown(42)", cardinality(42).String())
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue