private void assertAllTimeSpentInQueueing(QueryState expectedState, Consumer<QueryStateMachine> stateTransition)
{
TestingTicker ticker = new TestingTicker();
QueryStateMachine stateMachine = createQueryStateMachineWithTicker(ticker);
ticker.increment(7, MILLISECONDS);
stateTransition.accept(stateMachine);
assertEquals(stateMachine.getQueryState(), expectedState);
QueryStats queryStats = stateMachine.getQueryInfo(Optional.empty()).getQueryStats();
assertEquals(queryStats.getQueuedTime(), new Duration(7, MILLISECONDS));
assertEquals(queryStats.getResourceWaitingTime(), new Duration(0, MILLISECONDS));
assertEquals(queryStats.getTotalPlanningTime(), new Duration(0, MILLISECONDS));
assertEquals(queryStats.getExecutionTime(), new Duration(0, MILLISECONDS));
assertEquals(queryStats.getFinishingTime(), new Duration(0, MILLISECONDS));
}