@@ -642,7 +642,6 @@ public void testContextedAPI() {
642642 "r.place, r.since, r.doubleValue, r.boolValue, r.nullValue" );
643643 Assert .assertNotNull (resultSet );
644644
645-
646645 Assert .assertEquals (0 , resultSet .getStatistics ().nodesCreated ());
647646 Assert .assertEquals (0 , resultSet .getStatistics ().nodesDeleted ());
648647 Assert .assertEquals (0 , resultSet .getStatistics ().labelsAdded ());
@@ -651,7 +650,6 @@ public void testContextedAPI() {
651650 Assert .assertEquals (0 , resultSet .getStatistics ().relationshipsDeleted ());
652651 Assert .assertNotNull (resultSet .getStatistics ().getStringValue (Label .QUERY_INTERNAL_EXECUTION_TIME ));
653652
654-
655653 Assert .assertEquals (1 , resultSet .size ());
656654 Assert .assertTrue (resultSet .hasNext ());
657655 Record record = resultSet .next ();
@@ -947,11 +945,35 @@ record = resultSet.next();
947945 @ Test
948946 public void test64bitnumber (){
949947 long value = 1 << 40 ;
950- Map <String , Object > params = new HashMap <String , Object >();
948+ Map <String , Object > params = new HashMap <>();
951949 params .put ("val" , value );
952950 ResultSet resultSet = api .query ("social" ,"CREATE (n {val:$val}) RETURN n.val" , params );
953951 Assert .assertEquals (1 , resultSet .size ());
954952 Record r = resultSet .next ();
955953 Assert .assertEquals (Long .valueOf (value ), r .getValue (0 ));
956954 }
955+
956+ @ Test
957+ public void testCachedExecution () {
958+ api .query ("social" , "CREATE (:N {val:1}), (:N {val:2})" );
959+
960+ // First time should not be loaded from execution cache
961+ Map <String , Object > params = new HashMap <>();
962+ params .put ("val" , 1L );
963+ ResultSet resultSet = api .query ("social" ,"MATCH (n:N {val:$val}) RETURN n.val" , params );
964+ Assert .assertEquals (1 , resultSet .size ());
965+ Record r = resultSet .next ();
966+ Assert .assertEquals (params .get ("val" ), r .getValue (0 ));
967+ Assert .assertFalse (resultSet .getStatistics ().cachedExecution ());
968+
969+ // Run in loop many times to make sure the query will be loaded
970+ // from cache at least once
971+ for (int i = 0 ; i < 64 ; i ++){
972+ resultSet = api .query ("social" ,"MATCH (n:N {val:$val}) RETURN n.val" , params );
973+ }
974+ Assert .assertEquals (1 , resultSet .size ());
975+ r = resultSet .next ();
976+ Assert .assertEquals (params .get ("val" ), r .getValue (0 ));
977+ Assert .assertTrue (resultSet .getStatistics ().cachedExecution ());
978+ }
957979}
0 commit comments