Skip to content

Commit 73c5c88

Browse files
support map conversion and test utils file
1 parent ddcecfd commit 73c5c88

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

client_test.go

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66

77
"github.com/gomodule/redigo/redis"
88
"github.com/stretchr/testify/assert"
9+
"encoding/json"
910
)
1011

1112
var graph Graph
@@ -403,3 +404,50 @@ func TestQueryStatistics(t *testing.T) {
403404
assert.Nil(t,err)
404405
assert.Equal(t, 1, res.RelationshipsDeleted(), "Expecting 1 relationships deleted")
405406
}
407+
408+
func testUtils(t *testing.T) {
409+
res := RandomString(10)
410+
assert.Equal(t, len(res), 10)
411+
412+
res = ToString("test_string")
413+
assert.Equal(t, res, "test_string")
414+
415+
res = ToString(10)
416+
assert.Equal(t, res, "10")
417+
418+
res = ToString(1.2)
419+
assert.Equal(t, res, "1.2")
420+
421+
res = ToString(true)
422+
assert.Equal(t, res, "true")
423+
424+
res = ToString([3]int{1,2,3})
425+
assert.Equal(t, res, "[1,2,3]")
426+
427+
var jsonStr = `
428+
{
429+
"array": [
430+
1,
431+
2,
432+
3
433+
],
434+
"boolean": true,
435+
"null": null,
436+
"number": 123,
437+
"object": {
438+
"a": "b",
439+
"c": "d",
440+
"e": "f"
441+
},
442+
"string": "Hello World"
443+
}`
444+
445+
jsonMap := make(map[string]interface{})
446+
err := json.Unmarshal([]byte(jsonStr), &jsonMap)
447+
if err != nil {
448+
panic(err)
449+
}
450+
451+
res = ToString(jsonMap)
452+
assert.Equal(t, res, "{ array: [1,2,3],boolean: true,null: null,number: 123,object: {a: b,c: d,e: f},string: Hello World}")
453+
}

utils.go

Lines changed: 11 additions & 0 deletions
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"
@@ -36,6 +44,9 @@ func ToString(i interface{}) string {
3644
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)