public override void SetUp() { base.SetUp(); _sut = (IStateTransitionOrchestrator)base._sut; _state = A.Fake <IState <Department> >(); _transitionGuard = _transitionGuard.Fake(); A.CallTo(() => _stateTransitionGuardFactory.CreateFor(_state)).Returns(_transitionGuard); }
public ProjectionSystem( IStateTransitionOrchestrator <TItem> stateTransitionOrchestrator, IStateFactory <TItem> uninitialisedStateFactory, IStateFactory <TItem> creatingStateFactory, IStateFactory <TItem> validStateFactory, IStateFactory <TItem> expiredStateFactory, IStateFactory <TItem> updatingStateFactory, ISyncLockFactory getProjectionLockFactory) { if (stateTransitionOrchestrator == null) { throw new ArgumentNullException(nameof(stateTransitionOrchestrator)); } if (uninitialisedStateFactory == null) { throw new ArgumentNullException(nameof(uninitialisedStateFactory)); } if (creatingStateFactory == null) { throw new ArgumentNullException(nameof(creatingStateFactory)); } if (validStateFactory == null) { throw new ArgumentNullException(nameof(validStateFactory)); } if (expiredStateFactory == null) { throw new ArgumentNullException(nameof(expiredStateFactory)); } if (updatingStateFactory == null) { throw new ArgumentNullException(nameof(updatingStateFactory)); } if (getProjectionLockFactory == null) { throw new ArgumentNullException(nameof(getProjectionLockFactory)); } _stateTransitionOrchestrator = stateTransitionOrchestrator; _creatingState = creatingStateFactory.Create(this); _validState = validStateFactory.Create(this); _expiredState = expiredStateFactory.Create(this); _updatingState = updatingStateFactory.Create(this); _getProjectionLockFactory = getProjectionLockFactory; var initialisationTask = _stateTransitionOrchestrator .TransitionToState(uninitialisedStateFactory.Create(this)); if (!initialisationTask.IsCompleted) { initialisationTask.RunSynchronously(); } }
public LoggingStateTransitionOrchestrator(IStateTransitionOrchestrator <TItem> inner, ITraceLogger traceLogger) { if (inner == null) { throw new ArgumentNullException(nameof(inner)); } if (traceLogger == null) { throw new ArgumentNullException(nameof(traceLogger)); } _inner = inner; _traceLogger = traceLogger; }
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); }
public virtual void SetUp() { _inner = _inner.Fake(); _traceLogger = _traceLogger.Fake(); _sut = new LoggingStateTransitionOrchestrator <Department>(_inner, _traceLogger); }