Organize Imports to be Checkstyle compliant in utils
[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
9 package org.opendaylight.yangtools.util.concurrent;
10
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.fail;
13
14 import java.util.Arrays;
15 import java.util.concurrent.TimeUnit;
16 import org.junit.Test;
17
18 /**
19  * Unit tests for TrackingLinkedBlockingQueue.
20  *
21  * @author Thomas Pantelis
22  */
23 public class TrackingLinkedBlockingQueueTest {
24
25     @Test
26     public void testOffer() throws InterruptedException {
27
28         TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>( 2 );
29
30         assertEquals( "offer", true, queue.offer( "1" ) );
31         assertEquals( "getLargestQueueSize", 1, queue.getLargestQueueSize() );
32         assertEquals( "size", 1, queue.size() );
33
34         assertEquals( "offer", true, queue.offer( "2", 1, TimeUnit.MILLISECONDS ) );
35         assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
36         assertEquals( "size", 2, queue.size() );
37
38         assertEquals( "offer", false, queue.offer( "3" ) );
39         assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
40         assertEquals( "size", 2, queue.size() );
41
42         assertEquals( "offer", false, 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
50         TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>();
51
52         queue.put( "1" );
53         assertEquals( "getLargestQueueSize", 1, queue.getLargestQueueSize() );
54         assertEquals( "size", 1, queue.size() );
55
56         queue.put( "2" );
57         assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
58         assertEquals( "size", 2, queue.size() );
59     }
60
61     @Test
62     public void testAdd() {
63
64         TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>( 2 );
65
66         assertEquals( "add", true, queue.add( "1" ) );
67         assertEquals( "getLargestQueueSize", 1, queue.getLargestQueueSize() );
68         assertEquals( "size", 1, queue.size() );
69
70         assertEquals( "add", true, queue.add( "2" ) );
71         assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
72         assertEquals( "size", 2, queue.size() );
73
74         try {
75             queue.add( "3" );
76             fail( "Expected IllegalStateException" );
77         } catch( IllegalStateException e ) {
78             // Expected
79             assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
80             assertEquals( "size", 2, queue.size() );
81         }
82     }
83
84     @Test
85     public void testAddAll() {
86
87         TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>( 3 );
88
89         queue.addAll( Arrays.asList( "1", "2" ) );
90         assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
91         assertEquals( "size", 2, queue.size() );
92
93         try {
94             queue.addAll( Arrays.asList( "3", "4" ) );
95             fail( "Expected IllegalStateException" );
96         } catch( IllegalStateException e ) {
97             // Expected
98             assertEquals( "getLargestQueueSize", 3, queue.getLargestQueueSize() );
99             assertEquals( "size", 3, queue.size() );
100         }
101     }
102 }