@Test public void testBasics() throws Exception { // "list" command executed below primarily for eye-balling ;) queue.add(new Element("elem1", "data1")); queue.add(new Element("elem2", "data2")); queue.add(new Element("elem3", "data3")); queue.take("consumer1"); Assert.assertEquals(2, getQueuedCount(queue)); Assert.assertEquals(1, Iterators.size(queue.getBeingConsumed())); String qOpts = " --zk-connection " + zkServer.getConnectionStr() + " --queue-name " + queueName; ElementsTrackingQueueCliTool.main(("list" + qOpts).split(" ")); ElementsTrackingQueueCliTool.main(("remove --element elem1" + qOpts).split(" ")); Assert.assertEquals(2, getQueuedCount(queue)); Assert.assertEquals(0, Iterators.size(queue.getBeingConsumed())); ElementsTrackingQueueCliTool.main(("list " + qOpts).split(" ")); // moving elem3 to top of the queue Assert.assertEquals("elem2", queue.getQueued().next().getElement().getId()); ElementsTrackingQueueCliTool.main(("promote --element elem3" + qOpts).split(" ")); Assert.assertEquals("elem3", queue.getQueued().next().getElement().getId()); ElementsTrackingQueueCliTool.main(("list " + qOpts).split(" ")); ElementsTrackingQueueCliTool.main(("remove --element elem2" + qOpts).split(" ")); Assert.assertEquals(1, getQueuedCount(queue)); Assert.assertEquals(0, Iterators.size(queue.getBeingConsumed())); ElementsTrackingQueueCliTool.main(("list " + qOpts).split(" ")); ElementsTrackingQueueCliTool.main(("remove_all" + qOpts).split(" ")); Assert.assertEquals(0, getQueuedCount(queue)); Assert.assertEquals(0, Iterators.size(queue.getBeingConsumed())); ElementsTrackingQueueCliTool.main(("list " + qOpts).split(" ")); }
Assert.assertEquals("work2", elems.next().getElement().getId()); Element taken1 = queue.take("worker1"); Assert.assertEquals(taken1.getId(), "work1"); Assert.assertEquals(1, getQueuedCount(queue)); Assert.assertEquals("work1", queue.getBeingConsumed().next().getElement().getId()); Element taken2 = queue.take("worker2"); Assert.assertEquals(0, getQueuedCount(queue)); Assert.assertEquals(2, Iterators.size(queue.getBeingConsumed())); Assert.assertNull(queue.take("worker3")); Element taken3 = queue.take("worker3"); Assert.assertEquals(taken2.getId(), taken3.getId()); Element taken4 = queue.take("worker4"); Assert.assertEquals("work3", taken4.getId()); Element taken5 = queue.take("worker1"); Assert.assertEquals(2, getQueuedCount(queue)); Assert.assertEquals(2, Iterators.size(queue.getBeingConsumed())); TrackingQueue.ConsumingStatus.IN_PROGRESS, null)); Assert.assertNull(queue.take("worker6"));