Class ArrayBlockingQueueTest

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by JSR166TestCase
              extended by ArrayBlockingQueueTest
All Implemented Interfaces:
junit.framework.Test

public class ArrayBlockingQueueTest
extends JSR166TestCase


Nested Class Summary
static class ArrayBlockingQueueTest.Fair
           
static class ArrayBlockingQueueTest.NonFair
           
 
Nested classes/interfaces inherited from class JSR166TestCase
JSR166TestCase.AdjustablePolicy, JSR166TestCase.CallableOne, JSR166TestCase.CheckedBarrier, JSR166TestCase.CheckedCallable<T>, JSR166TestCase.CheckedInterruptedCallable<T>, JSR166TestCase.CheckedInterruptedRunnable, JSR166TestCase.CheckedRecursiveAction, JSR166TestCase.CheckedRecursiveTask<T>, JSR166TestCase.CheckedRunnable, JSR166TestCase.LongPossiblyInterruptedRunnable, JSR166TestCase.MediumInterruptedRunnable, JSR166TestCase.MediumPossiblyInterruptedRunnable, JSR166TestCase.MediumRunnable, JSR166TestCase.NoOpCallable, JSR166TestCase.NoOpREHandler, JSR166TestCase.NoOpRunnable, JSR166TestCase.NPETask, JSR166TestCase.RunnableShouldThrow, JSR166TestCase.ShortInterruptedRunnable, JSR166TestCase.ShortRunnable, JSR166TestCase.SimpleThreadFactory, JSR166TestCase.SmallCallable, JSR166TestCase.SmallPossiblyInterruptedRunnable, JSR166TestCase.SmallRunnable, JSR166TestCase.StringTask, JSR166TestCase.ThreadShouldThrow, JSR166TestCase.TrackedCallable, JSR166TestCase.TrackedLongRunnable, JSR166TestCase.TrackedMediumRunnable, JSR166TestCase.TrackedNoOpRunnable, JSR166TestCase.TrackedRunnable, JSR166TestCase.TrackedShortRunnable, JSR166TestCase.TrackedSmallRunnable
 
Field Summary
 
Fields inherited from class JSR166TestCase
eight, expensiveTests, five, four, LONG_DELAY_MS, m1, m10, m2, m3, m4, m5, m6, MEDIUM_DELAY_MS, nine, one, seven, SHORT_DELAY_MS, six, SIZE, SMALL_DELAY_MS, TEST_STRING, three, two, zero
 
Constructor Summary
ArrayBlockingQueueTest()
           
 
Method Summary
static void main(java.lang.String[] args)
           
static junit.framework.Test suite()
           
 void testAdd()
          add succeeds if not full; throws ISE if full
 void testAddAll1()
          addAll(null) throws NPE
 void testAddAll2()
          addAll of a collection with null elements throws NPE
 void testAddAll3()
          addAll of a collection with any null elements throws NPE after possibly adding some elements
 void testAddAll4()
          addAll throws ISE if not enough room
 void testAddAll5()
          Queue contains all elements, in traversal order, of successful addAll
 void testAddAllSelf()
          addAll(this) throws IAE
 void testAddNull()
          add(null) throws NPE
 void testBlockingPut()
          put blocks interruptibly if full
 void testBlockingTake()
          Take removes existing elements until empty, then blocks interruptibly
 void testClear()
          clear removes all elements
 void testConstructor1()
          A new queue has the indicated capacity
 void testConstructor2()
          Constructor throws IAE if capacity argument nonpositive
 void testConstructor3()
          Initializing from null Collection throws NPE
 void testConstructor4()
          Initializing from Collection of null elements throws NPE
 void testConstructor5()
          Initializing from Collection with some null elements throws NPE
 void testConstructor6()
          Initializing from too large collection throws IAE
 void testConstructor7()
          Queue contains all elements of collection used to initialize
 void testContains()
          contains(x) reports true when elements added but not yet removed
 void testContainsAll()
          containsAll(c) is true when c contains a subset of elements
 void testDrainTo()
          drainTo(c) empties queue into another collection c
 void testDrainToN()
          drainTo(c, n) empties first min(n, size) elements of queue into c
 void testDrainToNull()
          drainTo(null) throws NPE
 void testDrainToNullN()
          drainTo(null, n) throws NPE
 void testDrainToSelf()
          drainTo(this) throws IAE
 void testDrainToSelfN()
          drainTo(this, n) throws IAE
 void testDrainToWithActivePut()
          drainTo empties full queue, unblocking a waiting put.
 void testElement()
          element returns next element, or throws NSEE if empty
 void testEmptyFull()
          Queue transitions from empty to full when elements added
 void testInterruptedTimedPoll()
          Interrupted timed poll throws InterruptedException instead of returning timeout status
 void testIterator()
          iterator iterates through all elements
 void testIteratorOrdering()
          iterator ordering is FIFO
 void testIteratorRemove()
          iterator.remove removes current element
 void testOffer()
          Offer succeeds if not full; fails if full
 void testOfferInExecutor()
          offer transfers elements across Executor tasks
 void testOfferNull()
          offer(null) throws NPE
 void testPeek()
          peek returns next element, or null if empty
 void testPoll()
          poll succeeds unless empty
 void testPollInExecutor()
          poll retrieves elements across Executor threads
 void testPut()
          all elements successfully put are contained
 void testPutNull()
          put(null) throws NPE
 void testPutWithTake()
          put blocks waiting for take when full
 void testRemainingCapacity()
          remainingCapacity decreases on add, increases on remove
 void testRemove()
          remove removes next element, or throws NSEE if empty
 void testRemoveAll()
          removeAll(c) removes only those elements of c and reports true if changed
 void testRemoveElement()
          remove(x) removes x and returns true if present
 void testRetainAll()
          retainAll(c) retains only those elements of c and reports true if changed
 void testSerialization()
          A deserialized serialized queue has same elements in same order
 void testTake()
          take retrieves elements in FIFO order
 void testTimedOffer()
          timed offer times out if full and elements not taken
 void testTimedPoll()
          timed poll with nonzero timeout succeeds when non-empty, else times out
 void testTimedPoll0()
          timed poll with zero timeout succeeds when non-empty, else times out
 void testToArray_NullArg()
          toArray(null) throws NullPointerException
 void testToArray()
          toArray contains all elements in FIFO order
 void testToArray1_BadArg()
          toArray(incompatible array type) throws ArrayStoreException
 void testToArray2()
          toArray(a) contains all elements in FIFO order
 void testToString()
          toString contains toStrings of elements
 void testWeaklyConsistentIteration()
          Modifications do not cause iterators to fail
 
Methods inherited from class JSR166TestCase
assertThreadJoinTimesOut, awaiter, checkEmpty, delay, getShortDelay, joinPool, latchAwaitingStringTask, newTestSuite, permissivePolicy, possiblyInterruptedRunnable, runTest, runTestProfiled, runWithoutPermissions, runWithPermissions, setDelays, setUp, shouldThrow, shouldThrow, tearDown, threadAssertEquals, threadAssertEquals, threadAssertFalse, threadAssertNull, threadAssertSame, threadAssertTrue, threadFail, threadRecordFailure, threadShouldThrow, threadShouldThrow, threadUnexpectedException, trackedRunnable
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, run, runBare, setName, toString
 
Methods inherited from class junit.framework.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail, failNotEquals, failNotSame, failSame, format
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ArrayBlockingQueueTest

public ArrayBlockingQueueTest()
Method Detail

main

public static void main(java.lang.String[] args)

suite

public static junit.framework.Test suite()

testConstructor1

public void testConstructor1()
A new queue has the indicated capacity


testConstructor2

public void testConstructor2()
Constructor throws IAE if capacity argument nonpositive


testConstructor3

public void testConstructor3()
Initializing from null Collection throws NPE


testConstructor4

public void testConstructor4()
Initializing from Collection of null elements throws NPE


testConstructor5

public void testConstructor5()
Initializing from Collection with some null elements throws NPE


testConstructor6

public void testConstructor6()
Initializing from too large collection throws IAE


testConstructor7

public void testConstructor7()
Queue contains all elements of collection used to initialize


testEmptyFull

public void testEmptyFull()
Queue transitions from empty to full when elements added


testRemainingCapacity

public void testRemainingCapacity()
remainingCapacity decreases on add, increases on remove


testOfferNull

public void testOfferNull()
offer(null) throws NPE


testAddNull

public void testAddNull()
add(null) throws NPE


testOffer

public void testOffer()
Offer succeeds if not full; fails if full


testAdd

public void testAdd()
add succeeds if not full; throws ISE if full


testAddAll1

public void testAddAll1()
addAll(null) throws NPE


testAddAllSelf

public void testAddAllSelf()
addAll(this) throws IAE


testAddAll2

public void testAddAll2()
addAll of a collection with null elements throws NPE


testAddAll3

public void testAddAll3()
addAll of a collection with any null elements throws NPE after possibly adding some elements


testAddAll4

public void testAddAll4()
addAll throws ISE if not enough room


testAddAll5

public void testAddAll5()
Queue contains all elements, in traversal order, of successful addAll


testPutNull

public void testPutNull()
                 throws java.lang.InterruptedException
put(null) throws NPE

Throws:
java.lang.InterruptedException

testPut

public void testPut()
             throws java.lang.InterruptedException
all elements successfully put are contained

Throws:
java.lang.InterruptedException

testBlockingPut

public void testBlockingPut()
                     throws java.lang.InterruptedException
put blocks interruptibly if full

Throws:
java.lang.InterruptedException

testPutWithTake

public void testPutWithTake()
                     throws java.lang.InterruptedException
put blocks waiting for take when full

Throws:
java.lang.InterruptedException

testTimedOffer

public void testTimedOffer()
                    throws java.lang.InterruptedException
timed offer times out if full and elements not taken

Throws:
java.lang.InterruptedException

testTake

public void testTake()
              throws java.lang.InterruptedException
take retrieves elements in FIFO order

Throws:
java.lang.InterruptedException

testBlockingTake

public void testBlockingTake()
                      throws java.lang.InterruptedException
Take removes existing elements until empty, then blocks interruptibly

Throws:
java.lang.InterruptedException

testPoll

public void testPoll()
poll succeeds unless empty


testTimedPoll0

public void testTimedPoll0()
                    throws java.lang.InterruptedException
timed poll with zero timeout succeeds when non-empty, else times out

Throws:
java.lang.InterruptedException

testTimedPoll

public void testTimedPoll()
                   throws java.lang.InterruptedException
timed poll with nonzero timeout succeeds when non-empty, else times out

Throws:
java.lang.InterruptedException

testInterruptedTimedPoll

public void testInterruptedTimedPoll()
                              throws java.lang.InterruptedException
Interrupted timed poll throws InterruptedException instead of returning timeout status

Throws:
java.lang.InterruptedException

testPeek

public void testPeek()
peek returns next element, or null if empty


testElement

public void testElement()
element returns next element, or throws NSEE if empty


testRemove

public void testRemove()
remove removes next element, or throws NSEE if empty


testRemoveElement

public void testRemoveElement()
remove(x) removes x and returns true if present


testContains

public void testContains()
contains(x) reports true when elements added but not yet removed


testClear

public void testClear()
clear removes all elements


testContainsAll

public void testContainsAll()
containsAll(c) is true when c contains a subset of elements


testRetainAll

public void testRetainAll()
retainAll(c) retains only those elements of c and reports true if changed


testRemoveAll

public void testRemoveAll()
removeAll(c) removes only those elements of c and reports true if changed


testToArray

public void testToArray()
toArray contains all elements in FIFO order


testToArray2

public void testToArray2()
toArray(a) contains all elements in FIFO order


testToArray_NullArg

public void testToArray_NullArg()
toArray(null) throws NullPointerException


testToArray1_BadArg

public void testToArray1_BadArg()
toArray(incompatible array type) throws ArrayStoreException


testIterator

public void testIterator()
                  throws java.lang.InterruptedException
iterator iterates through all elements

Throws:
java.lang.InterruptedException

testIteratorRemove

public void testIteratorRemove()
iterator.remove removes current element


testIteratorOrdering

public void testIteratorOrdering()
iterator ordering is FIFO


testWeaklyConsistentIteration

public void testWeaklyConsistentIteration()
Modifications do not cause iterators to fail


testToString

public void testToString()
toString contains toStrings of elements


testOfferInExecutor

public void testOfferInExecutor()
offer transfers elements across Executor tasks


testPollInExecutor

public void testPollInExecutor()
poll retrieves elements across Executor threads


testSerialization

public void testSerialization()
                       throws java.lang.Exception
A deserialized serialized queue has same elements in same order

Throws:
java.lang.Exception

testDrainToNull

public void testDrainToNull()
drainTo(null) throws NPE


testDrainToSelf

public void testDrainToSelf()
drainTo(this) throws IAE


testDrainTo

public void testDrainTo()
drainTo(c) empties queue into another collection c


testDrainToWithActivePut

public void testDrainToWithActivePut()
                              throws java.lang.InterruptedException
drainTo empties full queue, unblocking a waiting put.

Throws:
java.lang.InterruptedException

testDrainToNullN

public void testDrainToNullN()
drainTo(null, n) throws NPE


testDrainToSelfN

public void testDrainToSelfN()
drainTo(this, n) throws IAE


testDrainToN

public void testDrainToN()
drainTo(c, n) empties first min(n, size) elements of queue into c