making test friendly with all dialects
This commit is contained in:
parent
4ef2a436f3
commit
615139b853
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user