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  }