A type representing the commands that can run in the system under test.
The abstract state type.
A command that never should throw an exception on execution.
A type representing one instance of the system under test (SUT).
A command that doesn't return a result, only succeeds or fails.
Decides if newSut should be allowed to be called with the specified state instance.
Destroy the system represented by the given Sut instance, and release any resources related to it.
A generator that, given the current abstract state, should produce a suitable Command instance.
The precondition for the initial state, when no commands yet have run.
Create a new Sut instance with an internal state that corresponds to the provided abstract state instance.
A command that doesn't do anything
A command that runs a sequence of other commands.
A property that can be used to test this Commands specification.
Override this to provide a custom Shrinker for your internal State.