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
9 package org.opendaylight.yangtools.util.concurrent;
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.fail;
14 import java.util.Arrays;
15 import java.util.concurrent.TimeUnit;
16 import org.junit.Test;
19 * Unit tests for TrackingLinkedBlockingQueue.
21 * @author Thomas Pantelis
23 public class TrackingLinkedBlockingQueueTest {
26 public void testOffer() throws InterruptedException {
28 TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>( 2 );
30 assertEquals( "offer", true, queue.offer( "1" ) );
31 assertEquals( "getLargestQueueSize", 1, queue.getLargestQueueSize() );
32 assertEquals( "size", 1, queue.size() );
34 assertEquals( "offer", true, queue.offer( "2", 1, TimeUnit.MILLISECONDS ) );
35 assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
36 assertEquals( "size", 2, queue.size() );
38 assertEquals( "offer", false, queue.offer( "3" ) );
39 assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
40 assertEquals( "size", 2, queue.size() );
42 assertEquals( "offer", false, queue.offer( "4", 1, TimeUnit.MILLISECONDS ) );
43 assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
44 assertEquals( "size", 2, queue.size() );
48 public void testPut() throws InterruptedException {
50 TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>();
53 assertEquals( "getLargestQueueSize", 1, queue.getLargestQueueSize() );
54 assertEquals( "size", 1, queue.size() );
57 assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
58 assertEquals( "size", 2, queue.size() );
62 public void testAdd() {
64 TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>( 2 );
66 assertEquals( "add", true, queue.add( "1" ) );
67 assertEquals( "getLargestQueueSize", 1, queue.getLargestQueueSize() );
68 assertEquals( "size", 1, queue.size() );
70 assertEquals( "add", true, queue.add( "2" ) );
71 assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
72 assertEquals( "size", 2, queue.size() );
76 fail( "Expected IllegalStateException" );
77 } catch( IllegalStateException e ) {
79 assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
80 assertEquals( "size", 2, queue.size() );
85 public void testAddAll() {
87 TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>( 3 );
89 queue.addAll( Arrays.asList( "1", "2" ) );
90 assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
91 assertEquals( "size", 2, queue.size() );
94 queue.addAll( Arrays.asList( "3", "4" ) );
95 fail( "Expected IllegalStateException" );
96 } catch( IllegalStateException e ) {
98 assertEquals( "getLargestQueueSize", 3, queue.getLargestQueueSize() );
99 assertEquals( "size", 3, queue.size() );