@Test
public void testOneQueueGetQueuedAndConsumed() {
QueueGroup queues = getQueueGroup(QueueType.PROVISIONER);
String queueName = "tenant1";
queues.add(queueName, new Element("id1", "val"));
queues.add(queueName, new Element("id2", "val"));
Assert.assertEquals(ImmutableSet.<String>of(), getIds(queues.getBeingConsumed(queueName)));
Assert.assertEquals(ImmutableSet.of("id1", "id2"), getIds(queues.getQueued(queueName)));
queues.take(queueName, "consumer1");
Assert.assertEquals(ImmutableSet.of("id1"), getIds(queues.getBeingConsumed(queueName)));
Assert.assertEquals(ImmutableSet.of("id2"), getIds(queues.getQueued(queueName)));
queues.take(queueName, "consumer2");
Assert.assertEquals(ImmutableSet.of("id1", "id2"), getIds(queues.getBeingConsumed(queueName)));
Assert.assertEquals(ImmutableSet.<String>of(), getIds(queues.getQueued(queueName)));
queues.recordProgress("consumer1", queueName, "id1", TrackingQueue.ConsumingStatus.FINISHED_SUCCESSFULLY, "result");
Assert.assertEquals(ImmutableSet.of("id2"), getIds(queues.getBeingConsumed(queueName)));
Assert.assertEquals(ImmutableSet.<String>of(), getIds(queues.getQueued(queueName)));
}