@@ -40,7 +40,7 @@ protected function setUp(): void
40
40
public function testListParameterHelper (string $ alias ): void
41
41
{
42
42
$ result = $ this ->client ->run (<<<'CYPHER'
43
- MATCH (x) WHERE x.slug in $listOrMap RETURN x
43
+ MATCH (x) WHERE x.slug IN $listOrMap RETURN x
44
44
CYPHER, ['listOrMap ' => ParameterHelper::asList ([])], $ alias );
45
45
self ::assertEquals (0 , $ result ->count ());
46
46
}
@@ -79,7 +79,7 @@ public function testMapParameterHelper(string $alias): void
79
79
$ this ->client ->run (<<<'CYPHER'
80
80
MERGE (x:Node {slug: 'a'})
81
81
WITH x
82
- MATCH (x) WHERE x.slug in $listOrMap RETURN x
82
+ MATCH (x) WHERE x.slug IN $listOrMap RETURN x
83
83
CYPHER, ['listOrMap ' => ParameterHelper::asMap (['a ' => 'b ' ])], $ alias );
84
84
}
85
85
@@ -92,7 +92,7 @@ public function testArrayParameterHelper(string $alias): void
92
92
$ this ->client ->run (<<<'CYPHER'
93
93
MERGE (x:Node {slug: 'a'})
94
94
WITH x
95
- MATCH (x) WHERE x.slug in $listOrMap RETURN x
95
+ MATCH (x) WHERE x.slug IN $listOrMap RETURN x
96
96
CYPHER, ['listOrMap ' => []], $ alias );
97
97
}
98
98
@@ -105,7 +105,7 @@ public function testInvalidParameter(string $alias): void
105
105
$ this ->client ->run (<<<'CYPHER'
106
106
MERGE (x:Node {slug: 'a'})
107
107
WITH x
108
- MATCH (x) WHERE x.slug in $listOrMap RETURN x
108
+ MATCH (x) WHERE x.slug IN $listOrMap RETURN x
109
109
CYPHER, ['listOrMap ' => self ::generate ()], $ alias );
110
110
}
111
111
@@ -125,7 +125,7 @@ public function testInvalidParameters(string $alias): void
125
125
$ this ->client ->run (<<<'CYPHER'
126
126
MERGE (x:Node {slug: 'a'})
127
127
WITH x
128
- MATCH (x) WHERE x.slug in $listOrMap RETURN x
128
+ MATCH (x) WHERE x.slug IN $listOrMap RETURN x
129
129
CYPHER, self ::generate (), $ alias );
130
130
}
131
131
@@ -170,7 +170,7 @@ public function testPath(string $alias): void
170
170
public function testNullListAndMap (string $ alias ): void
171
171
{
172
172
$ results = $ this ->client ->run (<<<'CYPHER'
173
- RETURN null as x, [1, 2, 3] as y, {x: 'x', y: 'y', z: 'z'} as z
173
+ RETURN null AS x, [1, 2, 3] AS y, {x: 'x', y: 'y', z: 'z'} AS z
174
174
CYPHER
175
175
, ['x ' => 'x ' , 'xy ' => 'xy ' , 'y ' => 'y ' , 'yz ' => 'yz ' , 'z ' => 'z ' ], $ alias );
176
176
@@ -203,6 +203,36 @@ public function testListAndMapInput(string $alias): void
203
203
self ::assertEquals (['list ' => [1 , 2 , 3 ]], $ result ->get ('y ' ));
204
204
}
205
205
206
+ /**
207
+ * @dataProvider transactionProvider
208
+ */
209
+ public function testPathRetunType (string $ alias ): void
210
+ {
211
+ $ this ->client ->run (<<<'CYPHER'
212
+ MERGE (:Node {x: 'x'}) - [:Rel] -> (x:Node {x: 'y'})
213
+ WITH x
214
+ MERGE (x) - [:Rel] -> (:Node {x: 'z'})
215
+ CYPHER
216
+ , [], $ alias );
217
+
218
+ $ results = $ this ->client ->run (<<<'CYPHER'
219
+ MATCH (a:Node {x: 'x'}), (b:Node {x: 'z'}), p = shortestPath((a)-[*]-(b))
220
+ RETURN p
221
+ CYPHER
222
+ , [], $ alias );
223
+
224
+ self ::assertEquals (1 , $ results ->count ());
225
+ $ result = $ results ->first ();
226
+ self ::assertEquals (1 , $ result ->count ());
227
+ self ::assertEquals ([
228
+ ['x ' => 'x ' ],
229
+ [],
230
+ ['x ' => 'y ' ],
231
+ [],
232
+ ['x ' => 'z ' ],
233
+ ], $ result ->get ('p ' ));
234
+ }
235
+
206
236
/**
207
237
* @return array<int, array<int, string>>
208
238
*/
0 commit comments