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  }