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