Skip to content
This repository has been archived by the owner on Mar 11, 2021. It is now read-only.

Commit

Permalink
Minor changes
Browse files Browse the repository at this point in the history
  • Loading branch information
jarifibrahim committed Sep 25, 2018
1 parent e5965f9 commit ec7ace0
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 8 deletions.
10 changes: 6 additions & 4 deletions workitem/enum_type.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,15 +157,17 @@ func containsAll(a []interface{}, v []interface{}) bool {
return result
}

// ConvertFromModel implements the FieldType interface
func (t EnumType) ConvertFromModel(value interface{}) (interface{}, error) {
if value == nil {
return nil, nil
}
converted, err := t.BaseType.ConvertFromModel(value)
if err != nil {
return nil, fmt.Errorf("error converting enum value: %s", err.Error())
}
if value != nil {
if !contains(t.Values, converted) {
return nil, fmt.Errorf("value: %+v (%[1]T) is not part of allowed enum values: %+v", value, t.Values)
}
if !contains(t.Values, converted) {
return nil, fmt.Errorf("value: %+v (%[1]T) is not part of allowed enum values: %+v", value, t.Values)
}
return converted, nil
}
6 changes: 3 additions & 3 deletions workitem/enum_type_blackbox_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -345,11 +345,11 @@ func TestEnumType_ConvertFromModel(t *testing.T) {
},
[]testCase{
{"ok", "second", "second", false},
{"ok - nil", nil, nil, false},
{"fail - invalid string", "fourth", nil, true},
{"fail - int", 11, nil, true},
{"fail - float", 1.3, nil, true},
{"fail - empty string", "", nil, true},
{"fail - nil", nil, nil, true},
{"fail - list", []string{"x", "y"}, nil, true},
},
},
Expand All @@ -362,11 +362,11 @@ func TestEnumType_ConvertFromModel(t *testing.T) {
},
[]testCase{
{"ok", 4, 4, false},
{"ok - nil", nil, nil, false},
{"fail - invalid int", 2, nil, true},
{"fail - string", "11", nil, true},
{"fail - float", 1.3, nil, true},
{"fail - bool", true, nil, true},
{"fail - nil", nil, nil, true},
{"fail - list", []string{"x", "y"}, nil, true},
},
},
Expand All @@ -379,12 +379,12 @@ func TestEnumType_ConvertFromModel(t *testing.T) {
},
[]testCase{
{"ok", 1.1, 1.1, false},
{"ok - nil", nil, nil, false},
{"fail - invalid float", 4.4, nil, true},
{"fail - int", 1, nil, true},
{"fail - string", "11", nil, true},
{"fail - bool", true, nil, true},
{"fail - list", []string{"x", "y"}, nil, true},
{"fail - nil", nil, nil, true},
},
},
}
Expand Down
2 changes: 1 addition & 1 deletion workitem/simple_type.go
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ func (t SimpleType) ConvertToModel(value interface{}) (interface{}, error) {
}
}

// ConvertFromModel implements the t interface
// ConvertFromModel implements the FieldType interface
func (t SimpleType) ConvertFromModel(value interface{}) (interface{}, error) {
if value == nil {
return nil, nil
Expand Down

0 comments on commit ec7ace0

Please sign in to comment.