com.google.common.util.concurrent.testing
Class AbstractListenableFutureTest

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by com.google.common.util.concurrent.testing.AbstractListenableFutureTest
All Implemented Interfaces:
junit.framework.Test
Direct Known Subclasses:
AbstractCheckedFutureTest

@Beta
public abstract class AbstractListenableFutureTest
extends junit.framework.TestCase

Abstract test case parent for anything implementing ListenableFuture. Tests the two get methods and the addListener method.

Since:
10.0
Author:
Sven Mawson

Field Summary
protected  ListenableFuture<Boolean> future
           
protected  CountDownLatch latch
           
 
Constructor Summary
AbstractListenableFutureTest()
           
 
Method Summary
protected abstract
<V> ListenableFuture<V>
createListenableFuture(V value, Exception except, CountDownLatch waitOn)
          Constructs a listenable future with a value available after the latch has counted down.
protected  void setUp()
           
protected  void tearDown()
           
 void testAllListenersCompleteSuccessfully()
          Tests that all listeners complete, even if they were added before or after the future was finishing.
 void testCanceledFutureThrowsCancellation()
          Tests that a canceled future throws a cancellation exception.
 void testGetBlocksUntilValueAvailable()
          Tests that the Future.get() method blocks until a value is available.
 void testListenersNotifiedOnError()
           
 void testTimeoutOnGetWorksCorrectly()
          Tests that the Future.get(long, TimeUnit) method times out correctly.
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, run, runBare, runTest, 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
 

Field Detail

latch

protected CountDownLatch latch

future

protected ListenableFuture<Boolean> future
Constructor Detail

AbstractListenableFutureTest

public AbstractListenableFutureTest()
Method Detail

setUp

protected void setUp()
              throws Exception
Overrides:
setUp in class junit.framework.TestCase
Throws:
Exception

tearDown

protected void tearDown()
                 throws Exception
Overrides:
tearDown in class junit.framework.TestCase
Throws:
Exception

createListenableFuture

protected abstract <V> ListenableFuture<V> createListenableFuture(V value,
                                                                  Exception except,
                                                                  CountDownLatch waitOn)
Constructs a listenable future with a value available after the latch has counted down.


testGetBlocksUntilValueAvailable

public void testGetBlocksUntilValueAvailable()
                                      throws Throwable
Tests that the Future.get() method blocks until a value is available.

Throws:
Throwable

testTimeoutOnGetWorksCorrectly

public void testTimeoutOnGetWorksCorrectly()
                                    throws InterruptedException,
                                           ExecutionException
Tests that the Future.get(long, TimeUnit) method times out correctly.

Throws:
InterruptedException
ExecutionException

testCanceledFutureThrowsCancellation

public void testCanceledFutureThrowsCancellation()
                                          throws Exception
Tests that a canceled future throws a cancellation exception. This method checks the cancel, isCancelled, and isDone methods.

Throws:
Exception

testListenersNotifiedOnError

public void testListenersNotifiedOnError()
                                  throws Exception
Throws:
Exception

testAllListenersCompleteSuccessfully

public void testAllListenersCompleteSuccessfully()
                                          throws InterruptedException,
                                                 ExecutionException
Tests that all listeners complete, even if they were added before or after the future was finishing. Also acts as a concurrency test to make sure the locking is done correctly when a future is finishing so that no listeners can be lost.

Throws:
InterruptedException
ExecutionException


Copyright © 2010-2012. All Rights Reserved.