diff options
| author | Alex Flint <[email protected]> | 2019-05-02 09:32:23 -0700 |
|---|---|---|
| committer | Alex Flint <[email protected]> | 2019-05-02 09:32:23 -0700 |
| commit | a15b6ad67063562c974b346ca71dfceea045b0e4 (patch) | |
| tree | c14efda317be3609380c0c3139b53801233b89bd | |
| parent | 87be2d97907952e87203bd3a4b09cfbe49ce028d (diff) | |
add test for canParse with TextUnmarshaler
| -rw-r--r-- | reflect.go | 2 | ||||
| -rw-r--r-- | reflect_test.go | 15 |
2 files changed, 15 insertions, 2 deletions
@@ -9,8 +9,6 @@ import ( var textUnmarshalerType = reflect.TypeOf([]encoding.TextUnmarshaler{}).Elem() -// This file contains miscellaneous reflection utilities - // canParse returns true if the type can be parsed from a string func canParse(t reflect.Type) (parseable, boolean, multiple bool) { parseable = scalar.CanParse(t) diff --git a/reflect_test.go b/reflect_test.go index 0f285f7..47e68b5 100644 --- a/reflect_test.go +++ b/reflect_test.go @@ -38,3 +38,18 @@ func TestCanParse(t *testing.T) { assertCanParse(t, reflect.TypeOf(is), true, false, true) assertCanParse(t, reflect.TypeOf(&is), true, false, true) } + +type implementsTextUnmarshaler struct{} + +func (*implementsTextUnmarshaler) UnmarshalText(text []byte) error { + return nil +} + +func TestCanParseTextUnmarshaler(t *testing.T) { + var u implementsTextUnmarshaler + var su []implementsTextUnmarshaler + assertCanParse(t, reflect.TypeOf(u), true, false, false) + assertCanParse(t, reflect.TypeOf(&u), true, false, false) + assertCanParse(t, reflect.TypeOf(su), true, false, true) + assertCanParse(t, reflect.TypeOf(&su), true, false, true) +} |
