Package org.jmock.lib.concurrent
Class DeterministicExecutor
- java.lang.Object
-
- org.jmock.lib.concurrent.DeterministicExecutor
-
- All Implemented Interfaces:
java.util.concurrent.Executor
public class DeterministicExecutor extends java.lang.Object implements java.util.concurrent.ExecutorAnExecutorthat executes commands on the thread that callsrunPendingCommandsorrunUntilIdle. This is useful when using Mock Objects to test code that spawns background tasks.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<java.lang.Runnable>commands
-
Constructor Summary
Constructors Constructor Description DeterministicExecutor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidexecute(java.lang.Runnable command)booleanisIdle()Returns whether this executor is idle -- has no pending background tasks waiting to be run.voidrunPendingCommands()Runs all commands that are currently pending.voidrunUntilIdle()Runs executed commands until there are no commands pending execution, but does not tick time forward.
-
-
-
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 torunPendingCommands()orrunUntilIdle().
-
runUntilIdle
public void runUntilIdle()
Runs executed commands until there are no commands pending execution, but does not tick time forward.
-
execute
public void execute(java.lang.Runnable command)
- Specified by:
executein interfacejava.util.concurrent.Executor
-
-