public TestCommand(CommandState state, bool shouldFailIfFiltered = false,
Action<CommandState, Exception> startRequestAction = null, bool blockCanExecute = false, Func<ProcessorInput, bool> interpretResponseAction = null,
bool shouldExecuteForever = false, TimeSpan? pendingTimeout = null, TimeSpan? executionTimeout = null,
Action executeAction = null, bool shouldFailIfBlocked = false, Action<IProcessedCommand> beforeExecuteAction = null, Action<IProcessedCommand, Exception> errorAction = null,
Action<IProcessedCommand> fullfillmentAction = null, Action<IProcessedCommand> completeAction = null, bool shouldCompleteAfterExecute = false, string groupId = null)
{
_startRequestAction = startRequestAction;
_blockCanExecute = blockCanExecute;
_interpretResponseAction = interpretResponseAction;
_executeAction = executeAction;
CurrentState = state;
ShouldFailIfFiltered = shouldFailIfFiltered;
ShouldExecuteForever = shouldExecuteForever;
ShouldFailIfBlocked = shouldFailIfBlocked;
ShouldCompleteAfterExecute = shouldCompleteAfterExecute;
CommandGroup = groupId;
PendingTimeout = pendingTimeout;
ExecutingTimeout = executionTimeout;
BeforeExecuteAction = beforeExecuteAction;
CompleteAction = completeAction;
FullfillmentAction = fullfillmentAction;
ErrorAction = errorAction;
}