private void ValidateCanRemoveEventHandler(TState stateId, IStateEventHandler eventHandler) { if (IsLocked(stateId)) { throw new UnableToRemoveStateMachineElementException(_stateMachine, eventHandler); } }
private void ValidateIsNotNull(IStateEventHandler eventHandler) { if (eventHandler == null) { throw new ArgumentNullException(nameof(eventHandler)); } }
public RequestHandler(SkillRequest @event, ILambdaContext context, IStateEventHandler <TAttributes> stateEventHandler) { Event = @event; Context = context; UserId = @event.Context?.System.User.UserId ?? @event.Session.User.UserId; _stateEventHandler = stateEventHandler; }
public bool ContainsEventHandlerOn(TState stateId, IStateEventHandler eventHandler) { if (_eventHandlers.ContainsKey(stateId)) { return(_eventHandlers[stateId].Contains(eventHandler)); } return(false); }
public void SubscribeEventHandlerTo(TState stateId, IStateEventHandler eventHandler) { ValidateHasStateWithId(stateId); if (_stateEventHandlers.ContainsKey(stateId) == false) { _stateEventHandlers.Add(stateId, new HashSet <IStateEventHandler>()); } _stateEventHandlers[stateId].Add(eventHandler); }
public void AddEventHandlerTo(TState stateId, IStateEventHandler eventHandler) { ValidateIsNotNull(eventHandler); if (_eventHandlers.ContainsKey(stateId) == false) { _eventHandlers.Add(stateId, new List <IStateEventHandler>()); } _eventHandlers[stateId].Add(eventHandler); }
public void SetUp() { _stateMachine = NewStateMachine(); _stateId1 = NewStateId(); _stateId2 = NewStateId(); _stateId3 = NewStateId(); _stateId4 = NewStateId(); _stateId5 = NewStateId(); _trigger1 = NewTrigger(); _trigger2 = NewTrigger(); _trigger3 = NewTrigger(); _trigger4 = NewTrigger(); _trigger5 = NewTrigger(); _stateObject1 = Substitute.For <IState>(); _stateObject2 = Substitute.For <IState>(); _stateObject3 = Substitute.For <IState>(); _stateObject4 = Substitute.For <IState>(); _stateObject5 = Substitute.For <IState>(); _guardCondition1 = Substitute.For <IGuardCondition>(); _guardCondition2 = Substitute.For <IGuardCondition>(); _guardCondition3 = Substitute.For <IGuardCondition>(); _guardCondition4 = Substitute.For <IGuardCondition>(); _guardCondition5 = Substitute.For <IGuardCondition>(); _stateEventHandler1 = Substitute.For <IStateEventHandler>(); _stateEventHandler2 = Substitute.For <IStateEventHandler>(); _stateEventHandler3 = Substitute.For <IStateEventHandler>(); _stateEventHandler4 = Substitute.For <IStateEventHandler>(); _stateEventHandler5 = Substitute.For <IStateEventHandler>(); _event1 = Substitute.For <IEvent>(); _onBeforeStateChangesSubscriptor1 = Substitute.For <StateChanged <TState, TTrigger> >(); _onBeforeStateChangesSubscriptor2 = Substitute.For <StateChanged <TState, TTrigger> >(); _onBeforeStateChangesSubscriptor3 = Substitute.For <StateChanged <TState, TTrigger> >(); _onStateChangedSubscriptor1 = Substitute.For <StateChanged <TState, TTrigger> >(); _onStateChangedSubscriptor2 = Substitute.For <StateChanged <TState, TTrigger> >(); _onStateChangedSubscriptor3 = Substitute.For <StateChanged <TState, TTrigger> >(); _startCallback = Substitute.For <Action>(); _stopCallback = Substitute.For <Action>(); _updateCallback = Substitute.For <Action>(); _triggerCallback = Substitute.For <Action <bool> >(); _sendEventCallback = Substitute.For <Action <bool> >(); }
public void Add_Multiple_Event_Handlers() { var hsm = NewStateMachine(); IStateEventHandler eventHandler1 = Substitute.For <IStateEventHandler>(); IStateEventHandler eventHandler2 = Substitute.For <IStateEventHandler>(); hsm.AddEmpty(1); hsm.SubscribeEventHandlersTo(1, eventHandler1, eventHandler2); Assert.IsTrue(hsm.HasEventHandlerOn(1, eventHandler1)); Assert.IsTrue(hsm.HasEventHandlerOn(1, eventHandler2)); }
public bool RemoveEventHandlerFrom(TState stateId, IStateEventHandler eventHandler) { if (_eventHandlers.ContainsKey(stateId)) { bool removed = _eventHandlers[stateId].Remove(eventHandler); if (_eventHandlers[stateId].Count == 0) { _eventHandlers.Remove(stateId); } return(removed); } return(false); }
public void Add_Multiple_Event_Handlers() { var fsm = NewStateMachine(); IStateEventHandler eventHandler1 = Substitute.For <IStateEventHandler>(); IStateEventHandler eventHandler2 = Substitute.For <IStateEventHandler>(); var stateId1 = NewStateId(); fsm.AddEmpty(stateId1); fsm.SubscribeEventHandlersTo(stateId1, eventHandler1, eventHandler2); Assert.IsTrue(fsm.ContainsEventHandlerOn(stateId1, eventHandler1)); Assert.IsTrue(fsm.ContainsEventHandlerOn(stateId1, eventHandler2)); }
public bool UnsubscribeEventHandlerFrom(TState stateId, IStateEventHandler eventHandler) { ValidateHasStateWithId(stateId); if (_stateEventHandlers.ContainsKey(stateId)) { _stateEventHandlers[stateId].Remove(eventHandler); if (_stateEventHandlers[stateId].Count == 0) { _stateEventHandlers.Remove(stateId); } return(true); } return(false); }
public bool ContainsEventHandlerOn(TState stateId, IStateEventHandler eventHandler) { return(_eventHandlers.ContainsEventHandlerOn(stateId, eventHandler)); }
public bool UnsubscribeEventHandlerFrom(TState stateId, IStateEventHandler eventHandler) { return(_hierarchicalEventDispatcher.RemoveEventHandlerFrom(stateId, eventHandler)); }
public void AddEventHandlerTo(TState stateId, IStateEventHandler eventHandler) { ValidateContainsState(stateId); _eventHandlers.AddEventHandlerTo(stateId, eventHandler); }
public bool HasEventHandlerOn(TState stateId, IStateEventHandler eventHandler) { return(_hierarchicalEventDispatcher.HasEventHandlerOn(stateId, eventHandler)); }
public bool RemoveEventHandlerFrom(TState stateId, IStateEventHandler eventHandler) { return(_eventHandlers.RemoveEventHandlerFrom(stateId, eventHandler)); }
public bool HasEventHandlerOn(TState stateId, IStateEventHandler eventListener) { return(_stateEventHandlers.ContainsKey(stateId) && _stateEventHandlers[stateId].Contains(eventListener)); }
public void SubscribeEventHandlerTo(TState stateId, IStateEventHandler eventHandler) { _hierarchicalEventDispatcher.AddEventHandlerTo(stateId, eventHandler); }