Skip to content

Commit e6ae264

Browse files
fix map2table (#168)
I think this should work though bahla never got around to it
1 parent 6071035 commit e6ae264

File tree

2 files changed

+30
-13
lines changed

2 files changed

+30
-13
lines changed

operations/restructuring/map2table/operation.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,9 @@ func (a *Operation) Eval(inputs map[string]interface{}) (interface{}, error) {
3131
a.logger.Debug("The inputs of Operation Map to Table.", inputs)
3232
for _, ord := range in.ColOrder {
3333
if val, ok := in.Map[ord.(string)]; ok {
34-
ValLen = len(val.([]interface{}))
35-
givenType, _ = data.GetType(val.([]interface{})[0])
34+
valArr, _ := coerce.ToArray(val)
35+
ValLen = len(valArr)
36+
givenType, _ = data.GetType(valArr[0])
3637
break
3738
}
3839
}
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
package map2table
2+
23
import (
3-
"github.com/project-flogo/core/support/log"
44
"testing"
55

6+
"github.com/project-flogo/core/support/log"
7+
68
"github.com/stretchr/testify/assert"
79
)
10+
811
func TestSample0(t *testing.T) {
912
//params := Params{}
10-
opt := &Operation{logger : log.RootLogger(), params :&Params{Axis: 0}}
13+
opt := &Operation{logger: log.RootLogger(), params: &Params{Axis: 0}}
1114
var err error
1215
inputs := make(map[string]interface{})
13-
inputs["colOrder"] = []string{"a","b","c","d"}
14-
inputs["map"] = map[string]interface{}{"a":[]interface{}{1,2,4}, "b":[]interface{}{3,5,6}, "c":[]interface{}{7,8,9}}
16+
inputs["colOrder"] = []string{"a", "b", "c", "d"}
17+
inputs["map"] = map[string]interface{}{"a": []interface{}{1, 2, 4}, "b": []interface{}{3, 5, 6}, "c": []interface{}{7, 8, 9}}
1518

1619
_, err = opt.Eval(inputs)
1720

@@ -20,11 +23,11 @@ func TestSample0(t *testing.T) {
2023
}
2124
func TestSample1(t *testing.T) {
2225
//params := Params{}
23-
opt := &Operation{logger : log.RootLogger(), params :&Params{Axis: 1}}
26+
opt := &Operation{logger: log.RootLogger(), params: &Params{Axis: 1}}
2427
var err error
2528
inputs := make(map[string]interface{})
26-
inputs["colOrder"] = []string{"x","a","b","c","d"}
27-
inputs["map"] = map[string]interface{}{"a":[]interface{}{1,2,4}, "b":[]interface{}{3,5,6}, "c":[]interface{}{7,8,9}}
29+
inputs["colOrder"] = []string{"x", "a", "b", "c", "d"}
30+
inputs["map"] = map[string]interface{}{"a": []interface{}{1, 2, 4}, "b": []interface{}{3, 5, 6}, "c": []interface{}{7, 8, 9}}
2831

2932
_, err = opt.Eval(inputs)
3033

@@ -34,14 +37,27 @@ func TestSample1(t *testing.T) {
3437

3538
func TestSampleString(t *testing.T) {
3639
//params := Params{}
37-
opt := &Operation{logger : log.RootLogger(), params :&Params{Axis: 1}}
40+
opt := &Operation{logger: log.RootLogger(), params: &Params{Axis: 1}}
3841
var err error
3942
inputs := make(map[string]interface{})
40-
inputs["colOrder"] = []string{"x","a","b","c","d"}
41-
inputs["map"] = map[string]interface{}{"a":[]interface{}{"a","b","c"}, "b":[]interface{}{"d","e","f"}, "c":[]interface{}{"g","h","k"}}
43+
inputs["colOrder"] = []string{"x", "a", "b", "c", "d"}
44+
inputs["map"] = map[string]interface{}{"a": []interface{}{"a", "b", "c"}, "b": []interface{}{"d", "e", "f"}, "c": []interface{}{"g", "h", "k"}}
4245

4346
_, err = opt.Eval(inputs)
4447

4548
assert.Nil(t, err)
4649

47-
}
50+
}
51+
func TestSingleInt(t *testing.T) {
52+
//params := Params{}
53+
opt := &Operation{logger: log.RootLogger(), params: &Params{Axis: 1}}
54+
var err error
55+
inputs := make(map[string]interface{})
56+
inputs["colOrder"] = []string{"x", "a", "b", "c", "d"}
57+
inputs["map"] = map[string]interface{}{"a": 1}
58+
59+
_, err = opt.Eval(inputs)
60+
61+
assert.Nil(t, err)
62+
63+
}

0 commit comments

Comments
 (0)