public void TestTransact() { Assert.AreEqual(_sm.CurrentState.ID, "Initial"); _sm.Transit("ready", null); Assert.AreEqual(_sm.CurrentState.ID, "Idle"); _sm.Transit("pa", null); Assert.AreEqual(_sm.CurrentState.ID, "InPA"); _sm.Transit("load study", null); Assert.AreEqual(_sm.CurrentState.ID, "InExam"); _sm.Transit("pa", null); Assert.AreEqual(_sm.CurrentState.ID, "InPA"); _sm.Transit("froze", null); Assert.AreEqual(_sm.CurrentState.ID, "InPA"); }
/// <summary> /// execute statemachine's Transit function, this function is registered for RMI /// </summary> /// <param name="transitionID">transition id</param> /// <param name="context">app's context</param> /// <returns>true:success /// false:fail /// </returns> public bool Invoke(string transitionID, object context) { CLRLogger.GetInstance().LogDevInfo(string.Format("AppManager begin Invoke,transitionID:{0}", transitionID)); _stateMachine.Transit(transitionID, context); return(true); }