public void testStateMachineCreateSequence() { CStateMachine sm = new CStateMachine(_manager); Assert.AreEqual(-1, sm.Session); Assert.AreEqual(TimeSpan.Zero, sm.Duration); Assert.AreEqual(EStateId.IDLE, sm.getStateId()); // changing state sm.changeState(EStateId.INCOMING); Assert.AreEqual(EStateId.INCOMING, sm.getStateId()); Assert.AreEqual("INCOMING", sm.getStateName()); sm.changeState(EStateId.ALERTING); Assert.AreEqual(EStateId.ALERTING, sm.getStateId()); Assert.AreEqual("ALERTING", sm.getStateName()); sm.changeState(EStateId.CONNECTING); Assert.AreEqual(EStateId.CONNECTING, sm.getStateId()); Assert.AreEqual("CONNECTING", sm.getStateName()); sm.changeState(EStateId.RELEASED); Assert.AreEqual(EStateId.RELEASED, sm.getStateId()); Assert.AreEqual("RELEASED", sm.getStateName()); sm.destroy(); // Second sm = new CStateMachine(_manager); Assert.AreEqual(-1, sm.Session); Assert.AreEqual(TimeSpan.Zero, sm.Duration); Assert.AreEqual(EStateId.IDLE, sm.getStateId()); // changing state sm.changeState(EStateId.INCOMING); Assert.AreEqual(EStateId.INCOMING, sm.getStateId()); Assert.AreEqual("INCOMING", sm.getStateName()); sm.changeState(EStateId.ALERTING); Assert.AreEqual(EStateId.ALERTING, sm.getStateId()); Assert.AreEqual("ALERTING", sm.getStateName()); sm.changeState(EStateId.CONNECTING); Assert.AreEqual(EStateId.CONNECTING, sm.getStateId()); Assert.AreEqual("CONNECTING", sm.getStateName()); sm.changeState(EStateId.RELEASED); Assert.AreEqual(EStateId.RELEASED, sm.getStateId()); Assert.AreEqual("RELEASED", sm.getStateName()); sm.destroy(); // third sm = new CStateMachine(_manager); Assert.AreEqual(-1, sm.Session); Assert.AreEqual(TimeSpan.Zero, sm.Duration); Assert.AreEqual(EStateId.IDLE, sm.getStateId()); // changing state sm.changeState(EStateId.INCOMING); Assert.AreEqual(EStateId.INCOMING, sm.getStateId()); Assert.AreEqual("INCOMING", sm.getStateName()); sm.changeState(EStateId.ALERTING); Assert.AreEqual(EStateId.ALERTING, sm.getStateId()); Assert.AreEqual("ALERTING", sm.getStateName()); sm.changeState(EStateId.CONNECTING); Assert.AreEqual(EStateId.CONNECTING, sm.getStateId()); Assert.AreEqual("CONNECTING", sm.getStateName()); sm.changeState(EStateId.RELEASED); Assert.AreEqual(EStateId.RELEASED, sm.getStateId()); Assert.AreEqual("RELEASED", sm.getStateName()); sm.destroy(); }
public void testOutgoingCall() { CStateMachine sm1 = new CStateMachine(_manager); Assert.AreEqual(EStateId.IDLE, sm1.getStateId()); Assert.AreEqual(false, sm1.Incoming); sm1.changeState(EStateId.CONNECTING); Assert.AreEqual(EStateId.CONNECTING, sm1.getStateId()); Assert.AreEqual(false, sm1.Incoming); Assert.AreEqual(sm1.RuntimeDuration, TimeSpan.Zero); sm1.changeState(EStateId.ALERTING); Assert.AreEqual(EStateId.ALERTING, sm1.getStateId()); Assert.AreEqual(false, sm1.Incoming); Assert.AreEqual(sm1.RuntimeDuration, TimeSpan.Zero); sm1.changeState(EStateId.ACTIVE); Assert.AreEqual(EStateId.ACTIVE, sm1.getStateId()); Assert.AreEqual("ACTIVE", sm1.getStateName()); Assert.AreEqual(false, sm1.Incoming); Assert.AreEqual(true, sm1.Counting); Assert.AreNotSame(sm1.RuntimeDuration, TimeSpan.Zero); sm1.destroy(); }