Use assertThrows() in common-util
[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.Assert.assertEquals;
11 import static org.junit.Assert.assertFalse;
12 import static org.junit.Assert.assertThrows;
13 import static org.junit.Assert.assertTrue;
14
15 import java.util.Arrays;
16 import java.util.concurrent.TimeUnit;
17 import org.junit.Test;
18
19 /**
20  * Unit tests for TrackingLinkedBlockingQueue.
21  *
22  * @author Thomas Pantelis
23  */
24 public class TrackingLinkedBlockingQueueTest {
25
26     @Test
27     public void testOffer() throws InterruptedException {
28         TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>(2);
29
30         assertTrue("offer", queue.offer("1"));
31         assertEquals("getLargestQueueSize", 1, queue.getLargestQueueSize());
32         assertEquals("size", 1, queue.size());
33
34         assertTrue("offer", queue.offer("2", 1, TimeUnit.MILLISECONDS));
35         assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
36         assertEquals("size", 2, queue.size());
37
38         assertFalse("offer", queue.offer("3"));
39         assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
40         assertEquals("size", 2, queue.size());
41
42         assertFalse("offer", queue.offer("4", 1, TimeUnit.MILLISECONDS));
43         assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
44         assertEquals("size", 2, queue.size());
45     }
46
47     @Test
48     public void testPut() throws InterruptedException {
49         TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>();
50
51         queue.put("1");
52         assertEquals("getLargestQueueSize", 1, queue.getLargestQueueSize());
53         assertEquals("size", 1, queue.size());
54
55         queue.put("2");
56         assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
57         assertEquals("size", 2, queue.size());
58     }
59
60     @Test
61     public void testAdd() {
62         TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>(2);
63
64         assertTrue("add", queue.add("1"));
65         assertEquals("getLargestQueueSize", 1, queue.getLargestQueueSize());
66         assertEquals("size", 1, queue.size());
67
68         assertTrue("add", queue.add("2"));
69         assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
70         assertEquals("size", 2, queue.size());
71
72         assertThrows(IllegalStateException.class, () -> queue.add("3"));
73         assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
74         assertEquals("size", 2, queue.size());
75     }
76
77     @Test
78     public void testAddAll() {
79         TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>(3);
80
81         queue.addAll(Arrays.asList("1", "2"));
82         assertEquals("getLargestQueueSize", 2, queue.getLargestQueueSize());
83         assertEquals("size", 2, queue.size());
84
85         assertThrows(IllegalStateException.class, () -> queue.addAll(Arrays.asList("3", "4")));
86         assertEquals("getLargestQueueSize", 3, queue.getLargestQueueSize());
87         assertEquals("size", 3, queue.size());
88     }
89 }