multimediacommscontroller/mmccsubcontroller/tsrc/ut_subcontroller/Src/UT_CMccAsyncEventHandler.cpp
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommscontroller/mmccsubcontroller/tsrc/ut_subcontroller/Src/UT_CMccAsyncEventHandler.cpp	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,341 @@
+/*
+* 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_CMccAsyncEventHandler.h"
+
+//  EXTERNAL INCLUDES
+#include <digia/eunit/EUnitMacros.h>
+#include "MccJitterBuffer.h"
+
+//  INTERNAL INCLUDES
+#include "Mccasynceventhandler.h"
+#include "AmrPayloadFormatUtil.h"
+#include "MmccDtmfSignal.h"
+
+// CONSTRUCTION
+UT_CMccAsyncEventHandler* UT_CMccAsyncEventHandler::NewL()
+    {
+    UT_CMccAsyncEventHandler* self = UT_CMccAsyncEventHandler::NewLC();
+    CleanupStack::Pop();
+
+    return self;
+    }
+
+UT_CMccAsyncEventHandler* UT_CMccAsyncEventHandler::NewLC()
+    {
+    UT_CMccAsyncEventHandler* self = new( ELeave ) UT_CMccAsyncEventHandler();
+    CleanupStack::PushL( self );
+
+    self->ConstructL();
+
+    return self;
+    }
+
+// Destructor (virtual by CBase)
+UT_CMccAsyncEventHandler::~UT_CMccAsyncEventHandler()
+    {
+    }
+
+// Default constructor
+UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler() :
+    iHandler( NULL )
+    {
+    }
+
+// Second phase construct
+void UT_CMccAsyncEventHandler::ConstructL()
+    {
+    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+    // It generates the test case table.
+    CEUnitTestSuiteClass::ConstructL();
+    }
+
+//  METHODS
+
+
+
+void UT_CMccAsyncEventHandler::SetupL(  )
+    {
+    iHandler = CMccAsyncEventHandler::NewL();
+    }
+
+void UT_CMccAsyncEventHandler::Teardown(  )
+    {
+    if ( iHandler )
+        {
+        delete iHandler;
+        }
+    }
+
+void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_EventReceiveRequestLL(  )
+    {
+    // Can't test this, because the RMessage2 can only be properly created
+    // by a server
+    }
+
+void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_CancelEventReceiveRequestLL(  )
+    {
+    // No request
+    EUNIT_ASSERT_LEAVE( iHandler->CancelEventReceiveRequestL() );
+    }
+
+void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_SendEventToClientL(  )
+    {
+    TMccRtpSinkEvent sinkEvent;
+    TMccRtpSourceEvent sourceEvent;
+    TMccJitterBufferEvent jitterEvent;
+    TMccAmrEvent amrEvent;
+    TMMFEvent mmfEvent( TUid::Uid( 0 ), KErrNone );
+
+    EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sinkEvent ), KErrNone );
+    
+    // Cancel the active object
+    iHandler->Cancel();
+
+    EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sourceEvent ), KErrNone );
+    iHandler->Cancel();
+
+    EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( jitterEvent ), KErrNone );
+    iHandler->Cancel();
+
+    EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( mmfEvent ), KErrNone );
+    iHandler->Cancel();
+    }
+
+void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_SendMccEventToClientL(  )
+    {
+    TMccEvent event;
+    EUNIT_ASSERT_EQUALS( iHandler->SendMccEventToClient( event ), KErrNone );
+    }
+
+void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_SendMediaSignallingToClientL(  )
+    {
+    TMccDTMFSignal dtmfSig;
+    iHandler->SendMediaSignallingToClient( dtmfSig );
+    
+    TMccRtcpSignal rtcpSig;
+    
+    const TUint KMaxSignalsInQueue( 20 );
+    
+    for ( TInt i = 0; i < KMaxSignalsInQueue; i++ )
+        {
+        iHandler->SendMediaSignallingToClient( rtcpSig );
+        }
+    }
+
+void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_ReconstructMediaSignalL(  )
+    {
+    iHandler->ReconstructMediaSignal();
+    }
+    
+void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_HandleAmrEventL(  )
+    {
+    TMccAmrEvent amrEvent;
+    EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( amrEvent ), KErrNone );
+    iHandler->Cancel();
+    
+    // Use a valid event type
+    amrEvent.iEvent = EMccAmrEventCmr;
+
+    EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( amrEvent ), KErrNone );
+    iHandler->Cancel();
+    
+    iHandler->HandleAmrEvent();
+    }
+
+void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_HandleRtpSinkEventL(  )
+    {
+    TMccRtpSinkEvent sinkEvent;
+    EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sinkEvent ), KErrNone );
+    iHandler->Cancel();
+
+    // Use a valid event type that causes no action
+    sinkEvent.iEvent = ERtpSinkLastBuffer;
+    EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sinkEvent ), KErrNone );
+    iHandler->Cancel();
+    iHandler->HandleRtpSinkEvent();
+
+    // Use a valid event type
+    sinkEvent.iEvent = ERtpSinkError;
+    sinkEvent.iErrorCode = KErrNone;
+
+    EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sinkEvent ), KErrNone );
+    iHandler->Cancel();
+    iHandler->HandleRtpSinkEvent();
+
+    // Set an error code that will actually do something
+    sinkEvent.iErrorCode = KErrNone;
+    EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sinkEvent ), KErrNone );
+    iHandler->Cancel();
+    iHandler->HandleRtpSinkEvent();
+    iHandler->Cancel();
+    }
+
+void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_HandleRtpSourceEventL(  )
+    {
+    TMccRtpSourceEvent sourceEvent;
+    EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sourceEvent ), KErrNone );
+    iHandler->Cancel();
+
+    // Use a valid event type that causes no action
+    sourceEvent.iEvent = EMccRtpSrcJitterUpdate;
+
+    EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sourceEvent ), KErrNone );
+    iHandler->Cancel();
+    iHandler->HandleRtpSourceEvent();
+    
+    // Set an error code that will actually do something
+    sourceEvent.iEvent = EMccRtpSrcMmfEvent;
+    EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( sourceEvent ), KErrNone );
+    iHandler->Cancel();
+    iHandler->HandleRtpSourceEvent();
+    iHandler->Cancel();
+    }
+
+void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_HandleJitterEventL(  )
+    {
+    TMccJitterBufferEvent jitterEvent;
+    EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( jitterEvent ), KErrNone );
+    iHandler->Cancel();
+
+    // These two events should cause no action
+    jitterEvent.iEvent = EJitterEventMmfEvent;
+    EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( jitterEvent ), KErrNone );
+    iHandler->Cancel();
+    iHandler->HandleJitterEvent();
+
+    jitterEvent.iEvent = EJitterEventStatusReport;
+    EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( jitterEvent ), KErrNone );
+    iHandler->Cancel();
+    iHandler->HandleJitterEvent();
+    }
+
+void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_HandleMmfEventL(  )
+    {
+    TMMFEvent mmfEvent( TUid::Uid( 0 ), KErrNone );
+    EUNIT_ASSERT_EQUALS( iHandler->SendEventToClient( mmfEvent ), KErrNone );
+    iHandler->Cancel();
+
+    iHandler->HandleMmfEvent();
+    iHandler->Cancel();
+    }
+
+void UT_CMccAsyncEventHandler::UT_CMccAsyncEventHandler_CompleteClientRequestL(  )
+    {
+    iHandler->CompleteClientRequest();
+    }
+
+
+//  TEST TABLE
+
+EUNIT_BEGIN_TEST_TABLE(
+    UT_CMccAsyncEventHandler,
+    "Add test suite description here.",
+    "UNIT" )
+
+EUNIT_TEST(
+    "EventReceiveRequestL - test ",
+    "CMccAsyncEventHandler",
+    "EventReceiveRequestL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccAsyncEventHandler_EventReceiveRequestLL, Teardown)
+
+EUNIT_TEST(
+    "CancelEventReceiveRequestL - test ",
+    "CMccAsyncEventHandler",
+    "CancelEventReceiveRequestL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccAsyncEventHandler_CancelEventReceiveRequestLL, Teardown)
+
+EUNIT_TEST(
+    "SendEventToClient - test ",
+    "CMccAsyncEventHandler",
+    "SendEventToClient",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccAsyncEventHandler_SendEventToClientL, Teardown)
+
+EUNIT_TEST(
+    "SendMccEventToClient - test ",
+    "CMccAsyncEventHandler",
+    "SendMccEventToClient",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccAsyncEventHandler_SendMccEventToClientL, Teardown)
+
+EUNIT_TEST(
+    "SendMediaSignallingToClient - test ",
+    "CMccAsyncEventHandler",
+    "SendMediaSignallingToClient",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccAsyncEventHandler_SendMediaSignallingToClientL, Teardown)
+
+EUNIT_TEST(
+    "ReconstructMediaSignal - test ",
+    "CMccAsyncEventHandler",
+    "ReconstructMediaSignal",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccAsyncEventHandler_ReconstructMediaSignalL, Teardown)
+
+EUNIT_TEST(
+    "HandleAmrEvent - test ",
+    "CMccAsyncEventHandler",
+    "HandleAmrEvent",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccAsyncEventHandler_HandleAmrEventL, Teardown)
+
+EUNIT_TEST(
+    "HandleRtpSinkEvent - test ",
+    "CMccAsyncEventHandler",
+    "HandleRtpSinkEvent",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccAsyncEventHandler_HandleRtpSinkEventL, Teardown)
+
+EUNIT_TEST(
+    "HandleRtpSourceEvent - test ",
+    "CMccAsyncEventHandler",
+    "HandleRtpSourceEvent",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccAsyncEventHandler_HandleRtpSourceEventL, Teardown)
+
+EUNIT_TEST(
+    "HandleJitterEvent - test ",
+    "CMccAsyncEventHandler",
+    "HandleJitterEvent",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccAsyncEventHandler_HandleJitterEventL, Teardown)
+
+EUNIT_TEST(
+    "HandleMmfEvent - test ",
+    "CMccAsyncEventHandler",
+    "HandleMmfEvent",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccAsyncEventHandler_HandleMmfEventL, Teardown)
+
+EUNIT_TEST(
+    "CompleteClientRequest - test ",
+    "CMccAsyncEventHandler",
+    "CompleteClientRequest",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccAsyncEventHandler_CompleteClientRequestL, Teardown)
+
+
+EUNIT_END_TEST_TABLE
+
+//  END OF FILE