test.tck.msgflow
Class InviteServerTransactionsStateMachineTest

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

public class InviteServerTransactionsStateMachineTest
extends MessageFlowHarness

* The test tries to verify that Invite Server Transactions correctly change states as specified by the rfc3261. The Reference Implementation is used to send requests and a Tested Implementation ServerTransaction's states are queried and compared to those in the state machine described in section 17.2.1 of rfc3261


                              |INVITE
                              |pass INV to TU
            INVITE             V send 100 if TU won't in 200ms
            send response+-----------+
                +--------|           |--------+101-199 from TU
                |        | Proceeding|        |send response
                +------->|           |<-------+
                         |           |          Transport Err.
                         |           |          Inform TU
                         |           |--------------->+
                         +-----------+                |
            300-699 from TU |     |2xx from TU        |
            send response   |     |send response      |
                            |     +------------------>+
                            |                         |
            INVITE          V          Timer G fires  |
            send response+-----------+ send response  |
                +--------|           |--------+       |
                |        | Completed |        |       |
                +------->|           |<-------+       |
                         +-----------+                |
                            |     |                   |
                        ACK |     |                   |
                        -   |     +------------------>+
                            |        Timer H fires    |
                            V        or Transport Err.|
                         +-----------+  Inform TU     |
                         |           |                |
                         | Confirmed |                |
                         |           |                |
                         +-----------+                |
                               |                      |
                               |Timer I fires         |
                               |-                     |
                               |                      |
                               V                      |
                         +-----------+                |
                         |           |                |
                         | Terminated|<---------------+
                         |           |
                         +-----------+

              Figure 7: INVITE server transaction

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
InviteServerTransactionsStateMachineTest(String name)
           
 
Method Summary
static Test suite()
           
 void testCanceledInvite()
          JvB: tests CANCEL for an INVITE ST
 void testCaseInsensitiveCanceledInvite()
          JvB: tests CANCEL for an INVITE ST, in case the client changes the case of the branch id to all lowercvase (NIST used to do this)
 void testNonRFC3261CanceledInvite()
          JvB: tests CANCEL for an INVITE ST, from an non-RFC3261 client which uses a Via branch not starting with the magic cookie
 void testProceedingCompletedConfirmedScenario()
          Tries to steer a TI server transaction through the following scenario Proceeding-->Completed-->Confirmed-->Terminated.
 void testProceedingTerminatedScenario()
          Tries to steer a TI server transaction through the following scenario Proceeding-->Terminated.
 
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

InviteServerTransactionsStateMachineTest

public InviteServerTransactionsStateMachineTest(String name)
Method Detail

testProceedingCompletedConfirmedScenario

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


testCanceledInvite

public void testCanceledInvite()
JvB: tests CANCEL for an INVITE ST


testNonRFC3261CanceledInvite

public void testNonRFC3261CanceledInvite()
JvB: tests CANCEL for an INVITE ST, from an non-RFC3261 client which uses a Via branch not starting with the magic cookie


testCaseInsensitiveCanceledInvite

public void testCaseInsensitiveCanceledInvite()
JvB: tests CANCEL for an INVITE ST, in case the client changes the case of the branch id to all lowercvase (NIST used to do this)


testProceedingTerminatedScenario

public void testProceedingTerminatedScenario()
Tries to steer a TI server transaction through the following scenario Proceeding-->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.