Migrate common/util to JUnit5
[yangtools.git] / common / util / src / test / java / org / opendaylight / yangtools / util / concurrent / TrackingLinkedBlockingQueueTest.java
1 /*
2  * Copyright (c) 2014 Brocade Communications Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.yangtools.util.concurrent;
9
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;
14
15 import java.util.Arrays;
16 import java.util.concurrent.TimeUnit;
17 import org.junit.jupiter.api.Test;
18
19 /**
20  * Unit tests for TrackingLinkedBlockingQueue.
21  *
22  * @author Thomas Pantelis
23  */
24 class TrackingLinkedBlockingQueueTest {
25
26     @Test
27     void testOffer() throws InterruptedException {
28         final var queue = new TrackingLinkedBlockingQueue<>(2);
29
30         assertTrue(queue.offer("1"), "offer");
31         assertEquals(1, queue.getLargestQueueSize(), "getLargestQueueSize");
32         assertEquals(1, queue.size(), "size");
33
34         assertTrue(queue.offer("2", 1, TimeUnit.MILLISECONDS), "offer");
35         assertEquals(2, queue.getLargestQueueSize(), "getLargestQueueSize");
36         assertEquals(2, queue.size(), "size");
37
38         assertFalse(queue.offer("3"), "offer");
39         assertEquals(2, queue.getLargestQueueSize(), "getLargestQueueSize");
40         assertEquals(2, queue.size(), "size");
41
42         assertFalse(queue.offer("4", 1, TimeUnit.MILLISECONDS), "offer");
43         assertEquals(2, queue.getLargestQueueSize(), "getLargestQueueSize");
44         assertEquals(2, queue.size(), "size");
45     }
46
47     @Test
48     void testPut() throws InterruptedException {
49         final var queue = new TrackingLinkedBlockingQueue<>();
50
51         queue.put("1");
52         assertEquals(1, queue.getLargestQueueSize(), "getLargestQueueSize");
53         assertEquals(1, queue.size(), "size");
54
55         queue.put("2");
56         assertEquals(2, queue.getLargestQueueSize(), "getLargestQueueSize");
57         assertEquals(2, queue.size(), "size");
58     }
59
60     @Test
61     void testAdd() {
62         final var queue = new TrackingLinkedBlockingQueue<>(2);
63
64         assertTrue(queue.add("1"), "add");
65         assertEquals(1, queue.getLargestQueueSize(), "getLargestQueueSize");
66         assertEquals(1, queue.size(), "size");
67
68         assertTrue(queue.add("2"), "add");
69         assertEquals(2, queue.getLargestQueueSize(), "getLargestQueueSize");
70         assertEquals(2, queue.size(), "size");
71
72         assertThrows(IllegalStateException.class, () -> queue.add("3"));
73         assertEquals(2, queue.getLargestQueueSize(), "getLargestQueueSize");
74         assertEquals(2, queue.size(), "size");
75     }
76
77     @Test
78     void testAddAll() {
79         final var queue = new TrackingLinkedBlockingQueue<>(3);
80
81         queue.addAll(Arrays.asList("1", "2"));
82         assertEquals(2, queue.getLargestQueueSize(), "getLargestQueueSize");
83         assertEquals(2, queue.size(), "size");
84
85         assertThrows(IllegalStateException.class, () -> queue.addAll(Arrays.asList("3", "4")));
86         assertEquals(3, queue.getLargestQueueSize(), "getLargestQueueSize");
87         assertEquals(3, queue.size(), "size");
88     }
89 }