Skip to content

Commit 1c6d7db

Browse files
Merge pull request #47 from RedisGraph/support_list/map_type
support map conversion to string
2 parents ddcecfd + 2ce2bc2 commit 1c6d7db

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

Diff for: client_test.go

+26
Original file line numberDiff line numberDiff line change
@@ -403,3 +403,29 @@ func TestQueryStatistics(t *testing.T) {
403403
assert.Nil(t,err)
404404
assert.Equal(t, 1, res.RelationshipsDeleted(), "Expecting 1 relationships deleted")
405405
}
406+
407+
func TestUtils(t *testing.T) {
408+
res := RandomString(10)
409+
assert.Equal(t, len(res), 10)
410+
411+
res = ToString("test_string")
412+
assert.Equal(t, res, "\"test_string\"")
413+
414+
res = ToString(10)
415+
assert.Equal(t, res, "10")
416+
417+
res = ToString(1.2)
418+
assert.Equal(t, res, "1.2")
419+
420+
res = ToString(true)
421+
assert.Equal(t, res, "true")
422+
423+
var arr = []interface{}{1,2,3,"boom"}
424+
res = ToString(arr)
425+
assert.Equal(t, res, "[1,2,3,\"boom\"]")
426+
427+
jsonMap := make(map[string]interface{})
428+
jsonMap["object"] = map[string]interface{} {"foo": 1}
429+
res = ToString(jsonMap)
430+
assert.Equal(t, res, "{object: {foo: 1}}")
431+
}

Diff for: utils.go

+12-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,14 @@ func arrayToString(arr []interface{}) string {
1818
return "[" + strings.Join(strArray, ",") + "]"
1919
}
2020

21+
func mapToString(data map[string]interface{}) string {
22+
pairsArray := []string{}
23+
for k, v := range data {
24+
pairsArray = append(pairsArray, k + ": " + ToString(v))
25+
}
26+
return "{" + strings.Join(pairsArray, ",") + "}"
27+
}
28+
2129
func ToString(i interface{}) string {
2230
if(i == nil) {
2331
return "null"
@@ -33,9 +41,12 @@ func ToString(i interface{}) string {
3341
return strconv.FormatFloat(i.(float64), 'f', -1, 64)
3442
case bool:
3543
return strconv.FormatBool(i.(bool))
36-
case []interface {}:
44+
case []interface{}:
3745
arr := i.([]interface{})
3846
return arrayToString(arr)
47+
case map[string]interface{}:
48+
data := i.(map[string]interface{})
49+
return mapToString(data)
3950
default:
4051
panic("Unrecognized type to convert to string")
4152
}

0 commit comments

Comments
 (0)