11package redisgraph
22
33import (
4- "testing"
54 "os"
6- "github.com/stretchr/testify/assert"
5+ "testing"
6+
77 "github.com/gomodule/redigo/redis"
8+ "github.com/stretchr/testify/assert"
89)
910
1011var graph Graph
@@ -24,7 +25,7 @@ func createGraph() {
2425 john .SetProperty ("age" , 33 )
2526 john .SetProperty ("gender" , "male" )
2627 john .SetProperty ("status" , "single" )
27-
28+
2829 japan .SetProperty ("name" , "Japan" )
2930 japan .SetProperty ("population" , 126800000 )
3031
@@ -51,10 +52,10 @@ func shutdown() {
5152}
5253
5354func TestMain (m * testing.M ) {
54- setup ()
55- code := m .Run ()
56- shutdown ()
57- os .Exit (code )
55+ setup ()
56+ code := m .Run ()
57+ shutdown ()
58+ os .Exit (code )
5859}
5960
6061func TestMatchQuery (t * testing.T ) {
@@ -63,7 +64,7 @@ func TestMatchQuery(t *testing.T) {
6364 if err != nil {
6465 t .Error (err )
6566 }
66-
67+
6768 assert .Equal (t , len (res .results ), 1 , "expecting 1 result record" )
6869
6970 s , ok := (res .results [0 ][0 ]).(* Node )
@@ -83,7 +84,7 @@ func TestMatchQuery(t *testing.T) {
8384 assert .Equal (t , s .GetProperty ("age" ), 33 , "Unexpected property value." )
8485 assert .Equal (t , s .GetProperty ("gender" ), "male" , "Unexpected property value." )
8586 assert .Equal (t , s .GetProperty ("status" ), "single" , "Unexpected property value." )
86-
87+
8788 assert .Equal (t , e .GetProperty ("year" ), 2017 , "Unexpected property value." )
8889
8990 assert .Equal (t , d .GetProperty ("name" ), "Japan" , "Unexpected property value." )
@@ -96,9 +97,9 @@ func TestCreateQuery(t *testing.T) {
9697 if err != nil {
9798 t .Error (err )
9899 }
99-
100+
100101 assert .True (t , res .Empty (), "Expecting empty result-set" )
101-
102+
102103 // Validate statistics.
103104 assert .Equal (t , res .NodesCreated (), 1 , "Expecting a single node to be created." )
104105 assert .Equal (t , res .PropertiesSet (), 1 , "Expecting a songle property to be added." )
@@ -108,8 +109,68 @@ func TestCreateQuery(t *testing.T) {
108109 if err != nil {
109110 t .Error (err )
110111 }
111-
112+
112113 assert .False (t , res .Empty (), "Expecting resultset to include a single node." )
113114 w := (res .results [0 ][0 ]).(* Node )
114115 assert .Equal (t , w .Label , "WorkPlace" , "Unexpected node label." )
115116}
117+
118+ func TestArray (t * testing.T ) {
119+
120+ graph .Flush ()
121+ graph .Query ("MATCH (n) DELETE n" )
122+
123+ a := NodeNew ("Person" , "a" , nil )
124+ b := NodeNew ("Person" , "b" , nil )
125+
126+ a .SetProperty ("name" , "a" )
127+ a .SetProperty ("age" , 32 )
128+ a .SetProperty ("array" , []interface {}{0 , 1 , 2 })
129+
130+ b .SetProperty ("name" , "b" )
131+ b .SetProperty ("age" , 30 )
132+ b .SetProperty ("array" , []interface {}{3 , 4 , 5 })
133+
134+ q := "CREATE (:person{name:'a',age:32,array:[0,1,2]}), CREATE (:person{name:'b',age:30,array:[3,4,5]})"
135+ res , err := graph .Query (q )
136+ if err != nil {
137+ t .Error (err )
138+ }
139+
140+ _ , err = graph .Commit ()
141+ if err != nil {
142+ panic (err )
143+ }
144+
145+ q = "WITH [0,1,2] as x return x"
146+ res , err = graph .Query (q )
147+ if err != nil {
148+ t .Error (err )
149+ }
150+
151+ assert .Equal (t , len (res .results ), 1 , "expecting 1 result record" )
152+
153+ assert .Equal (t , []interface {}{0 , 1 , 2 }, res .results [0 ][0 ])
154+
155+ q = "unwind([0,1,2]) as x return x"
156+ res , err = graph .Query (q )
157+ if err != nil {
158+ t .Error (err )
159+ }
160+ assert .Equal (t , len (res .results ), 3 , "expecting 3 result record" )
161+
162+ for i := 0 ; i < 3 ; i ++ {
163+ assert .Equal (t , i , res .results [i ][0 ])
164+ }
165+
166+ q = "MATCH(n) return collect(n) as x"
167+ res , err = graph .Query (q )
168+ if err != nil {
169+ t .Error (err )
170+ }
171+
172+ assert .Equal (t , 1 , len (res .results ), "expecting 1 results record" )
173+
174+ assert .ElementsMatchf (t , []interface {}{a , b }, res .results [0 ][0 ], "arrays not equal" )
175+
176+ }
0 commit comments