コード例 #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 Can_Differenciate_Not_Equal_StatePosition_With_StringIntDecimal()
        {
            var sm1 = new XStatePosition<string, decimal, int>("aaa", 2, 50);
            var sm2 = new XStatePosition<string, decimal, int>("aab", 2, 50);

            Assert.AreNotEqual(sm1, sm2);
        }
コード例 #3
0
        public void Can_Differenciate_Not_Equal_StatePosition()
        {
            var sm1 = new XStatePosition<int, int, int>(1, 2, 3);
            var sm2 = new XStatePosition<int, int, int>(1, 2, 4);

            Assert.AreNotEqual(sm1, sm2);
        }
コード例 #4
0
        public void Can_Compare_Similar_StatePosition_With_StringIntDecimal()
        {
            var sm1 = new XStatePosition<string, decimal, int>("aaa", 2, 50);
            var sm2 = new XStatePosition<string, decimal, int>("aaa", 2, 50);

            Assert.AreEqual(sm1, sm2);
        }
コード例 #5
0
        public void Can_Compare_Similar_StatePosition()
        {
            var sm1 = new XStatePosition<int, int, int>(1, 2, 3);
            var sm2 = new XStatePosition<int, int, int>(1, 2, 3);

            Assert.AreEqual(sm1, sm2);
        }
コード例 #6
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);
 }
コード例 #7
0
 private static bool IsCorrectStatePosition(string state, int actor, string command, XStatePosition<string, int, string> statePosition)
 {
     if (statePosition.State == state && statePosition.Actor == actor && statePosition.Command == command)
     {
         return true;
     }
     return false;
 }
コード例 #8
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);
        }
コード例 #9
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");
        }
コード例 #10
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);
 }
コード例 #11
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);
 }
コード例 #12
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);
 }
コード例 #13
0
 public void Can_Read_State_Properties_Initialized_During_Creation()
 {
     var statePosition = new XStatePosition<string, int, string>("new", 10, "submit");
     Assert.IsTrue(IsCorrectStatePosition("new", 10, "submit", statePosition));
 }
コード例 #14
0
 public void Can_Create_StatePosition_With_StringInt_Combinations()
 {
     var statePosition = new XStatePosition<string, int, string>("new", 10, "submit");
     Assert.IsNotNull(statePosition);
 }
コード例 #15
0
 public void Can_Create_StatePosition_With_Decimal_String_Combinations()
 {
     var statePosition = new XStatePosition<decimal, string, decimal>(0, "poweruser", new decimal(200.00));
     Assert.IsNotNull(statePosition);
 }