github.com/TIBCOSoftware/flogo-lib@v0.5.9/core/data/resolve_test.go (about) 1 package data 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func TestGetResolutionDetails(t *testing.T) { 10 11 a := "property.Prop1" 12 details, err := GetResolutionDetails(a) 13 assert.Nil(t, err) 14 assert.Equal(t, "property", details.ResolverName) 15 assert.Equal(t, "Prop1", details.Property) 16 assert.Equal(t, "", details.Item) 17 assert.Equal(t, "", details.Path) 18 19 a = "property[Prop1]" 20 details, err = GetResolutionDetails(a) 21 assert.Nil(t, err) 22 assert.Equal(t, "property", details.ResolverName) 23 assert.Equal(t, "Prop1", details.Property) 24 assert.Equal(t, "", details.Item) 25 assert.Equal(t, "", details.Path) 26 27 a = "property[foo.bar.Prop1]" 28 details, err = GetResolutionDetails(a) 29 assert.Nil(t, err) 30 assert.Equal(t, "property", details.ResolverName) 31 assert.Equal(t, "foo.bar.Prop1", details.Property) 32 assert.Equal(t, "", details.Item) 33 assert.Equal(t, "", details.Path) 34 35 a = "env.VAR1" 36 details, err = GetResolutionDetails(a) 37 assert.Nil(t, err) 38 assert.Equal(t, "env", details.ResolverName) 39 assert.Equal(t, "VAR1", details.Property) 40 assert.Equal(t, "", details.Item) 41 assert.Equal(t, "", details.Path) 42 43 a = "env[VAR1]" 44 details, err = GetResolutionDetails(a) 45 assert.Nil(t, err) 46 assert.Equal(t, "env", details.ResolverName) 47 assert.Equal(t, "VAR1", details.Property) 48 assert.Equal(t, "", details.Item) 49 assert.Equal(t, "", details.Path) 50 51 // Resolution of first level Activity expression 52 a = "activity[myactivityId].myAttributeName" 53 details, err = GetResolutionDetails(a) 54 assert.Nil(t, err) 55 assert.Equal(t, "activity", details.ResolverName) 56 assert.Equal(t, "myAttributeName", details.Property) 57 assert.Equal(t, "myactivityId", details.Item) 58 assert.Equal(t, "", details.Path) 59 60 // Resolution of second level Activity expression map 61 a = "activity[myactivityId].myObjectAttributeName.objectKey" 62 details, err = GetResolutionDetails(a) 63 assert.Nil(t, err) 64 assert.Equal(t, "activity", details.ResolverName) 65 assert.Equal(t, "myObjectAttributeName", details.Property) 66 assert.Equal(t, "myactivityId", details.Item) 67 assert.Equal(t, ".objectKey", details.Path) 68 69 // Resolution of second level Activity expression map 70 a = `activity[myactivityId].myMapAttributeName["a.b"]` 71 details, err = GetResolutionDetails(a) 72 assert.Nil(t, err) 73 assert.Equal(t, "activity", details.ResolverName) 74 assert.Equal(t, "myactivityId", details.Item) 75 assert.Equal(t, "myMapAttributeName", details.Property) 76 assert.Equal(t, `["a.b"]`, details.Path) 77 78 // Resolution of second level Activity expression array 79 a = "activity.myactivityId.myArrayAttributeName[0]" 80 details, err = GetResolutionDetails(a) 81 assert.Nil(t, err) 82 assert.Equal(t, "activity", details.ResolverName) 83 assert.Equal(t, "myArrayAttributeName", details.Property) 84 assert.Equal(t, "myactivityId", details.Item) 85 assert.Equal(t, "[0]", details.Path) 86 87 // Resolution of first level Activity expression 88 a = "activity.myactivityId.myAttributeName" 89 details, err = GetResolutionDetails(a) 90 assert.Nil(t, err) 91 assert.Equal(t, "activity", details.ResolverName) 92 assert.Equal(t, "myAttributeName", details.Property) 93 assert.Equal(t, "myactivityId", details.Item) 94 assert.Equal(t, "", details.Path) 95 96 // Resolution of second level Activity expression map 97 a = "activity.myactivityId.myObjectAttributeName.objectKey" 98 details, err = GetResolutionDetails(a) 99 assert.Nil(t, err) 100 assert.Equal(t, "activity", details.ResolverName) 101 assert.Equal(t, "myObjectAttributeName", details.Property) 102 assert.Equal(t, "myactivityId", details.Item) 103 assert.Equal(t, ".objectKey", details.Path) 104 105 // Resolution of second level Activity expression map 106 a = `activity.myactivityId.myMapAttributeName["a.b"]` 107 details, err = GetResolutionDetails(a) 108 assert.Nil(t, err) 109 assert.Equal(t, "activity", details.ResolverName) 110 assert.Equal(t, "myactivityId", details.Item) 111 assert.Equal(t, "myMapAttributeName", details.Property) 112 assert.Equal(t, `["a.b"]`, details.Path) 113 114 // Resolution of second level Activity expression array 115 a = "activity.myactivityId.myArrayAttributeName[0]" 116 details, err = GetResolutionDetails(a) 117 assert.Nil(t, err) 118 assert.Equal(t, "activity", details.ResolverName) 119 assert.Equal(t, "myArrayAttributeName", details.Property) 120 assert.Equal(t, "myactivityId", details.Item) 121 assert.Equal(t, "[0]", details.Path) 122 } 123 124 func TestGetResolutionDetailsOld(t *testing.T) { 125 126 a := "${property.Prop1}" 127 details, err := GetResolutionDetailsOld(a) 128 assert.Nil(t, err) 129 assert.Equal(t, "property", details.ResolverName) 130 assert.Equal(t, "Prop1", details.Property) 131 assert.Equal(t, "", details.Item) 132 assert.Equal(t, "", details.Path) 133 134 a = "${env.VAR1}" 135 details, err = GetResolutionDetailsOld(a) 136 assert.Nil(t, err) 137 assert.Equal(t, "env", details.ResolverName) 138 assert.Equal(t, "VAR1", details.Property) 139 assert.Equal(t, "", details.Item) 140 assert.Equal(t, "", details.Path) 141 142 a = "${trigger.val}" 143 details, err = GetResolutionDetailsOld(a) 144 assert.Nil(t, err) 145 assert.Equal(t, "trigger", details.ResolverName) 146 assert.Equal(t, "val", details.Property) 147 assert.Equal(t, "", details.Item) 148 assert.Equal(t, "", details.Path) 149 150 a = "${trigger.val}.value" 151 details, err = GetResolutionDetailsOld(a) 152 assert.Nil(t, err) 153 assert.Equal(t, "trigger", details.ResolverName) 154 assert.Equal(t, "val", details.Property) 155 assert.Equal(t, "", details.Item) 156 assert.Equal(t, ".value", details.Path) 157 158 a = "${trigger.val}[0]" 159 details, err = GetResolutionDetailsOld(a) 160 assert.Nil(t, err) 161 assert.Equal(t, "trigger", details.ResolverName) 162 assert.Equal(t, "val", details.Property) 163 assert.Equal(t, "", details.Item) 164 assert.Equal(t, "[0]", details.Path) 165 166 // Resolution of first level Activity expression 167 a = "${activity.myactivityId.myAttributeName}" 168 details, err = GetResolutionDetailsOld(a) 169 assert.Nil(t, err) 170 assert.Equal(t, "activity", details.ResolverName) 171 assert.Equal(t, "myAttributeName", details.Property) 172 assert.Equal(t, "myactivityId", details.Item) 173 assert.Equal(t, "", details.Path) 174 175 // Resolution of second level Activity expression map 176 a = "${activity.myactivityId.myMapAttributeName}.mapkey" 177 details, err = GetResolutionDetailsOld(a) 178 assert.Nil(t, err) 179 assert.Equal(t, "activity", details.ResolverName) 180 assert.Equal(t, "myMapAttributeName", details.Property) 181 assert.Equal(t, "myactivityId", details.Item) 182 assert.Equal(t, ".mapkey", details.Path) 183 184 // Resolution of second level Activity expression array 185 a = "${activity.myactivityId.myArrayAttributeName}[0]" 186 details, err = GetResolutionDetailsOld(a) 187 assert.Nil(t, err) 188 assert.Equal(t, "activity", details.ResolverName) 189 assert.Equal(t, "myArrayAttributeName", details.Property) 190 assert.Equal(t, "myactivityId", details.Item) 191 assert.Equal(t, "[0]", details.Path) 192 } 193 194 func TestToGetCurrentScope(t *testing.T) { 195 a := "$.header.Accept" 196 details, err := GetResolutionDetails(a) 197 assert.Nil(t, err) 198 assert.Equal(t, "$.", details.ResolverName) 199 assert.Equal(t, "header", details.Property) 200 assert.Equal(t, ".Accept", details.Path) 201 202 a = "$.array[0]" 203 details, err = GetResolutionDetails(a) 204 assert.Nil(t, err) 205 assert.Equal(t, "$.", details.ResolverName) 206 assert.Equal(t, "array", details.Property) 207 assert.Equal(t, "[0]", details.Path) 208 209 a = "$.headers" 210 details, err = GetResolutionDetails(a) 211 assert.Nil(t, err) 212 assert.Equal(t, "$.", details.ResolverName) 213 assert.Equal(t, "headers", details.Property) 214 assert.Equal(t, "", details.Path) 215 216 }