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); }
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); }
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); }
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); }
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); }
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); }
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; }
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); }
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"); }
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); }
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); }
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); }
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)); }
public void Can_Create_StatePosition_With_StringInt_Combinations() { var statePosition = new XStatePosition<string, int, string>("new", 10, "submit"); Assert.IsNotNull(statePosition); }
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); }