@@ -49,6 +49,12 @@ public abstract class IrGremlinQueryTest extends AbstractGremlinProcessTest {
49
49
public abstract Traversal <Vertex , Map <String , Vertex >>
50
50
get_g_V_matchXa_in_b__b_out_c__not_c_out_aX ();
51
51
52
+ public abstract Traversal <Vertex , Object >
53
+ get_g_V_matchXa_knows_b__b_created_cX_select_c_values ();
54
+
55
+ public abstract Traversal <Vertex , Object >
56
+ get_g_V_matchXa_out_b__b_in_cX_select_c_out_dedup_values ();
57
+
52
58
@ LoadGraphWith (LoadGraphWith .GraphData .MODERN )
53
59
@ Test
54
60
public void g_V_group_by_by_dedup_count_test () {
@@ -167,6 +173,44 @@ public void g_V_matchXa_in_b__b_out_c__not_c_out_aX() {
167
173
traversal );
168
174
}
169
175
176
+ @ LoadGraphWith (LoadGraphWith .GraphData .MODERN )
177
+ @ Test
178
+ public void g_V_matchXa_knows_b__b_created_cX_select_c_values () {
179
+ final Traversal <Vertex , Object > traversal =
180
+ get_g_V_matchXa_knows_b__b_created_cX_select_c_values ();
181
+ printTraversalForm (traversal );
182
+ int counter = 0 ;
183
+
184
+ List <String > expected = Arrays .asList ("josh" , "vadas" );
185
+
186
+ while (traversal .hasNext ()) {
187
+ Object result = traversal .next ();
188
+ Assert .assertTrue (expected .contains (result .toString ()));
189
+ ++counter ;
190
+ }
191
+
192
+ Assert .assertEquals (2 , counter );
193
+ }
194
+
195
+ @ LoadGraphWith (LoadGraphWith .GraphData .MODERN )
196
+ @ Test
197
+ public void g_V_matchXa_out_b__b_in_cX_select_c_out_dedup_values () {
198
+ final Traversal <Vertex , Object > traversal =
199
+ get_g_V_matchXa_out_b__b_in_cX_select_c_out_dedup_values ();
200
+ printTraversalForm (traversal );
201
+ int counter = 0 ;
202
+
203
+ List <String > expected = Arrays .asList ("josh" , "vadas" );
204
+
205
+ while (traversal .hasNext ()) {
206
+ Object result = traversal .next ();
207
+ Assert .assertTrue (expected .contains (result .toString ()));
208
+ ++counter ;
209
+ }
210
+
211
+ Assert .assertEquals (2 , counter );
212
+ }
213
+
170
214
public static class Traversals extends IrGremlinQueryTest {
171
215
172
216
@ Override
@@ -208,5 +252,24 @@ public Traversal<Vertex, Object> get_g_V_out_as_a_in_select_a_as_b_select_b_by_v
208
252
as ("b" ).out ("knows" ).as ("c" ),
209
253
not (as ("c" ).out ("knows" ).as ("a" )));
210
254
}
255
+
256
+ @ Override
257
+ public Traversal <Vertex , Object > get_g_V_matchXa_knows_b__b_created_cX_select_c_values () {
258
+ return g .V ().match (as ("a" ).out ("knows" ).as ("b" ), as ("b" ).out ("created" ).as ("c" ))
259
+ .select ("c" )
260
+ .values ("name" );
261
+ }
262
+
263
+ @ Override
264
+ public Traversal <Vertex , Object >
265
+ get_g_V_matchXa_out_b__b_in_cX_select_c_out_dedup_values () {
266
+ return g .V ().match (
267
+ as ("a" ).out ("created" ).has ("name" , "lop" ).as ("b" ),
268
+ as ("b" ).in ("created" ).has ("age" , 29 ).as ("c" ))
269
+ .select ("c" )
270
+ .out ("knows" )
271
+ .dedup ()
272
+ .values ("name" );
273
+ }
211
274
}
212
275
}
0 commit comments