An abstract representation of the result of running this command in the system under test.
An abstract representation of the result of running this command in the system under test. The Result type should be immutable and it should encode everything about the command run that is necessary to know in order to correctly implement the postCondition method.
Returns a new State instance that represents the state of the system after this command has run, given the system was in the provided state before the run.
Precondition that decides if this command is allowed to run when the system under test is in the provided state.
Precondition that decides if this command is allowed to run when the system under test is in the provided state.
Executes the command in the system under test, and returns a representation of the result of the command run.
Executes the command in the system under test, and returns a representation of the result of the command run. The result value is later used for verifying that the command behaved according to the specification, by the postCondition method.
Postcondition that decides if this command produced the correct result or not, given the system was in the provided state before the command ran.
Postcondition that decides if this command produced the correct result or not, given the system was in the provided state before the command ran.
A command that doesn't return a result, only succeeds or fails.