@@ -295,3 +295,62 @@ func TestCreateIndex(t *testing.T) {
295
295
_ , err = graph .Query ("DROP INDEX ON :user(name)" )
296
296
assert .Equal (t , err .Error (), "ERR Unable to drop index on :user(name): no such index." )
297
297
}
298
+
299
+ func TestQueryStatistics (t * testing.T ) {
300
+ graph .Flush ()
301
+ err := graph .Delete ()
302
+ assert .Nil (t ,err )
303
+
304
+ q := "CREATE (:Person{name:'a',age:32,array:[0,1,2]})"
305
+ res , err := graph .Query (q )
306
+ assert .Nil (t ,err )
307
+
308
+ assert .Equal (t , 1 , res .NodesCreated (), "Expecting 1 node created" )
309
+ assert .Equal (t , 0 , res .NodesDeleted (), "Expecting 0 nodes deleted" )
310
+ assert .Greater (t , res .InternalExecutionTime (),0.0 , "Expecting internal execution time not to be 0.0" )
311
+ assert .Equal (t , true , res .Empty (), "Expecting empty resultset" )
312
+
313
+ res ,err = graph .Query ("MATCH (n) DELETE n" )
314
+ assert .Nil (t ,err )
315
+ assert .Equal (t , 1 , res .NodesDeleted (), "Expecting 1 nodes deleted" )
316
+
317
+ // Create 2 nodes connect via a single edge.
318
+ japan := NodeNew ("Country" , "j" , nil )
319
+ john := NodeNew ("Person" , "p" , nil )
320
+ edge := EdgeNew ("Visited" , john , japan , nil )
321
+
322
+ // Set node properties.
323
+ john .SetProperty ("name" , "John Doe" )
324
+ john .SetProperty ("age" , 33 )
325
+ john .SetProperty ("gender" , "male" )
326
+ john .SetProperty ("status" , "single" )
327
+
328
+ japan .SetProperty ("name" , "Japan" )
329
+ japan .SetProperty ("population" , 126800000 )
330
+
331
+ edge .SetProperty ("year" , 2017 )
332
+
333
+ // Introduce entities to graph.
334
+ graph .AddNode (john )
335
+ graph .AddNode (japan )
336
+ graph .AddEdge (edge )
337
+
338
+ // Flush graph to DB.
339
+ res , err = graph .Commit ()
340
+ assert .Nil (t ,err )
341
+ assert .Equal (t , 2 , res .NodesCreated (), "Expecting 2 node created" )
342
+ assert .Equal (t , 0 , res .NodesDeleted (), "Expecting 0 nodes deleted" )
343
+ assert .Equal (t , 7 , res .PropertiesSet (), "Expecting 7 properties set" )
344
+ assert .Equal (t , 1 , res .RelationshipsCreated (), "Expecting 1 relationships created" )
345
+ assert .Equal (t , 0 , res .RelationshipsDeleted (), "Expecting 0 relationships deleted" )
346
+ assert .Greater (t , res .InternalExecutionTime (),0.0 , "Expecting internal execution time not to be 0.0" )
347
+ assert .Equal (t , true , res .Empty (), "Expecting empty resultset" )
348
+ q = "MATCH p = (:Person)-[:Visited]->(:Country) RETURN p"
349
+ res , err = graph .Query (q )
350
+ assert .Nil (t ,err )
351
+ assert .Equal (t , len (res .results ), 1 , "expecting 1 result record" )
352
+ assert .Equal (t , false , res .Empty (), "Expecting resultset to have records" )
353
+ res ,err = graph .Query ("MATCH ()-[r]-() DELETE r" )
354
+ assert .Nil (t ,err )
355
+ assert .Equal (t , 1 , res .RelationshipsDeleted (), "Expecting 1 relationships deleted" )
356
+ }
0 commit comments