summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Flint <[email protected]>2021-04-19 14:50:05 -0700
committerAlex Flint <[email protected]>2021-04-19 14:50:05 -0700
commita80336128cfb61156ebdfad6ab8018aaa567429e (patch)
tree2c776fe80cbef06e095bdfbebf3f268c3ab1540a
parent57f610284f51a9f47c359bb782d7e30f3d6d075d (diff)
more test coverage
-rw-r--r--reflect.go6
-rw-r--r--reflect_test.go11
2 files changed, 14 insertions, 3 deletions
diff --git a/reflect.go b/reflect.go
index be202dc..1806973 100644
--- a/reflect.go
+++ b/reflect.go
@@ -59,15 +59,15 @@ func cardinalityOf(t reflect.Type) (cardinality, error) {
switch t.Kind() {
case reflect.Slice:
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
case reflect.Map:
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()) {
- 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
default:
diff --git a/reflect_test.go b/reflect_test.go
index d7a5492..8d65fd9 100644
--- a/reflect_test.go
+++ b/reflect_test.go
@@ -26,6 +26,7 @@ func TestCardinalityOf(t *testing.T) {
var unsupported1 struct{}
var unsupported2 []struct{}
var unsupported3 map[string]struct{}
+ var unsupported4 map[struct{}]string
assertCardinality(t, reflect.TypeOf(b), zero)
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(unsupported3), unsupported)
assertCardinality(t, reflect.TypeOf(&unsupported3), unsupported)
+ assertCardinality(t, reflect.TypeOf(unsupported4), unsupported)
+ assertCardinality(t, reflect.TypeOf(&unsupported4), unsupported)
}
type implementsTextUnmarshaler struct{}
@@ -78,3 +81,11 @@ func TestIsExported(t *testing.T) {
assert.False(t, isExported(""))
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())
+}