/** * Test consumers that take their time. * @throws Exception */ @Test public void testHangingConsumer() throws Exception { SinkQueue<Integer> q = newSleepingConsumerQueue(2, 1, 2); assertEquals("queue back", 2, (int) q.back()); assertTrue("should drop", !q.enqueue(3)); // should not block assertEquals("queue size", 2, q.size()); assertEquals("queue head", 1, (int) q.front()); assertEquals("queue back", 2, (int) q.back()); }
/** * Test consumers that take their time. * @throws Exception */ @Test public void testHangingConsumer() throws Exception { SinkQueue<Integer> q = newSleepingConsumerQueue(2, 1, 2); assertEquals("queue back", 2, (int) q.back()); assertTrue("should drop", !q.enqueue(3)); // should not block assertEquals("queue size", 2, q.size()); assertEquals("queue head", 1, (int) q.front()); assertEquals("queue back", 2, (int) q.back()); }
/** * Test common use case * @throws Exception */ @Test public void testCommon() throws Exception { final SinkQueue<Integer> q = new SinkQueue<Integer>(2); q.enqueue(1); assertEquals("queue front", 1, (int) q.front()); assertEquals("queue back", 1, (int) q.back()); assertEquals("element", 1, (int) q.dequeue()); assertTrue("should enqueue", q.enqueue(2)); q.consume(new Consumer<Integer>() { @Override public void consume(Integer e) { assertEquals("element", 2, (int) e); } }); assertTrue("should enqueue", q.enqueue(3)); assertEquals("element", 3, (int) q.dequeue()); assertEquals("queue size", 0, q.size()); assertEquals("queue front", null, q.front()); assertEquals("queue back", null, q.back()); }
/** * Test common use case * @throws Exception */ @Test public void testCommon() throws Exception { final SinkQueue<Integer> q = new SinkQueue<Integer>(2); q.enqueue(1); assertEquals("queue front", 1, (int) q.front()); assertEquals("queue back", 1, (int) q.back()); assertEquals("element", 1, (int) q.dequeue()); assertTrue("should enqueue", q.enqueue(2)); q.consume(new Consumer<Integer>() { @Override public void consume(Integer e) { assertEquals("element", 2, (int) e); } }); assertTrue("should enqueue", q.enqueue(3)); assertEquals("element", 3, (int) q.dequeue()); assertEquals("queue size", 0, q.size()); assertEquals("queue front", null, q.front()); assertEquals("queue back", null, q.back()); }