Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        public void testMultipleStateMachinesSequence()
        {
            CStateMachine sm1 = new CStateMachine(_manager);

              Assert.AreEqual(-1, sm1.Session);
              Assert.AreEqual(TimeSpan.Zero, sm1.Duration);
              Assert.AreEqual(EStateId.IDLE, sm1.getStateId());

              // changing state
              sm1.changeState(EStateId.INCOMING);
              Assert.AreEqual(EStateId.INCOMING, sm1.getStateId());
              sm1.destroy();

              CStateMachine sm2 = new CStateMachine(_manager);
              Assert.AreEqual(-1, sm2.Session);
              Assert.AreEqual(TimeSpan.Zero, sm2.Duration);
              Assert.AreEqual(EStateId.IDLE, sm2.getStateId());

              sm2.changeState(EStateId.ALERTING);
              Assert.AreEqual(EStateId.ALERTING, sm2.getStateId());

              sm2.destroy();

              CStateMachine sm3 = new CStateMachine(_manager);
              Assert.AreEqual(-1, sm3.Session);
              Assert.AreEqual(TimeSpan.Zero, sm3.Duration);
              Assert.AreEqual(EStateId.IDLE, sm3.getStateId());

              sm3.changeState(EStateId.CONNECTING);
              Assert.AreEqual(EStateId.CONNECTING, sm3.getStateId());

              sm3.destroy();

              Assert.AreEqual(EStateId.IDLE, sm1.getStateId());
              Assert.AreEqual(EStateId.IDLE, sm2.getStateId());
              Assert.AreEqual(EStateId.IDLE, sm3.getStateId());
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 4
0
        public void testCallFeaturesCallHold()
        {
            CStateMachine sm1 = new CStateMachine(_manager);

              sm1.getState().incomingCall("1234","");
              Assert.AreEqual(EStateId.INCOMING, sm1.getStateId());
              Assert.AreEqual(true, sm1.Incoming);
              Assert.AreEqual("1234", sm1.CallingNo);
              Assert.AreEqual(sm1.RuntimeDuration.ToString(), TimeSpan.Zero.ToString());

              sm1.getState().acceptCall(sm1.Session);
              Assert.AreEqual(EStateId.ACTIVE, sm1.getStateId());
              Assert.AreEqual(true, sm1.Counting);

              sm1.getState().holdCall(sm1.Session);
              Assert.AreEqual(EStateId.ACTIVE, sm1.getStateId()); // still ACTIVE (waiting confirmation)
              sm1.getState().onHoldConfirm();
              Assert.AreEqual(EStateId.HOLDING, sm1.getStateId());
              // check twice hold
              sm1.getState().holdCall(sm1.Session);
              Assert.AreEqual(EStateId.HOLDING, sm1.getStateId());

              sm1.getState().retrieveCall(sm1.Session);
              Assert.AreEqual(EStateId.ACTIVE, sm1.getStateId());

              sm1.getState().holdCall(sm1.Session);
              Assert.AreEqual(EStateId.ACTIVE, sm1.getStateId()); // still ACTIVE (waiting confirmation)
              sm1.getState().onHoldConfirm();
              Assert.AreEqual(EStateId.HOLDING, sm1.getStateId());

              sm1.destroy();
              Assert.AreEqual(EStateId.IDLE, sm1.getStateId());
        }