github.com/TIBCOSoftware/flogo-lib@v0.5.9/core/mapper/exprmapper/ref/mappingref_test.go (about) 1 package ref 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "github.com/TIBCOSoftware/flogo-lib/core/data" 7 "github.com/TIBCOSoftware/flogo-lib/core/mapper/exprmapper/json/field" 8 "testing" 9 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestMappingRef(t *testing.T) { 14 15 mappingref := MappingRef{ref: "$activity[name].input.query.address.city"} 16 17 resu, _ := data.GetResolutionDetails(mappingref.ref) 18 19 v, _ := json.Marshal(resu) 20 21 fmt.Println(string(v)) 22 23 mapField, err := field.ParseMappingField(resu.Path) 24 //fields, err := mappingref.GetFields(mapField) 25 if err != nil { 26 t.Fatal(err) 27 } 28 29 assert.Equal(t, []string{"query", "address", "city"}, mapField.Getfields()) 30 31 } 32 33 //func TestMappingRefFuntion(t *testing.T) { 34 // 35 // mappingref := MappingRef{ref: `concat($activity[activityname].input.query.address.city, "name"`} 36 // 37 // _, err := mappingref.GetActivityId() 38 // 39 // if err != nil { 40 // t.Log(err) 41 // } 42 // 43 // _, err2 := mappingref.GetActivtyRootField() 44 // if err2 != nil { 45 // t.Log(err2) 46 // } 47 // 48 //} 49 // 50 //func TestMappingRefExpression(t *testing.T) { 51 // 52 // mappingref := MappingRef{ref: `$activity[activityname].input.query.address.zipcode > 77477`} 53 // 54 // _, err := mappingref.GetActivityId() 55 // 56 // if err != nil { 57 // t.Log(err) 58 // } 59 // 60 // _, err2 := mappingref.GetActivtyRootField() 61 // if err2 != nil { 62 // t.Log(err2) 63 // } 64 // // 65 // //assert.Equal(t, true, mappingref.IsExpression()) 66 // // 67 // //assert.Equal(t, false, mappingref.IsFunction()) 68 // 69 //} 70 71 //func TestMappingRef_GetPath(t *testing.T) { 72 // 73 // mappingref := MappingRef{ref: `$activity[activityname].input.query.address.zipcode`} 74 // 75 // name, _ := mappingref.GetFields() 76 // assert.Equal(t, "query.address.zipcode", strings.Join(name.Fields, ".")) 77 // fmt.Println(name) 78 // 79 // mappingref = MappingRef{ref: `input.query.address.zipcode`} 80 // 81 // name, _ = mappingref.GetFields() 82 // assert.Equal(t, "query.address.zipcode", strings.Join(name.Fields, ".")) 83 // fmt.Println(name) 84 // 85 //} 86 87 func TestGetActivtyRootField(t *testing.T) { 88 89 mappingref := MappingRef{ref: `input[0].query.address.zipcode`} 90 mapField, err := field.ParseMappingField(mappingref.ref) 91 92 name, err := GetMapToAttrName(mapField) 93 94 assert.Nil(t, err) 95 assert.Equal(t, "input", name) 96 97 mappingref = MappingRef{ref: `input.query.address.zipcode`} 98 99 name, err = GetMapToAttrName(mapField) 100 assert.Nil(t, err) 101 assert.Equal(t, "input", name) 102 103 } 104 105 func TestGetFieldsMapFrom(t *testing.T) { 106 ref := &MappingRef{ref: "Message[0].MessageId"} 107 mapField, _ := field.ParseMappingField(ref.ref) 108 mappingFields, err := GetMapToPathFields(mapField) 109 assert.Nil(t, err) 110 assert.Equal(t, []string{"[0]", "MessageId"}, mappingFields.Getfields()) 111 fmt.Println(fmt.Printf("%+v", mappingFields)) 112 113 //Special one 114 ref = &MappingRef{ref: `name[0]["name&name"]`} 115 mapField, _ = field.ParseMappingField(ref.ref) 116 117 mappingFields, err = GetMapToPathFields(mapField) 118 assert.Nil(t, err) 119 assert.Equal(t, []string{"[0]", "name&name"}, mappingFields.Getfields()) 120 fmt.Println(fmt.Printf("%+v", mappingFields)) 121 122 } 123 124 func TestGetFieldsMapFrom2(t *testing.T) { 125 //Special one 126 ref := &MappingRef{ref: `ReceiveSQSMessage.["x.y"][0]["name&name"]`} 127 mapField, _ := field.ParseMappingField(ref.ref) 128 129 s, err := GetMapToAttrName(mapField) 130 assert.Equal(t, "ReceiveSQSMessage", s) 131 132 mappingFields, err := GetMapToPathFields(mapField) 133 assert.Nil(t, err) 134 assert.Equal(t, []string{"x.y[0]", "name&name"}, mappingFields.Getfields()) 135 fmt.Println(fmt.Printf("%+v", mappingFields)) 136 } 137 138 func TestGetFieldsMapTo(t *testing.T) { 139 //Special one 140 ref := &MappingRef{ref: `["x.y"][0]["name&name"]`} 141 mapField, _ := field.ParseMappingField(ref.ref) 142 143 s, err := GetMapToAttrName(mapField) 144 assert.Nil(t, err) 145 assert.Equal(t, "x.y", s) 146 }