org.jmock.lib.concurrent
Class DeterministicExecutor

java.lang.Object
  extended by org.jmock.lib.concurrent.DeterministicExecutor
All Implemented Interfaces:
Executor

public class DeterministicExecutor
extends Object
implements Executor

An Executor that executes commands on the thread that calls runPendingCommands or runUntilIdle. This is useful when using Mock Objects to test code that spawns background tasks.

Author:
nat

Constructor Summary
DeterministicExecutor()
           
 
Method Summary
 void execute(Runnable command)
           
 boolean isIdle()
          Returns whether this executor is idle -- has no pending background tasks waiting to be run.
 void runPendingCommands()
          Runs all commands that are currently pending.
 void runUntilIdle()
          Runs executed commands until there are no commands pending execution, but does not tick time forward.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DeterministicExecutor

public DeterministicExecutor()
Method Detail

isIdle

public boolean isIdle()
Returns whether this executor is idle -- has no pending background tasks waiting to be run.

Returns:
true if there are no background tasks to be run, false otherwise.
See Also:
runPendingCommands(), runUntilIdle()

runPendingCommands

public void runPendingCommands()
Runs all commands that are currently pending. If those commands also schedule commands for execution, the scheduled commands will not be executed until the next call to runPendingCommands() or runUntilIdle().


runUntilIdle

public void runUntilIdle()
Runs executed commands until there are no commands pending execution, but does not tick time forward.


execute

public void execute(Runnable command)
Specified by:
execute in interface Executor