public void GetStateTransitionWithTResultAndStateFunc_returns_StateTransitionDynamicParameterized() { var stateMachine = new NStateManager.Sync.StateMachine <Sale, SaleState, SaleEvent>(sale => sale.State, (sale, newState) => sale.State = newState); var result = StateTransitionFactory <Sale, SaleState, SaleEvent> .GetStateTransition <string>(stateMachine , stateFunc : (sale, stringParam) => SaleState.Complete , name : "test" , priority : 1); Assert.IsType <StateTransitionDynamicParameterized <Sale, SaleState, SaleEvent, string> >(result); }
public void GetStateTransitionWithStateFunc_returns_StateTransitionDynamic() { var stateMachine = new NStateManager.Sync.StateMachine <Sale, SaleState, SaleEvent>(sale => sale.State, (sale, newState) => sale.State = newState); var result = StateTransitionFactory <Sale, SaleState, SaleEvent> .GetStateTransition(stateMachine , stateFunc : sale => SaleState.Complete , name : "test" , priority : 1); Assert.IsType <StateTransitionDynamic <Sale, SaleState, SaleEvent> >(result); }
public void GetStateTransition_returns_StateTransition() { var stateMachine = new NStateManager.Sync.StateMachine <Sale, SaleState, SaleEvent>(sale => sale.State, (sale, newState) => { }); var result = StateTransitionFactory <Sale, SaleState, SaleEvent> .GetStateTransition(stateMachine , toState : SaleState.Complete , condition : _ => true , name : "test" , priority : 1); Assert.IsType <NStateManager.Sync.StateTransition <Sale, SaleState, SaleEvent> >(result); }
public void GetStateTransitionWithStateMachineAndStateFunctionTRequest_returns_StateTransitionAutoDynamic() { var stateMachine = new NStateManager.Sync.StateMachine <Sale, SaleState, SaleEvent>(sale => sale.State, (sale, newState) => sale.State = newState); var result = StateTransitionFactory <Sale, SaleState, SaleEvent> .GetStateTransition <string>(stateMachine , startState : SaleState.Open , stateFunction : (sale, stringParam) => SaleState.Complete , triggerState : SaleState.ChangeDue , name : "test" , priority : 1); Assert.IsType <NStateManager.Sync.StateTransitionAutoDynamicParameterized <Sale, SaleState, SaleEvent, string> >(result); }