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
8 package org.opendaylight.yangtools.util.concurrent;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertFalse;
12 import static org.junit.Assert.assertThrows;
13 import static org.junit.Assert.assertTrue;
15 import java.util.Arrays;
16 import java.util.concurrent.TimeUnit;
17 import org.junit.Test;
20 * Unit tests for TrackingLinkedBlockingQueue.
22 * @author Thomas Pantelis
24 public class TrackingLinkedBlockingQueueTest {
27 public void testOffer() throws InterruptedException {
28 TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>(2);
30 assertTrue("offer", queue.offer("1"));
31 assertEquals("getLargestQueueSize", 1, queue.getLargestQueueSize());
32 assertEquals("size", 1, queue.size());
34 assertTrue("offer", queue.offer("2", 1, TimeUnit.MILLISECONDS));
35 assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
36 assertEquals("size", 2, queue.size());
38 assertFalse("offer", queue.offer("3"));
39 assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
40 assertEquals("size", 2, queue.size());
42 assertFalse("offer", queue.offer("4", 1, TimeUnit.MILLISECONDS));
43 assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
44 assertEquals("size", 2, queue.size());
48 public void testPut() throws InterruptedException {
49 TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>();
52 assertEquals("getLargestQueueSize", 1, queue.getLargestQueueSize());
53 assertEquals("size", 1, queue.size());
56 assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
57 assertEquals("size", 2, queue.size());
61 public void testAdd() {
62 TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>(2);
64 assertTrue("add", queue.add("1"));
65 assertEquals("getLargestQueueSize", 1, queue.getLargestQueueSize());
66 assertEquals("size", 1, queue.size());
68 assertTrue("add", queue.add("2"));
69 assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
70 assertEquals("size", 2, queue.size());
72 assertThrows(IllegalStateException.class, () -> queue.add("3"));
73 assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
74 assertEquals("size", 2, queue.size());
78 public void testAddAll() {
79 TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>(3);
81 queue.addAll(Arrays.asList("1", "2"));
82 assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
83 assertEquals("size", 2, queue.size());
85 assertThrows(IllegalStateException.class, () -> queue.addAll(Arrays.asList("3", "4")));
86 assertEquals("getLargestQueueSize", 3, queue.getLargestQueueSize());
87 assertEquals("size", 3, queue.size());