2 * Copyright (c) 2014 Brocade Communications Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.yangtools.util.concurrent;
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertFalse;
13 import static org.junit.Assert.assertTrue;
14 import static org.junit.Assert.fail;
16 import java.util.Arrays;
17 import java.util.concurrent.TimeUnit;
18 import org.junit.Test;
21 * Unit tests for TrackingLinkedBlockingQueue.
23 * @author Thomas Pantelis
25 public class TrackingLinkedBlockingQueueTest {
28 public void testOffer() throws InterruptedException {
29 TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>(2);
31 assertTrue("offer", queue.offer("1"));
32 assertEquals("getLargestQueueSize", 1, queue.getLargestQueueSize());
33 assertEquals("size", 1, queue.size());
35 assertTrue("offer", queue.offer("2", 1, TimeUnit.MILLISECONDS));
36 assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
37 assertEquals("size", 2, queue.size());
39 assertFalse("offer", queue.offer("3"));
40 assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
41 assertEquals("size", 2, queue.size());
43 assertFalse("offer", queue.offer("4", 1, TimeUnit.MILLISECONDS));
44 assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
45 assertEquals("size", 2, queue.size());
49 public void testPut() throws InterruptedException {
50 TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>();
53 assertEquals("getLargestQueueSize", 1, queue.getLargestQueueSize());
54 assertEquals("size", 1, queue.size());
57 assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
58 assertEquals("size", 2, queue.size());
62 public void testAdd() {
63 TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>(2);
65 assertTrue("add", queue.add("1"));
66 assertEquals("getLargestQueueSize", 1, queue.getLargestQueueSize());
67 assertEquals("size", 1, queue.size());
69 assertTrue("add", queue.add("2"));
70 assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
71 assertEquals("size", 2, queue.size());
75 fail("Expected IllegalStateException");
76 } catch (IllegalStateException e) {
78 assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
79 assertEquals("size", 2, queue.size());
84 public void testAddAll() {
85 TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>(3);
87 queue.addAll(Arrays.asList("1", "2"));
88 assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
89 assertEquals("size", 2, queue.size());
92 queue.addAll(Arrays.asList("3", "4"));
93 fail("Expected IllegalStateException");
94 } catch (IllegalStateException e) {
96 assertEquals("getLargestQueueSize", 3, queue.getLargestQueueSize());
97 assertEquals("size", 3, queue.size());