multimediacommscontroller/mmccsubcontroller/tsrc/ut_subcontroller/Src/UT_CMccRtpManager.cpp
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommscontroller/mmccsubcontroller/tsrc/ut_subcontroller/Src/UT_CMccRtpManager.cpp	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,461 @@
+/*
+* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+
+
+//  CLASS HEADER
+#include "UT_CMccRtpManager.h"
+
+//  EXTERNAL INCLUDES
+#include <digia/eunit/eunitmacros.h>
+
+
+//  INTERNAL INCLUDES
+#include "Mccrtpmanager.h"
+#include "Mcctesteventhandler.h"
+#include "mccresourcepool_stub.h"
+#include "mccunittestmacros.h"
+
+// CONSTRUCTION
+UT_CMccRtpManager* UT_CMccRtpManager::NewL()
+    {
+    UT_CMccRtpManager* self = UT_CMccRtpManager::NewLC();
+    CleanupStack::Pop();
+
+    return self;
+    }
+
+UT_CMccRtpManager* UT_CMccRtpManager::NewLC()
+    {
+    UT_CMccRtpManager* self = new( ELeave ) UT_CMccRtpManager();
+    CleanupStack::PushL( self );
+
+    self->ConstructL();
+
+    return self;
+    }
+
+// Destructor (virtual by CBase)
+UT_CMccRtpManager::~UT_CMccRtpManager()
+    {
+    }
+
+// Default constructor
+UT_CMccRtpManager::UT_CMccRtpManager() :
+    iRtpMan( NULL )
+    {
+    }
+
+// Second phase construct
+void UT_CMccRtpManager::ConstructL()
+    {
+    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+    // It generates the test case table.
+    CEUnitTestSuiteClass::ConstructL();
+    }
+
+//  METHODS
+
+
+
+void UT_CMccRtpManager::SetupL(  )
+    {
+    iHandler = CMccTestEventHandler::NewL();
+    iResources = CMccResourcePoolStub::NewL();
+    iRtpMan = CMccRtpManager::NewL( *iHandler, *iResources, iMccSessionId );
+    iHandler->iLastEvent = TMccEvent();
+    }
+
+void UT_CMccRtpManager::Teardown(  )
+    {
+    if ( iRtpMan )
+        {
+        delete iRtpMan;
+        }
+    if ( iHandler )
+        {
+        delete iHandler;
+        }
+    delete iResources;
+    }
+
+void UT_CMccRtpManager::UT_CMccRtpManager_RemoveStreamFromArray()
+    {
+    TRtpId rtpid(3);
+    iRtpMan->RemoveStreamFromArray( rtpid );
+    TInt err = iRtpMan->iStreamArray.Append( rtpid );
+    EUNIT_ASSERT( !err || err == KErrNoMemory );
+    iRtpMan->RemoveStreamFromArray( rtpid );
+    }
+    
+void UT_CMccRtpManager::UT_CMccRtpManager_IsOpen()
+    {
+    EUNIT_ASSERT( !iRtpMan->IsOpen() );
+    }
+ 
+ 
+void UT_CMccRtpManager::UT_CMccRtpManager_CheckStreamExists()
+    {
+
+    TRtpId rtpid(3);
+    EUNIT_ASSERT( !iRtpMan->CheckStreamExists( rtpid ) );
+    TInt err = iRtpMan->iStreamArray.Append( rtpid );
+    EUNIT_ASSERT( !err || err == KErrNoMemory );
+    EUNIT_ASSERT( err == KErrNoMemory || iRtpMan->CheckStreamExists( rtpid ) );
+
+    }
+ 
+
+void UT_CMccRtpManager::UT_CMccRtpManager_CreateSessionLL(  )
+    {
+    TUint port( 5000 );
+    MCC_EUNIT_ASSERT_NO_LEAVE( iRtpMan->CreateSessionL( port, EFalse, EFalse ) );
+    
+    // KErrAlreadyExists
+    EUNIT_ASSERT_LEAVE( iRtpMan->CreateSessionL( port, EFalse, EFalse ) );
+    }
+
+void UT_CMccRtpManager::UT_CMccRtpManager_CloseSessionL(  )
+    {
+    iRtpMan->CloseSession();
+    
+    TUint port( 5000 );
+    MCC_EUNIT_ASSERT_NO_LEAVE( iRtpMan->CreateSessionL( port, EFalse, EFalse ) );
+
+    iRtpMan->CloseSession();
+    }
+
+void UT_CMccRtpManager::UT_CMccRtpManager_GetRtpReferenceLL(  )
+    {
+    CRtpAPI* rtp( NULL );
+    EUNIT_ASSERT_LEAVE( rtp = iRtpMan->GetRtpReferenceL() );
+    }
+
+void UT_CMccRtpManager::UT_CMccRtpManager_SetRemoteAddressL(  )
+    {
+    TInetAddr addr;
+    EUNIT_ASSERT_EQUALS( iRtpMan->SetRemoteAddress( addr ), KErrNotFound );
+
+    TUint port( 5000 );
+    MCC_EUNIT_ASSERT_NO_LEAVE( iRtpMan->CreateSessionL( port, EFalse, EFalse ) );
+
+    addr.SetPort( port );
+    EUNIT_ASSERT_EQUALS( iRtpMan->SetRemoteAddress( addr ), KErrNone );
+    EUNIT_ASSERT( iRtpMan->iRemoteAddress.Address() == addr.Address() )
+    EUNIT_ASSERT( iRtpMan->iRemoteAddress.Port() == addr.Port() )
+    
+    // Port not changed
+    EUNIT_ASSERT_EQUALS( iRtpMan->SetRemoteAddress( addr ), KErrNone );
+    
+    // Port changed
+    TUint port2( 5002 );
+    addr.SetPort( port2 );
+    EUNIT_ASSERT_EQUALS( iRtpMan->SetRemoteAddress( addr ), KErrNone );
+    EUNIT_ASSERT( iRtpMan->iRemoteAddress.Address() == addr.Address() )
+    EUNIT_ASSERT( iRtpMan->iRemoteAddress.Port() == addr.Port() )
+    }
+    
+    
+void UT_CMccRtpManager::UT_CMccRtpManager_SetRemoteRtcpAddrL(  )
+    {
+    TInetAddr addr;
+    EUNIT_ASSERT_EQUALS( iRtpMan->SetRemoteRtcpAddr( addr ), KErrNotFound );
+
+    TUint port( 5000 );
+    MCC_EUNIT_ASSERT_NO_LEAVE( iRtpMan->CreateSessionL( port, EFalse, EFalse ) );
+
+    addr.SetPort( port );
+    EUNIT_ASSERT_EQUALS( iRtpMan->SetRemoteRtcpAddr( addr ), KErrNone );
+    EUNIT_ASSERT( iRtpMan->iRemoteRtcpAddr.Address() == addr.Address() )
+    EUNIT_ASSERT( iRtpMan->iRemoteRtcpAddr.Port() == addr.Port() )
+    
+    // Port not changed
+    EUNIT_ASSERT_EQUALS( iRtpMan->SetRemoteRtcpAddr( addr ), KErrNone );
+    
+    // Port changed
+    TUint port2( 5002 );
+    addr.SetPort( port2 );
+    EUNIT_ASSERT_EQUALS( iRtpMan->SetRemoteRtcpAddr( addr ), KErrNone );
+    EUNIT_ASSERT( iRtpMan->iRemoteRtcpAddr.Address() == addr.Address() )
+    EUNIT_ASSERT( iRtpMan->iRemoteRtcpAddr.Port() == addr.Port() )
+    }    
+
+void UT_CMccRtpManager::UT_CMccRtpManager_SetIpTOSL(  )
+    {
+    iRtpMan->SetIpTOS( 0 );
+    }
+
+void UT_CMccRtpManager::UT_CMccRtpManager_StartSessionLL(  )
+    {
+    EUNIT_ASSERT_LEAVE( iRtpMan->StartSessionL() );
+    
+    TUint port( 5000 );
+    MCC_EUNIT_ASSERT_NO_LEAVE( iRtpMan->CreateSessionL( port, EFalse, EFalse ) );
+
+    // StartSessionL contains a special fix for TEST_EUNIT 
+    MCC_EUNIT_ASSERT_NO_LEAVE( iRtpMan->StartSessionL() );
+    }
+
+void UT_CMccRtpManager::UT_CMccRtpManager_InitializeLL(  )
+    {
+    TRequestStatus status;
+    MCC_EUNIT_ASSERT_NO_LEAVE( iRtpMan->InitializeL( status, 5 ) );
+    User::WaitForAnyRequest();
+    }
+
+void UT_CMccRtpManager::UT_CMccRtpManager_SessionIdL(  )
+    {
+    TRtpId id = iRtpMan->SessionId();
+    }
+
+void UT_CMccRtpManager::UT_CMccRtpManager_CreateTransmitStreamLL(  )
+    {
+    //EUNIT_ASSERT( ETrue );
+    }
+
+void UT_CMccRtpManager::UT_CMccRtpManager_CreateReceiveStreamLL(  )
+    {
+    //EUNIT_ASSERT( ETrue );
+    }
+
+void UT_CMccRtpManager::UT_CMccRtpManager_RefreshDownlinkLL(  )
+    {
+    //EUNIT_ASSERT( ETrue );
+    }
+
+void UT_CMccRtpManager::UT_CMccRtpManager_SetRTCPSendL(  )
+    {
+    EUNIT_ASSERT_EQUALS( iRtpMan->SetRTCPSendReceive( ETrue ), KErrNotFound );
+    
+    TUint port( 5000 );
+    MCC_EUNIT_ASSERT_NO_LEAVE( iRtpMan->CreateSessionL( port, EFalse, EFalse ) );
+    
+    EUNIT_ASSERT_EQUALS( iRtpMan->SetRTCPSendReceive( ETrue ), KErrNone );
+    }
+
+void UT_CMccRtpManager::UT_CMccRtpManager_ErrorNotifyL(  )
+    {
+    iRtpMan->ErrorNotify( KErrNone );
+    EUNIT_ASSERT_EQUALS( iHandler->iLastEvent.iEventType, KMccEventNone );
+    
+    iRtpMan->ErrorNotify( KErrGeneral );
+    EUNIT_ASSERT_EQUALS( iHandler->iLastEvent.iEventType, KMccEventNone );
+    
+    // test handling of ICMP host unreachable error
+    iRtpMan->ErrorNotify( KErrHostUnreach );
+    EUNIT_ASSERT_EQUALS( iHandler->iLastEvent.iEventType, KMccStreamError );
+    EUNIT_ASSERT_EQUALS( iHandler->iLastEvent.iEventCategory, KMccEventCategoryRtp );
+    EUNIT_ASSERT_EQUALS( iHandler->iLastEvent.iErrorCode, KErrHostUnreach );
+    
+    // test handling of ICMP port unreachable error
+    iRtpMan->ErrorNotify( KErrCouldNotConnect );
+    EUNIT_ASSERT_EQUALS( iHandler->iLastEvent.iEventType, KMccStreamError );
+    EUNIT_ASSERT_EQUALS( iHandler->iLastEvent.iEventCategory, KMccEventCategoryRtp );
+    EUNIT_ASSERT_EQUALS( iHandler->iLastEvent.iErrorCode, KErrHostUnreach );
+    }
+
+void UT_CMccRtpManager::UT_CMccRtpManager_GetLocalIpAddressesL()
+    {
+    TMccCreateLink createlink;
+    
+    iRtpMan->iRtpSessionId = KNullId;
+    MCC_EUNIT_ASSERT_SPECIFIC_LEAVE( iRtpMan->GetLocalIpAddressesL( createlink ), KErrNotReady );
+    
+    iRtpMan->iRtpSessionId = 5;
+    delete iRtpMan->iRtpApi;
+    iRtpMan->iRtpApi = NULL;
+    MCC_EUNIT_ASSERT_SPECIFIC_LEAVE( iRtpMan->GetLocalIpAddressesL( createlink ), KErrNotReady );
+    
+    iRtpMan->iRtpApi = CRtpAPI::NewL( *iRtpMan );
+    
+    MCC_EUNIT_ASSERT_SPECIFIC_LEAVE( iRtpMan->GetLocalIpAddressesL( createlink ), KErrGeneral );
+    }
+
+void UT_CMccRtpManager::UT_CMccRtpManager_SetCNameL()
+    {
+    MCC_EUNIT_ASSERT_NO_LEAVE( iRtpMan->SetCNameL( _L8("Name") ) );  
+    }
+    
+void UT_CMccRtpManager::UT_CMccRtpManager_QoSParamEvent()
+    {
+    TInt error = 0; 
+    iRtpMan->QoSParamEvent(error, 0);  
+    }
+
+void UT_CMccRtpManager::UT_CMccRtpManager_QoSConnEvent()
+    {
+    TInt error = 0; 
+    iRtpMan->QoSConnEvent(error, 0);  
+    }
+    
+
+
+//  TEST TABLE
+
+EUNIT_BEGIN_TEST_TABLE(
+    UT_CMccRtpManager,
+    "CMccRtpManager",
+    "UNIT" )
+
+EUNIT_TEST(
+    "RemoveStreamFromArray - test ",
+    "CMccRtpManager",
+    "RemoveStreamFromArray",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_RemoveStreamFromArray, Teardown)
+
+EUNIT_TEST(
+    "IsOpen - test ",
+    "CMccRtpManager",
+    "IsOpen",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_IsOpen, Teardown)
+    
+EUNIT_TEST(
+    "CheckStreamExists - test ",
+    "CMccRtpManager",
+    "CheckStreamExists",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_CheckStreamExists, Teardown)
+  
+EUNIT_TEST(
+    "CreateSessionL - test ",
+    "CMccRtpManager",
+    "CreateSessionL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_CreateSessionLL, Teardown)
+
+EUNIT_TEST(
+    "CloseSession - test ",
+    "CMccRtpManager",
+    "CloseSession",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_CloseSessionL, Teardown)
+
+EUNIT_TEST(
+    "GetRtpReferenceL - test ",
+    "CMccRtpManager",
+    "GetRtpReferenceL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_GetRtpReferenceLL, Teardown)
+
+EUNIT_TEST(
+    "SetRemoteAddress - test ",
+    "CMccRtpManager",
+    "SetRemoteAddress",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_SetRemoteAddressL, Teardown)
+
+EUNIT_TEST(
+    "SetIpTOS - test ",
+    "CMccRtpManager",
+    "SetIpTOS",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_SetIpTOSL, Teardown)
+
+EUNIT_TEST(
+    "StartSessionL - test ",
+    "CMccRtpManager",
+    "StartSessionL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_StartSessionLL, Teardown)
+
+EUNIT_TEST(
+    "InitializeL - test ",
+    "CMccRtpManager",
+    "InitializeL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_InitializeLL, Teardown)
+
+EUNIT_TEST(
+    "SessionId - test ",
+    "CMccRtpManager",
+    "SessionId",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_SessionIdL, Teardown)
+
+EUNIT_TEST(
+    "CreateTransmitStreamL - test ",
+    "CMccRtpManager",
+    "CreateTransmitStreamL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_CreateTransmitStreamLL, Teardown)
+
+EUNIT_TEST(
+    "CreateReceiveStreamL - test ",
+    "CMccRtpManager",
+    "CreateReceiveStreamL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_CreateReceiveStreamLL, Teardown)
+
+EUNIT_TEST(
+    "RefreshDownlinkL - test ",
+    "CMccRtpManager",
+    "RefreshDownlinkL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_RefreshDownlinkLL, Teardown)
+
+EUNIT_TEST(
+    "SetRTCPSend - test ",
+    "CMccRtpManager",
+    "SetRTCPSend",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_SetRTCPSendL, Teardown)
+
+EUNIT_TEST(
+    "ErrorNotify - test ",
+    "CMccRtpManager",
+    "ErrorNotify",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_ErrorNotifyL, Teardown)
+
+EUNIT_TEST(
+    "GetLocalIpAddressesL - test ",
+    "CMccRtpManager",
+    "GetLocalIpAddressesL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_GetLocalIpAddressesL, Teardown)
+
+EUNIT_TEST(
+    "SetCNameL - test ",
+    "CMccRtpManager",
+    "SetCNameL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_SetCNameL, Teardown)
+
+EUNIT_TEST(
+    "QoSParamEvent - test ",
+    "CMccRtpManager",
+    "QoSParamEvent",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_QoSParamEvent, Teardown)
+
+EUNIT_TEST(
+    "QoSConnEvent - test ",
+    "CMccRtpManager",
+    "QoSConnEvent",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccRtpManager_QoSConnEvent, Teardown)
+
+
+
+
+
+EUNIT_END_TEST_TABLE
+
+//  END OF FILE