test.tck.msgflow
Class InviteClientTransactionsStateMachineTest

java.lang.Object
  extended by TestCase
      extended by test.tck.TestHarness
          extended by test.tck.msgflow.MessageFlowHarness
              extended by test.tck.msgflow.InviteClientTransactionsStateMachineTest

public class InviteClientTransactionsStateMachineTest
extends MessageFlowHarness

The test tries to verify that Invite Client Transactions correctly change states as specified by the rfc3261. The Tested Implementation is used to send requests and the ReferenceImplementation issues (or not) corresponding responses. ClientTransaction states are constantly queried and compared to those in the state machine described in section 17.1.1 of rfc3261


                               |INVITE from TU
             Timer A fires     |INVITE sent
             Reset A,          V                      Timer B fires
             INVITE sent +-----------+                or Transport Err.
               +---------|           |---------------+inform TU
               |         |  Calling  |               |
               +-------->|           |-------------->|
                         +-----------+ 2xx           |
                            |  |       2xx to TU     |
                            |  |1xx                  |
    300-699 +---------------+  |1xx to TU            |
   ACK sent |                  |                     |
 esp. to TU |  1xx             V                     |
            |  1xx to TU  -----------+               |
            |  +---------|           |               |
            |  |         |Proceeding |-------------->|
            |  +-------->|           | 2xx           |
            |            +-----------+ 2xx to TU     |
            |       300-699    |                     |
            |       ACK sent,  |                     |
            |       resp. to TU|                     |
            |                  |                     |      NOTE:
            |  300-699         V                     |
            |  ACK sent  +-----------+Transport Err. |  transitions
            |  +---------|           |Inform TU      |  labeled with
            |  |         | Completed |-------------->|  the event
            |  +-------->|           |               |  over the action
            |            +-----------+               |  to take
            |              ˆ   |                     |
            |              |   | Timer D fires       |
            +--------------+   | -                   |
                               |                     |
                               V                     |
                         +-----------+               |
                         |           |               |
                         | Terminated|<--------------+
                         |           |
                         +-----------+

                 Figure 5: INVITE client transaction


 
TODO Currently, transactions' behaviour is not tested for misappropriation of incoming messages. TODO Currently, invite transactions are not tested for proper termination upon respective timeouts.

Version:
1.0
Author:
Emil Ivov Network Research Team, Louis Pasteur University, Strasbourg, France. This code is in the public domain.

Field Summary
 
Fields inherited from class test.tck.msgflow.MessageFlowHarness
counter, eventCollector, EXTENSION_HDR, MESSAGES_ARRIVE_FOR, RETRY_OBJECT_DELETES, RETRY_OBJECT_DELETES_AFTER, riListeningPoint, riSipProvider, riSipStack, STACKS_SHUT_DOWN_FOR, STACKS_START_FOR, tiListeningPoint, tiSipProvider, tiSipStack, TRANSACTION_TIMES_OUT_FOR
 
Fields inherited from class test.tck.TestHarness
ABORT_ON_FAIL, abortOnFail, console, IMPLEMENTATION_PATH, LOCAL_ADDRESS, LOG_FILE_NAME, logFileName, path, printWriter, RI_PORT, riAddressFactory, riFactory, riHeaderFactory, riMessageFactory, testCounter, testResult, TI_PORT, tiAddressFactory, tiFactory, tiHeaderFactory, tiMessageFactory
 
Constructor Summary
InviteClientTransactionsStateMachineTest(String name)
           
 
Method Summary
static Test suite()
           
 void testCallingCompletedTerminatedScenario()
          Tries to steer a TI client transaction through the following scenario Calling-->Completed-->Terminated.
 void testCallingProceedingCompletedTerminatedScenario()
          Tries to steer a TI client transaction through the following scenario Calling-->Proceeding-->Completed-->Terminated.
 void testCallingProceedingTerminatedScenario()
          Tries to steer a TI client transaction through the following scenario Calling-->Proceeding-->Terminated.
 void testCallingTerminatedScenario()
          Tries to steer a TI client transaction through the following scenario Calling-->Terminated.
 void testInviteCancel()
          JvB: Tests transmission of an INVITE followed by CANCELlation of that request -> INVITE <- 100 -> CANCEL <- OK <- 487 -> ACK
 
Methods inherited from class test.tck.msgflow.MessageFlowHarness
addStatus, addStatus, createRequest, createRiContact, createRiInviteRequest, createRiRegisterRequest, createTiContact, createTiInviteRequest, createTiRegisterRequest, setUp, sleep, tearDown, waitForMessage, waitForTimeout, waitLongForMessage, waitShortForMessage
 
Methods inherited from class test.tck.TestHarness
assertEquals, assertEquals, assertEquals, assertEquals, assertNotNull, assertNull, assertSame, assertTrue, assertTrue, checkImplementsInterface, fail, fail, fail, getImplementationPath, getRiProperties, getTiProperties, implementsInterface, logTestCompleted, logTestCompleted
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InviteClientTransactionsStateMachineTest

public InviteClientTransactionsStateMachineTest(String name)
Method Detail

testCallingProceedingCompletedTerminatedScenario

public void testCallingProceedingCompletedTerminatedScenario()
Tries to steer a TI client transaction through the following scenario Calling-->Proceeding-->Completed-->Terminated. Apart from state transitions, we also test, retransmissions and proper hiding/passing of messages to the TU.


testInviteCancel

public void testInviteCancel()
JvB: Tests transmission of an INVITE followed by CANCELlation of that request -> INVITE <- 100 -> CANCEL <- OK <- 487 -> ACK


testCallingCompletedTerminatedScenario

public void testCallingCompletedTerminatedScenario()
Tries to steer a TI client transaction through the following scenario Calling-->Completed-->Terminated. Apart from state transitions, we also test, retransmissions and proper hiding/passing of messages to the TU.


testCallingProceedingTerminatedScenario

public void testCallingProceedingTerminatedScenario()
Tries to steer a TI client transaction through the following scenario Calling-->Proceeding-->Terminated. Apart from state transitions, we also test, retransmissions and proper hiding/passing of messages to the TU.


testCallingTerminatedScenario

public void testCallingTerminatedScenario()
Tries to steer a TI client transaction through the following scenario Calling-->Terminated. Apart from state transitions, we also test, retransmissions and proper hiding/passing of messages to the TU.


suite

public static Test suite()


Copyright © 2014. All Rights Reserved.