public void testQueueStats() { List<ClusterState> states = randomStates(scaledRandomIntBetween(10, 100), "master"); PendingClusterStatesQueue queue = createQueueWithStates(states); assertThat(queue.stats().getTotal(), equalTo(states.size())); assertThat(queue.stats().getPending(), equalTo(states.size())); assertThat(queue.stats().getCommitted(), equalTo(0)); List<ClusterStateContext> committedContexts = randomCommitStates(queue); assertThat(queue.stats().getTotal(), equalTo(states.size())); assertThat(queue.stats().getPending(), equalTo(states.size() - committedContexts.size())); assertThat(queue.stats().getCommitted(), equalTo(committedContexts.size())); ClusterState highestCommitted = null; for (ClusterStateContext context : committedContexts) { if (highestCommitted == null || context.state.supersedes(highestCommitted)) { highestCommitted = context.state; } } assert highestCommitted != null; queue.markAsProcessed(highestCommitted); assertThat( (long) queue.stats().getTotal(), equalTo(states.size() - (1 + highestCommitted.version()))); assertThat( (long) queue.stats().getPending(), equalTo(states.size() - (1 + highestCommitted.version()))); assertThat(queue.stats().getCommitted(), equalTo(0)); }