github.com/viant/toolbox@v0.34.5/data/udf/conversion_test.go (about) 1 package udf 2 3 import ( 4 "github.com/stretchr/testify/assert" 5 "github.com/viant/toolbox/data" 6 "log" 7 "reflect" 8 "testing" 9 ) 10 11 func Test_AsBool(t *testing.T) { 12 ok, err := AsBool("true", nil) 13 assert.Nil(t, err) 14 assert.Equal(t, true, ok) 15 } 16 17 func Test_AsFloat(t *testing.T) { 18 value, err := AsFloat(0.3, nil) 19 assert.Nil(t, err) 20 assert.Equal(t, 0.3, value) 21 } 22 23 func Test_AsInt(t *testing.T) { 24 value, err := AsInt(4.3, nil) 25 assert.Nil(t, err) 26 assert.Equal(t, 4, value) 27 } 28 29 func Test_AsMap(t *testing.T) { 30 { 31 var aMap, err = AsMap(map[string]interface{}{}, nil) 32 assert.Nil(t, err) 33 assert.NotNil(t, aMap) 34 } 35 { 36 var aMap, err = AsMap("{\"abc\":1}", nil) 37 assert.Nil(t, err) 38 assert.NotNil(t, aMap) 39 } 40 { 41 var aMap, err = AsMap(`abc: 1`, nil) 42 assert.Nil(t, err) 43 assert.NotNil(t, aMap) 44 } 45 { 46 _, err := AsMap("{\"abc\":1, \"a}", nil) 47 assert.NotNil(t, err) 48 } 49 } 50 51 func Test_AsCollection(t *testing.T) { 52 53 { 54 var aSlice, err = AsCollection([]interface{}{1}, nil) 55 assert.Nil(t, err) 56 assert.NotNil(t, aSlice) 57 } 58 { 59 var aSlice, err = AsCollection("[1,2]", nil) 60 assert.Nil(t, err) 61 assert.NotNil(t, aSlice) 62 } 63 { 64 var aSlice, err = AsCollection(` 65 - 1 66 - 2`, nil) 67 assert.Nil(t, err) 68 assert.NotNil(t, aSlice) 69 } 70 71 { 72 _, err := AsCollection("[\"a,2]", nil) 73 assert.NotNil(t, err) 74 } 75 { 76 var aMap, err = AsData(`abc: 1`, nil) 77 assert.Nil(t, err) 78 assert.NotNil(t, aMap) 79 } 80 } 81 82 func Test_AsData(t *testing.T) { 83 { 84 var aSlice, err = AsData("[1,2]", nil) 85 assert.Nil(t, err) 86 assert.NotNil(t, aSlice) 87 88 } 89 { 90 var aMap, err = AsData("{\"abc\":1}", nil) 91 assert.Nil(t, err) 92 assert.NotNil(t, aMap) 93 } 94 95 } 96 97 func Test_YamlAsCollection(t *testing.T) { 98 var YAML = `- Requests: 99 - URL: http://localhost:5000 100 Method: GET 101 Header: 102 aHeader: 103 - "myField=a-value; path=/; domain=localhost; Expires=Tue, 19 Jan 2038 03:14:07 GMT;" 104 someOtherHeader: 105 - "CP=RTO" 106 107 Body: "hey there" 108 Cookies: 109 - Name: aHeader 110 Value: a-value 111 DYAMLomain: "localhost" 112 Expires: "2023-12-16T20:17:38Z" 113 RawExpires: Sat, 16 Dec 2023 20:17:38 GMT` 114 115 expanded, err := AsCollection(YAML, nil) 116 if !assert.Nil(t, err) { 117 log.Fatal(err) 118 } 119 assert.Equal(t, reflect.Slice, reflect.TypeOf(expanded).Kind()) 120 } 121 122 func Test_YamlAsMap(t *testing.T) { 123 YAML := `default: &default 124 Name: Jack 125 person: 126 <<: *default 127 Name: Bob` 128 129 expanded, err := AsCollection(YAML, nil) 130 assert.Nil(t, err) 131 assert.NotNil(t, expanded) 132 } 133 134 func Test_AsString(t *testing.T) { 135 aMap := data.NewMap() 136 Register(aMap) 137 138 aMap.Put("k0", true) 139 expanded := aMap.ExpandAsText(" $AsString(${k0})") 140 assert.EqualValues(t, "true", expanded) 141 //64 bit int 142 aMap.Put("k1", 2323232323223) 143 expanded = aMap.ExpandAsText(" $AsString(${k1})") 144 assert.EqualValues(t, "2323232323223", expanded) 145 }