multimediacommscontroller/mmccvideosourcesink/tsrc/ut_videosourcesink/src/UT_CMCCVideoSource.cpp
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommscontroller/mmccvideosourcesink/tsrc/ut_videosourcesink/src/UT_CMCCVideoSource.cpp	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,707 @@
+/*
+* 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_CMccVideoSource.h"
+
+//  EXTERNAL INCLUDES
+#include <digia/eunit/EUnitMacros.h>
+#ifdef EUNIT_ALLOC_TEST_ON
+	#include <digia/eunit/CEunitAllocTestCaseDecorator.h>  //for using EUNIT_ALLOC_TEST
+#endif // end of EUNIT_ALLOC_TEST_ON
+
+//  INTERNAL INCLUDES
+#include "MccVideoSource.h"
+#include "MmccInterfaceDef.h"
+#include "MccInternalCodecs.h"
+#include "Mcculdatapath.h"
+#include "mccresourcepool.h"
+#include "mcccamerahandler_STUB.h"
+#include "mccvideosourceimpl.h"
+#include "mcctesteventhandler.h"
+#include "mccunittestmacros.h"
+#include "mcctesteventhandler.h"
+
+
+// CONSTRUCTION
+UT_CMccVideoSource* UT_CMccVideoSource::NewL()
+    {
+    UT_CMccVideoSource* self = UT_CMccVideoSource::NewLC();
+    CleanupStack::Pop();
+
+    return self;
+    }
+
+UT_CMccVideoSource* UT_CMccVideoSource::NewLC()
+    {
+    UT_CMccVideoSource* self = new( ELeave ) UT_CMccVideoSource();
+    CleanupStack::PushL( self );
+
+    self->ConstructL();
+
+    return self;
+    }
+
+// Destructor (virtual by CBase)
+UT_CMccVideoSource::~UT_CMccVideoSource()
+    {
+    }
+
+// Default constructor
+UT_CMccVideoSource::UT_CMccVideoSource()
+    {
+    }
+
+// Second phase construct
+void UT_CMccVideoSource::ConstructL()
+    {
+    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+    // It generates the test case table.
+    CEUnitTestSuiteClass::ConstructL();
+    }
+
+//  METHODS
+
+
+
+void UT_CMccVideoSource::SetupL(  )
+    {   
+    iBuffer = CMMFDescriptorBuffer::NewL( 10 );
+    iBuffer->Data().Copy(_L("aaaaaaaaaa"));
+    TMediaId media = KUidMediaTypeAudio;
+    iEventHandler = CMccTestEventHandler::NewL();
+    MAsyncEventHandler* eventHandler = NULL;
+    CMccResourcePool* resourcePool = NULL;
+    iULDataPathStub = CMccUlDataPath::NewL( eventHandler, resourcePool, media );
+    iVideoSource = static_cast<CMccVideoSource*>(CMccVideoSource::NewSourceL(KMccVideoSourceUid, _L8("Inidata")));
+    TBuf8<5> data;
+    data.Format( _L8( "foo42" ) );
+    iVideoSource->ConstructSourceL( data );
+    
+    iVideoSource->SourceThreadLogon( *iEventHandler );
+    
+    iCameraHandler = CMccCameraHandlerStub::NewL();
+    
+    iVideoSource->SetCameraHandler( *iCameraHandler );
+    }
+
+void UT_CMccVideoSource::Teardown(  )
+    {
+   	delete iVideoSource;
+   	delete iULDataPathStub;
+    delete iBuffer;
+    delete iCameraHandler;
+    delete iEventHandler;
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_NewSourceLL(  )
+    {
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_ConstructSourceLL(  )
+    {
+    iVideoSource->ConstructSourceL( _L8("Inidata") );
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_CMccVideoSourceL(  )
+    {
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_SetCameraHandleL(  )
+    {
+    iVideoSource->SetCameraHandler( *iCameraHandler );
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_SetVideoCodecLL(  )
+    {
+    TMccCodecInfo codecInfo;
+    iVideoSource->SetVideoCodecL( codecInfo );
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_GetVideoCodecLL(  )
+    {
+    TMccCodecInfo codecInfo1, codecInfo2;
+    iVideoSource->SetVideoCodecL( codecInfo1 );
+    iVideoSource->GetVideoCodecL( codecInfo2 );
+    EUNIT_ASSERT( TMccCodecInfo::Compare( codecInfo1, codecInfo2 ) );
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_GetSupportedVideoCodecsLL(  )
+    {
+    RArray<TFourCC> fourCCArray;
+    CleanupClosePushL(fourCCArray);
+	iVideoSource->GetSupportedVideoCodecsL( fourCCArray );
+	EUNIT_ASSERT_EQUALS( fourCCArray.Count(), 0 );
+	CleanupStack::PopAndDestroy( &fourCCArray );
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_SetAudioCodecLL(  )
+    {
+    TMccCodecInfo codecInfo;
+    iVideoSource->SetAudioCodecL( codecInfo );
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_GetAudioCodecLL(  )
+    {
+    TMccCodecInfo codecInfo1, codecInfo2;
+
+    iVideoSource->GetAudioCodecL( codecInfo1 );
+    EUNIT_ASSERT( TMccCodecInfo::Compare( codecInfo1, codecInfo2 ) );
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_GetSupportedAudioCodecsLL(  )
+    {
+    RArray<TFourCC> fourCCArray;
+    CleanupClosePushL(fourCCArray);
+
+	iVideoSource->GetSupportedAudioCodecsL( fourCCArray );
+	EUNIT_ASSERT_EQUALS( fourCCArray.Count(), 0 );
+	CleanupStack::PopAndDestroy( &fourCCArray );	
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_SetAudioEnabledLL(  )
+    {
+	iVideoSource->SetAudioEnabledL( ETrue );
+	EUNIT_ASSERT( iVideoSource->AudioEnabledL());    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_AudioEnabledLL(  )
+    {
+   	iVideoSource->SetAudioEnabledL( ETrue );
+	EUNIT_ASSERT( iVideoSource->AudioEnabledL());
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_SetGainLL(  )
+    {
+ 	iVideoSource->SetGainL( 0 );
+    EUNIT_ASSERT_EQUALS( iVideoSource->GainL(), 0 );
+
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_GainLL(  )
+    {
+ 	iVideoSource->SetGainL( 5 );
+    EUNIT_ASSERT_EQUALS( iVideoSource->GainL(), 5 ); 
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_MaxGainLL(  )
+    {
+	iVideoSource->SetGainL( 5 );
+    EUNIT_ASSERT_EQUALS( iVideoSource->MaxGainL(), 5 );    
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_SourceDataTypeCodeL(  )
+    {
+    TMediaId mediaId;
+    EUNIT_ASSERT(iVideoSource->SourceDataTypeCode( mediaId ) == TFourCC(KMMFFourCCCodeNULL) );
+                        
+    mediaId.iMediaType = KUidMediaTypeVideo;
+    EUNIT_ASSERT(iVideoSource->SourceDataTypeCode( mediaId ) == TFourCC() );
+     
+    mediaId.iMediaType = KUidMediaTypeAudio;
+    EUNIT_ASSERT(iVideoSource->SourceDataTypeCode( mediaId ) == TFourCC() );                
+  /*
+    delete iVideoSource;
+    
+    iVideoSource  = static_cast<CMccVideoSource*>(CMccVideoSource::NewSourceL(KMccVideoSourceUID, _L8("Inidata")));
+
+    EUNIT_ASSERT(iVideoSource->SourceDataTypeCode( mediaId ) == TFourCC(KMMFFourCCCodeNULL) );
+    */
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_SetSourceDataTypeCodeL(  )
+    {
+    TMediaId mediaId( KUidMediaTypeVideo );
+    TFourCC codec1( KMccFourCCIdH263 );
+    EUNIT_ASSERT_EQUALS(
+    	iVideoSource->SetSourceDataTypeCode(codec1, mediaId),
+        KErrNotSupported );
+    TMccCodecInfo codecInfo;
+    codecInfo.iFourCC.Set(KMccFourCCIdH263);
+    iVideoSource->SetAudioCodecL( codecInfo );
+    iVideoSource->SetVideoCodecL( codecInfo );
+
+    EUNIT_ASSERT_EQUALS(
+    	iVideoSource->SetSourceDataTypeCode(codec1, mediaId),
+        KErrNone );
+    
+    mediaId.iMediaType = KUidMediaTypeAudio;
+    
+    EUNIT_ASSERT_EQUALS(
+    	iVideoSource->SetSourceDataTypeCode(codec1, mediaId),
+        KErrNone ); 
+    /*
+    delete iVideoSource;
+    
+    iVideoSource  = static_cast<CMccVideoSource*>(CMccVideoSource::NewSourceL(KMccVideoSourceUID, _L8("Inidata")));
+    EUNIT_ASSERT_EQUALS(iVideoSource->SetSourceDataTypeCode(codec1, mediaId), KErrArgument );   
+    */
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_BufferEmptiedLL(  )
+    {
+    CMMFBuffer* buffer = NULL;
+    EUNIT_ASSERT_SPECIFIC_LEAVE(
+    	iVideoSource->BufferEmptiedL(buffer) , KErrNotSupported );    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_CanCreateSourceBufferL(  )
+    {
+    EUNIT_ASSERT( !iVideoSource->CanCreateSourceBuffer() );
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_CreateSourceBufferLL(  )
+    {
+    TMediaId mediaId;
+    TBool bufRef = EFalse;
+    EUNIT_ASSERT_SPECIFIC_LEAVE(
+    	iVideoSource->CreateSourceBufferL(mediaId, bufRef), KErrNotSupported );
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_SourceThreadLogonL(  )
+    {
+    MAsyncEventHandler* eventHandler = NULL;
+    MCC_EUNIT_ASSERT_EQUALS(
+    	iVideoSource->SourceThreadLogon(*eventHandler), KErrNone );
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_SourceThreadLogoffL(  )
+    {
+	iVideoSource->SourceThreadLogoff();
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_SourcePrimeLL(  )
+    {
+    TMccCodecInfo codecInfo;
+    codecInfo.iSdpName = KH263SdpName;
+    codecInfo.iFourCC.Set(KMccFourCCIdH263);
+    codecInfo.iVideoHeight = 378;
+    codecInfo.iVideoWidth = 352;
+    codecInfo.iAverageBitrate = 30;
+    codecInfo.iMaxBitrate = 45;
+    codecInfo.iCodecMode = 2000;
+  
+    iVideoSource->SetVideoCodecL( codecInfo );
+    iVideoSource->SourcePrimeL();
+    
+    EUNIT_ASSERT( iVideoSource->iSourceImpl->iMultipleCodecs == EFalse );
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_SourcePrimeL2L(  )
+    {
+    CMccTestEventHandler* eventHandler1 = CMccTestEventHandler::NewL();
+    CleanupStack::PushL( eventHandler1 );
+    TMccCodecInfo codecInfo;
+    codecInfo.iSdpName = KH263SdpName;
+    codecInfo.iFourCC.Set(KMccFourCCIdH263);
+    codecInfo.iVideoHeight = 378;
+    codecInfo.iVideoWidth = 352;
+    codecInfo.iAverageBitrate = 30;
+    codecInfo.iMaxBitrate = 45;
+    codecInfo.iCodecMode = 2000;
+    TInt err = iVideoSource->AddUser( eventHandler1 );
+    MCC_EUNIT_ASSERT_EQUALS( err, KErrNone );
+    EUNIT_ASSERT_EQUALS( iVideoSource->iUsers.Count(), 1 );
+    // Try to add twice
+    err = iVideoSource->AddUser( eventHandler1 );
+    MCC_EUNIT_ASSERT_EQUALS( err, KErrNone );
+    EUNIT_ASSERT_EQUALS( iVideoSource->iUsers.Count(), 1 );
+    MCC_EUNIT_ASSERT_EQUALS( err, KErrNone );
+    iVideoSource->SetCurrentUser( eventHandler1 );
+    iVideoSource->SetVideoCodecL( codecInfo );
+    
+    CMccTestEventHandler* eventHandler2 = CMccTestEventHandler::NewL();
+    CleanupStack::PushL( eventHandler2 );
+    TMccCodecInfo codecInfo2;
+    codecInfo2.iSdpName = KAVCSdpName;
+    codecInfo2.iFourCC.Set(KMccFourCCIdAVC);
+    codecInfo2.iVideoHeight = 378;
+    codecInfo2.iVideoWidth = 352;
+    codecInfo2.iAverageBitrate = 30;
+    codecInfo2.iMaxBitrate = 45;
+    err = iVideoSource->AddUser( eventHandler2 );
+    MCC_EUNIT_ASSERT_EQUALS( err, KErrNone );
+    EUNIT_ASSERT_EQUALS( iVideoSource->iUsers.Count(), 2 );
+    iVideoSource->SetCurrentUser( eventHandler2 );
+    iVideoSource->SetVideoCodecL( codecInfo2 );
+    
+    iVideoSource->SourcePrimeL();
+    
+    EUNIT_ASSERT( iVideoSource->iSourceImpl->iMultipleCodecs == ETrue );
+    iVideoSource->RemoveUser( eventHandler2 );
+    CleanupStack::PopAndDestroy( eventHandler2 );
+    iVideoSource->RemoveUser( eventHandler1 );
+    CleanupStack::PopAndDestroy( eventHandler1 );
+    }
+    
+void UT_CMccVideoSource::UT_CMccVideoSource_SourcePlayLL(  )
+    {
+    // Codec not set
+    EUNIT_ASSERT_LEAVE( iVideoSource->SourcePlayL() );
+    
+    UT_CMccVideoSource_SourcePrimeLL();
+    
+    iVideoSource->SourcePlayL();
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_SourcePauseLL(  )
+    {
+    iVideoSource->SourcePauseL();
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_SourceStopLL(  )
+    {
+    iVideoSource->SourceStopL();
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_FillBufferLL(  )
+    {
+    TMediaId mediaId( KUidMediaTypeAudio );
+    EUNIT_ASSERT_SPECIFIC_LEAVE (
+    	iVideoSource->FillBufferL( NULL, NULL, mediaId), KErrNotSupported );
+    EUNIT_ASSERT_SPECIFIC_LEAVE (
+    	iVideoSource->FillBufferL( iBuffer, NULL, mediaId), KErrArgument );	
+    EUNIT_ASSERT_SPECIFIC_LEAVE (
+    	iVideoSource->FillBufferL( iBuffer, iULDataPathStub, mediaId), KErrNotSupported );	
+    mediaId.iMediaType = KUidMediaTypeVideo;
+    iVideoSource->FillBufferL( iBuffer, iULDataPathStub, mediaId );	   
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_NegotiateSourceLL(  )
+    {
+    MDataSink* sink = NULL;
+    iVideoSource->NegotiateSourceL( *sink );
+    }
+void UT_CMccVideoSource::UT_CMccVideoSource_UpdateL()
+    {
+    TMccVideoSourceSetting videosettings;
+    videosettings.iDeviceIndex = 1;
+    TMccVideoSourceSettingBuf settingsBuf(videosettings);
+    iVideoSource->iCameraIndex = 0;
+
+    EUNIT_ASSERT_NO_LEAVE(iVideoSource->UpdateL(settingsBuf));
+    EUNIT_ASSERT( iVideoSource->iCameraIndex == 1 );
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_CameraIndexL()
+    {
+    iVideoSource->iCameraIndex = 1;
+    EUNIT_ASSERT( iVideoSource->CameraIndex() == 1 );  
+    }
+    
+void UT_CMccVideoSource::UT_CMccVideoSource_GetParameterL()
+    {
+    TBuf8<KMaxConfigKeyLen> confKey( KNullDesC8 );
+    
+    // No users
+    EUNIT_ASSERT_SPECIFIC_LEAVE( iVideoSource->GetParameterL( KMccConfigKey, confKey ), KErrNotFound );
+    
+    // Avc and h263 users (impl behavior is quite complex, ignore return value as impl is tested separately)
+    CMccTestEventHandler* eventHandler1 = CMccTestEventHandler::NewL();
+    CleanupStack::PushL( eventHandler1 );
+    TMccCodecInfo codecInfo;
+    codecInfo.iSdpName = KH263SdpName;
+    codecInfo.iFourCC.Set(KMccFourCCIdH263);
+    codecInfo.iVideoHeight = 378;
+    codecInfo.iVideoWidth = 352;
+    codecInfo.iAverageBitrate = 30;
+    codecInfo.iMaxBitrate = 45;
+    codecInfo.iCodecMode = 2000;
+    TInt err = iVideoSource->AddUser( eventHandler1 );
+    MCC_EUNIT_ASSERT_EQUALS( err, KErrNone );
+    EUNIT_ASSERT_EQUALS( iVideoSource->iUsers.Count(), 1 );
+    iVideoSource->SetCurrentUser( eventHandler1 );
+    iVideoSource->SetVideoCodecL( codecInfo );
+    
+    CMccTestEventHandler* eventHandler2 = CMccTestEventHandler::NewL();
+    CleanupStack::PushL( eventHandler2 );
+    TMccCodecInfo codecInfo2;
+    codecInfo2.iSdpName = KAVCSdpName;
+    codecInfo2.iFourCC.Set(KMccFourCCIdAVC);
+    codecInfo2.iVideoHeight = 378;
+    codecInfo2.iVideoWidth = 352;
+    codecInfo2.iAverageBitrate = 30;
+    codecInfo2.iMaxBitrate = 45;
+    err = iVideoSource->AddUser( eventHandler2 );
+    MCC_EUNIT_ASSERT_EQUALS( err, KErrNone );
+    EUNIT_ASSERT_EQUALS( iVideoSource->iUsers.Count(), 2 );
+    iVideoSource->SetCurrentUser( eventHandler2 );
+    iVideoSource->SetVideoCodecL( codecInfo2 );
+    
+    TRAPD( err2, iVideoSource->GetParameterL( KMccConfigKey, confKey ) );
+    if ( err2 == KErrNoMemory )
+        {
+        User::Leave( err2 );
+        }
+
+    MCC_EUNIT_ASSERT_SPECIFIC_LEAVE( iVideoSource->GetParameterL( 1000, confKey ), KErrArgument ); 
+    
+    iVideoSource->RemoveUser( eventHandler2 );
+    CleanupStack::PopAndDestroy( eventHandler2 );
+    iVideoSource->RemoveUser( eventHandler1 );
+    CleanupStack::PopAndDestroy( eventHandler1 );
+    }
+
+void UT_CMccVideoSource::UT_CMccVideoSource_SetParameterL()
+    {
+    TBuf8<KMaxConfigKeyLen> confKey( _L8("abc") );
+    iVideoSource->SetParameterL( KMccConfigKey, confKey );
+    MCC_EUNIT_ASSERT_SPECIFIC_LEAVE( iVideoSource->SetParameterL( 1000, confKey ), KErrArgument ); 
+    }
+        
+//  TEST TABLE
+
+EUNIT_BEGIN_TEST_TABLE(
+    UT_CMccVideoSource,
+    "Add test suite description here.",
+    "UNIT" )
+
+EUNIT_TEST(
+    "NewSourceL - test ",
+    "CMccVideoSource",
+    "NewSourceL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_NewSourceLL, Teardown)
+
+EUNIT_TEST(
+    "ConstructSourceL - test ",
+    "CMccVideoSource",
+    "ConstructSourceL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_ConstructSourceLL, Teardown)
+
+EUNIT_TEST(
+    "CMccVideoSource - test ",
+    "CMccVideoSource",
+    "CMccVideoSource",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_CMccVideoSourceL, Teardown)
+
+EUNIT_TEST(
+    "SetCameraHandle - test ",
+    "CMccVideoSource",
+    "SetCameraHandle",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_SetCameraHandleL, Teardown)
+
+EUNIT_TEST(
+    "SetVideoCodecL - test ",
+    "CMccVideoSource",
+    "SetVideoCodecL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_SetVideoCodecLL, Teardown)
+
+EUNIT_TEST(
+    "GetVideoCodecL - test ",
+    "CMccVideoSource",
+    "GetVideoCodecL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_GetVideoCodecLL, Teardown)
+
+EUNIT_TEST(
+    "GetSupportedVideoCodecsL - test ",
+    "CMccVideoSource",
+    "GetSupportedVideoCodecsL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_GetSupportedVideoCodecsLL, Teardown)
+
+EUNIT_TEST(
+    "SetAudioCodecL - test ",
+    "CMccVideoSource",
+    "SetAudioCodecL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_SetAudioCodecLL, Teardown)
+
+EUNIT_TEST(
+    "GetAudioCodecL - test ",
+    "CMccVideoSource",
+    "GetAudioCodecL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_GetAudioCodecLL, Teardown)
+
+EUNIT_TEST(
+    "GetSupportedAudioCodecsL - test ",
+    "CMccVideoSource",
+    "GetSupportedAudioCodecsL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_GetSupportedAudioCodecsLL, Teardown)
+
+EUNIT_TEST(
+    "SetAudioEnabledL - test ",
+    "CMccVideoSource",
+    "SetAudioEnabledL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_SetAudioEnabledLL, Teardown)
+
+EUNIT_TEST(
+    "AudioEnabledL - test ",
+    "CMccVideoSource",
+    "AudioEnabledL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_AudioEnabledLL, Teardown)
+
+EUNIT_TEST(
+    "SetGainL - test ",
+    "CMccVideoSource",
+    "SetGainL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_SetGainLL, Teardown)
+
+EUNIT_TEST(
+    "GainL - test ",
+    "CMccVideoSource",
+    "GainL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_GainLL, Teardown)
+
+EUNIT_TEST(
+    "MaxGainL - test ",
+    "CMccVideoSource",
+    "MaxGainL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_MaxGainLL, Teardown)
+
+EUNIT_TEST(
+    "SourceDataTypeCode - test ",
+    "CMccVideoSource",
+    "SourceDataTypeCode",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_SourceDataTypeCodeL, Teardown)
+
+EUNIT_TEST(
+    "SetSourceDataTypeCode - test ",
+    "CMccVideoSource",
+    "SetSourceDataTypeCode",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_SetSourceDataTypeCodeL, Teardown)
+
+EUNIT_TEST(
+    "BufferEmptiedL - test ",
+    "CMccVideoSource",
+    "BufferEmptiedL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_BufferEmptiedLL, Teardown)
+
+EUNIT_TEST(
+    "CanCreateSourceBuffer - test ",
+    "CMccVideoSource",
+    "CanCreateSourceBuffer",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_CanCreateSourceBufferL, Teardown)
+
+EUNIT_TEST(
+    "CreateSourceBufferL - test ",
+    "CMccVideoSource",
+    "CreateSourceBufferL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_CreateSourceBufferLL, Teardown)
+
+EUNIT_TEST(
+    "SourceThreadLogon - test ",
+    "CMccVideoSource",
+    "SourceThreadLogon",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_SourceThreadLogonL, Teardown)
+
+EUNIT_TEST(
+    "SourceThreadLogoff - test ",
+    "CMccVideoSource",
+    "SourceThreadLogoff",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_SourceThreadLogoffL, Teardown)
+
+EUNIT_TEST(
+    "SourcePrimeL - test ",
+    "CMccVideoSource",
+    "SourcePrimeL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_SourcePrimeLL, Teardown)
+
+EUNIT_TEST(
+    "SourcePrimeL 2 - test ",
+    "CMccVideoSource",
+    "SourcePrimeL 2",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_SourcePrimeL2L, Teardown)
+    
+EUNIT_TEST(
+    "SourcePlayL - test ",
+    "CMccVideoSource",
+    "SourcePlayL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_SourcePlayLL, Teardown)
+
+EUNIT_TEST(
+    "SourcePauseL - test ",
+    "CMccVideoSource",
+    "SourcePauseL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_SourcePauseLL, Teardown)
+
+EUNIT_TEST(
+    "SourceStopL - test ",
+    "CMccVideoSource",
+    "SourceStopL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_SourceStopLL, Teardown)
+
+EUNIT_TEST(
+    "FillBufferL - test ",
+    "CMccVideoSource",
+    "FillBufferL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_FillBufferLL, Teardown)
+
+EUNIT_TEST(
+    "NegotiateSourceL - test ",
+    "CMccVideoSource",
+    "NegotiateSourceL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_NegotiateSourceLL, Teardown)
+
+EUNIT_TEST(
+    "UpdateL - test ",
+    "CMccVideoSource",
+    "UpdateL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_UpdateL, Teardown)
+
+EUNIT_TEST(
+    "CameraIndexL - test ",
+    "CMccVideoSource",
+    "CameraIndexL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_CameraIndexL, Teardown)
+
+EUNIT_TEST(
+    "GetParameterL - test ",
+    "CMccVideoSource",
+    "GetParameterL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_GetParameterL, Teardown)
+
+EUNIT_TEST(
+    "SetParameterL - test ",
+    "CMccVideoSource",
+    "SetParameterL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMccVideoSource_SetParameterL, Teardown)
+    
+EUNIT_END_TEST_TABLE
+
+//  END OF FILE