@@ -372,4 +372,40 @@ public void testQuerySeeingStatistics() {
372372 Assert .assertEquals (stats .get (QueryManager .PartitionStat .ACTUAL_QUERIES_SEEN ), 6L );
373373 Assert .assertEquals (stats .get (QueryManager .PartitionStat .EXPECTED_QUERIES_SEEN ), 9L );
374374 }
375+
376+ @ Test
377+ public void testPartitionRemoval () {
378+ QueryManager manager = new QueryManager (getEqualityPartitionerConfig ("A" , "B" ));
379+ Query queryA = getQuery (ImmutablePair .of ("A" , "foo" ));
380+ Query queryB = getQuery (ImmutablePair .of ("A" , "foo" ), ImmutablePair .of ("B" , "bar" ));
381+ Query queryC = getQuery ();
382+ manager .addQuery ("idA" , getQuerier (queryA ));
383+ manager .addQuery ("idB" , getQuerier (queryB ));
384+ manager .addQuery ("idC" , getQuerier (queryC ));
385+ manager .addQuery ("idD" , getQuerier (queryC ));
386+
387+ Map <QueryManager .PartitionStat , Object > stats = manager .getStats ();
388+ Assert .assertEquals (stats .get (QueryManager .PartitionStat .QUERY_COUNT ), 4 );
389+ Assert .assertEquals (stats .get (QueryManager .PartitionStat .PARTITION_COUNT ), 3 );
390+
391+ manager .removeAndGetQuery ("idA" );
392+ stats = manager .getStats ();
393+ Assert .assertEquals (stats .get (QueryManager .PartitionStat .QUERY_COUNT ), 3 );
394+ Assert .assertEquals (stats .get (QueryManager .PartitionStat .PARTITION_COUNT ), 2 );
395+
396+ manager .removeAndGetQuery ("idB" );
397+ stats = manager .getStats ();
398+ Assert .assertEquals (stats .get (QueryManager .PartitionStat .QUERY_COUNT ), 2 );
399+ Assert .assertEquals (stats .get (QueryManager .PartitionStat .PARTITION_COUNT ), 1 );
400+
401+ manager .removeAndGetQuery ("idD" );
402+ stats = manager .getStats ();
403+ Assert .assertEquals (stats .get (QueryManager .PartitionStat .QUERY_COUNT ), 1 );
404+ Assert .assertEquals (stats .get (QueryManager .PartitionStat .PARTITION_COUNT ), 1 );
405+
406+ manager .removeAndGetQuery ("idC" );
407+ stats = manager .getStats ();
408+ Assert .assertEquals (stats .get (QueryManager .PartitionStat .QUERY_COUNT ), 0 );
409+ Assert .assertEquals (stats .get (QueryManager .PartitionStat .PARTITION_COUNT ), 0 );
410+ }
375411}
0 commit comments