making test friendly with all dialects

This commit is contained in:
Rob Rodriguez 2018-12-10 18:23:23 -08:00
parent 4ef2a436f3
commit 615139b853

View File

@ -53,20 +53,26 @@ func (m *WidgetUser) EncodeField(column string) (interface{}, error) {
func (m *WidgetUser) DecodeField(column string, value interface{}) error { func (m *WidgetUser) DecodeField(column string, value interface{}) error {
switch column { switch column {
case "widget": case "widget":
b, ok := value.([]byte) var src []byte
if !ok { switch data := value.(type) {
case string:
src = []byte(data)
case []byte:
src = data
default:
return errors.New("Invalid type for Widget") return errors.New("Invalid type for Widget")
} }
switch m.WidgetType { switch m.WidgetType {
case "simple": case "simple":
var result SimpleWidget var result SimpleWidget
if err := json.Unmarshal(b, &result); err != nil { if err := json.Unmarshal(src, &result); err != nil {
return err return err
} }
m.Widget = &result m.Widget = &result
case "complex": case "complex":
var result ComplexWidget var result ComplexWidget
if err := json.Unmarshal(b, &result); err != nil { if err := json.Unmarshal(src, &result); err != nil {
return err return err
} }
m.Widget = &result m.Widget = &result