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.Executor
AnExecutor
that executes commands on the thread that callsrunPendingCommands
orrunUntilIdle
. 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 void
execute(java.lang.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.
-
-
-
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:
execute
in interfacejava.util.concurrent.Executor
-
-