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;
17 import org.junit.Test;
20 * Unit tests for TrackingLinkedBlockingQueue.
22 * @author Thomas Pantelis
24 public class TrackingLinkedBlockingQueueTest {
27 public void testOffer() throws InterruptedException {
29 TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>( 2 );
31 assertEquals( "offer", true, queue.offer( "1" ) );
32 assertEquals( "getLargestQueueSize", 1, queue.getLargestQueueSize() );
33 assertEquals( "size", 1, queue.size() );
35 assertEquals( "offer", true, queue.offer( "2", 1, TimeUnit.MILLISECONDS ) );
36 assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
37 assertEquals( "size", 2, queue.size() );
39 assertEquals( "offer", false, queue.offer( "3" ) );
40 assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
41 assertEquals( "size", 2, queue.size() );
43 assertEquals( "offer", false, queue.offer( "4", 1, TimeUnit.MILLISECONDS ) );
44 assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
45 assertEquals( "size", 2, queue.size() );
49 public void testPut() throws InterruptedException {
51 TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>();
54 assertEquals( "getLargestQueueSize", 1, queue.getLargestQueueSize() );
55 assertEquals( "size", 1, queue.size() );
58 assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
59 assertEquals( "size", 2, queue.size() );
63 public void testAdd() {
65 TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>( 2 );
67 assertEquals( "add", true, queue.add( "1" ) );
68 assertEquals( "getLargestQueueSize", 1, queue.getLargestQueueSize() );
69 assertEquals( "size", 1, queue.size() );
71 assertEquals( "add", true, queue.add( "2" ) );
72 assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
73 assertEquals( "size", 2, queue.size() );
77 fail( "Expected IllegalStateException" );
78 } catch( IllegalStateException e ) {
80 assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
81 assertEquals( "size", 2, queue.size() );
86 public void testAddAll() {
88 TrackingLinkedBlockingQueue<String> queue = new TrackingLinkedBlockingQueue<>( 3 );
90 queue.addAll( Arrays.asList( "1", "2" ) );
91 assertEquals( "getLargestQueueSize", 2, queue.getLargestQueueSize() );
92 assertEquals( "size", 2, queue.size() );
95 queue.addAll( Arrays.asList( "3", "4" ) );
96 fail( "Expected IllegalStateException" );
97 } catch( IllegalStateException e ) {
99 assertEquals( "getLargestQueueSize", 3, queue.getLargestQueueSize() );
100 assertEquals( "size", 3, queue.size() );