public virtual void SetUp() { _stateTransitionOrchestrator = _stateTransitionOrchestrator.Fake(); _uninitialisedStateFactory = _uninitialisedStateFactory.Fake(); _creatingStateFactory = _creatingStateFactory.Fake(); _validStateFactory = _validStateFactory.Fake(); _expiredStateFactory = _expiredStateFactory.Fake(); _updatingStateFactory = _updatingStateFactory.Fake(); _getProjectionLockFactory = _getProjectionLockFactory.Fake(); _uninitialisedState = _uninitialisedState.Fake(); _creatingState = _creatingState.Fake(); _validState = _validState.Fake(); _expiredState = _expiredState.Fake(); _updatingState = _updatingState.Fake(); _initialiseStateCall = A.CallTo(() => _stateTransitionOrchestrator.TransitionToState(A <IState <Department> > .That.Matches(state => state.Id == StateId.Uninitialised))); _initialiseStateTask = new Task(() => {}); _initialiseStateCall.Returns(_initialiseStateTask); ConfigureStateFactory_ToReturnState(_uninitialisedStateFactory, _uninitialisedState); ConfigureStateFactory_ToReturnState(_creatingStateFactory, _creatingState); ConfigureStateFactory_ToReturnState(_validStateFactory, _validState); ConfigureStateFactory_ToReturnState(_expiredStateFactory, _expiredState); ConfigureStateFactory_ToReturnState(_updatingStateFactory, _updatingState); ConfigureState_ToHaveStateId(_uninitialisedState, StateId.Uninitialised); ConfigureState_ToHaveStateId(_creatingState, StateId.Creating); ConfigureState_ToHaveStateId(_validState, StateId.Valid); ConfigureState_ToHaveStateId(_expiredState, StateId.Expired); ConfigureState_ToHaveStateId(_updatingState, StateId.Updating); _sut = new ProjectionSystem <Department>( _stateTransitionOrchestrator, _uninitialisedStateFactory, _creatingStateFactory, _validStateFactory, _expiredStateFactory, _updatingStateFactory, _getProjectionLockFactory); }