コード例 #1
0
 public void Create_StateMachine_with_Workflow_Definitions()
 {
     XStateMachineDefinition<int, int, int> definitions = MakeSampleStateMachineDefinitions();
     var initialPosition = new XStatePosition<int, int, int>(1, 2, 3);
     var sm = new XStateMachine<int, int, int>(definitions, initialPosition);
     Assert.IsNotNull(sm);
 }
コード例 #2
0
 public void MoveNext_in_StateMachine_Execute_Action()
 {
     XStateMachineDefinition<int, int, int> definitions = MakeSampleStateMachineDefinitions();
     var initialPosition = new XStatePosition<int, int, int>(2, 2, 3);
     var sm = new XStateMachine<int, int, int>(definitions, initialPosition);
     sm.MoveNext(2, 3);
     Assert.AreEqual(20, sm.CurrentStatePosition.State);
 }
コード例 #3
0
        public void StateMachine_Can_Run_Approval_WorkFlow()
        {
            var workflow = MakeSampleApprovalStateMachineDefinitions();
            var position = new XStatePosition<string, string, string>("draft", "requester", "submit-for-approval");

            var sm = new XStateMachine<string, string, string>(workflow, position);
            sm.MoveNext("requester", "submit-for-approval");

            Assert.AreEqual("pending-for-approval", sm.CurrentStatePosition.State);
        }
コード例 #4
0
        public void StateMachine_Cannot_Run_Undefined_WorkFlow()
        {
            var workflow = MakeSampleApprovalStateMachineDefinitions();
            var position = new XStatePosition<string, string, string>("draft", "requester", "submit-for-approval");

            var sm = new XStateMachine<string, string, string>(workflow, position);
            sm.MoveNext("approver", "submit-for-approval");
        }
コード例 #5
0
 public void Cannot_create_StateMachine_with_No_InitialState()
 {
     XStateMachineDefinition<int, int, int> definitions = MakeSampleStateMachineDefinitions();
     XStatePosition<int, int, int> position = new XStatePosition<int, int, int>(1, 2, 3);
     var sm = new XStateMachine<int, int, int>(definitions, null);
 }
コード例 #6
0
 public void Cannot_create_StateMachine_with_Empty_Workflow_Definitions()
 {
     XStateMachineDefinition<int, int, int> definitions = new XStateMachineDefinition<int, int, int>();
     XStatePosition<int, int, int> position = new XStatePosition<int, int, int>(1, 2, 3);
     var sm = new XStateMachine<int, int, int>(definitions, position);
 }
コード例 #7
0
 public void Cannot_create_StateMachine_without_Workflow_Definitions()
 {
     XStatePosition<int, int, int> position = new XStatePosition<int, int, int>(1, 2, 3);
     var sm = new XStateMachine<int, int, int>(null, position);
 }