diff options
| author | Alex Flint <[email protected]> | 2021-04-19 14:50:05 -0700 |
|---|---|---|
| committer | Alex Flint <[email protected]> | 2021-04-19 14:50:05 -0700 |
| commit | a80336128cfb61156ebdfad6ab8018aaa567429e (patch) | |
| tree | 2c776fe80cbef06e095bdfbebf3f268c3ab1540a | |
| parent | 57f610284f51a9f47c359bb782d7e30f3d6d075d (diff) | |
more test coverage
| -rw-r--r-- | reflect.go | 6 | ||||
| -rw-r--r-- | reflect_test.go | 11 |
2 files changed, 14 insertions, 3 deletions
@@ -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()) +} |
