multimediacommsengine/mmcesrv/mmceserver/tsrc/ut_server/src/UT_CMCEDictionary.cpp
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommsengine/mmcesrv/mmceserver/tsrc/ut_server/src/UT_CMCEDictionary.cpp	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,279 @@
+/*
+* 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_cmcedictionary.h"
+
+//  EXTERNAL INCLUDES
+#include <digia/eunit/eunitmacros.h>
+
+//  INTERNAL INCLUDES
+#include "mcedictionary.h"
+#include "MCETestHelper.h"
+
+const TInt KKey1 = -22;
+const TInt KKey2 = 0;
+const TUint KUintValue = 456;
+const TUint KUintValue2 = 675;
+_LIT8( KStringValue, "some value" );
+_LIT8( KStringValue2, "another value" );
+
+// CONSTRUCTION
+UT_CMceDictionary* UT_CMceDictionary::NewL()
+    {
+    UT_CMceDictionary* self = UT_CMceDictionary::NewLC(); 
+    CleanupStack::Pop();
+
+    return self;
+    }
+
+UT_CMceDictionary* UT_CMceDictionary::NewLC()
+    {
+    UT_CMceDictionary* self = new( ELeave ) UT_CMceDictionary();
+    CleanupStack::PushL( self );
+
+	self->ConstructL(); 
+
+
+    return self;
+    }
+
+// Destructor (virtual by CBase)
+UT_CMceDictionary::~UT_CMceDictionary()
+    {
+    }
+
+// Default constructor
+UT_CMceDictionary::UT_CMceDictionary()
+    {
+    }
+
+// Second phase construct
+void UT_CMceDictionary::ConstructL()
+    {
+    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+    // It generates the test case table.
+    CEUnitTestSuiteClass::ConstructL();
+    }
+
+//  METHODS
+
+
+
+void UT_CMceDictionary::SetupL(  )
+    {
+    iDictionary = new ( ELeave ) CMceDictionary();
+    } 
+
+void UT_CMceDictionary::Teardown(  )
+    {
+    delete iDictionary;
+    }
+
+void UT_CMceDictionary::UT_CMceDictionaryItem_KeyL()
+    {
+    CMceDictionaryItem* item = new( ELeave ) CMceKeyTValuePair<TInt>( KKey1, KUintValue  );
+    EUNIT_ASSERT( item->Key() == KKey1 );
+    delete item;
+    
+    HBufC8* valueBuf = KStringValue().AllocLC();
+    item = new( ELeave ) CMceKeyCValuePair<HBufC8>( KKey2, valueBuf );
+    CleanupStack::Pop( valueBuf );
+    EUNIT_ASSERT( item->Key() == KKey2 );
+    delete item;
+    }  
+
+void UT_CMceDictionary::UT_CMceKeyTValuePair_ValueL()
+    {
+    CMceKeyTValuePair<TInt>* item = new( ELeave ) CMceKeyTValuePair<TInt>( KKey1, KUintValue  );
+    EUNIT_ASSERT( item->Value() == KUintValue );
+    delete item;
+    }
+
+void UT_CMceDictionary::UT_CMceKeyTValuePair_SetValueL()
+    {
+    CMceKeyTValuePair<TInt>* item = new( ELeave ) CMceKeyTValuePair<TInt>( KKey2, KUintValue  );
+    item->SetValue( KUintValue2 );
+    EUNIT_ASSERT( item->iValue == KUintValue2 );
+    delete item;
+    }
+
+void UT_CMceDictionary::UT_CMceKeyCValuePair_ValueL()
+    {
+    HBufC8* valueBuf = KStringValue().AllocLC();
+    CMceKeyCValuePair<HBufC8>* item = new( ELeave ) CMceKeyCValuePair<HBufC8>( KKey1, valueBuf );
+    CleanupStack::Pop( valueBuf );
+    
+    EUNIT_ASSERT( item->Value() );
+    EUNIT_ASSERT( item->Value()->Compare( KStringValue ) == 0 );
+    delete item;
+    }
+
+void UT_CMceDictionary::UT_CMceKeyCValuePair_SetValueL()
+    {
+    HBufC8* valueBuf = KStringValue().AllocLC();
+    CMceKeyCValuePair<HBufC8>* item = new( ELeave ) CMceKeyCValuePair<HBufC8>( KKey2, valueBuf );
+    CleanupStack::Pop( valueBuf );
+    CleanupStack::PushL( item );
+    
+    HBufC8* valueBuf2 = KStringValue2().AllocL();
+    item->SetValue( valueBuf2 );
+    EUNIT_ASSERT( item->iValue->Compare( KStringValue2 ) == 0 );
+    CleanupStack::PopAndDestroy( item );
+    }
+
+void UT_CMceDictionary::UT_CMceDictionary_PairL()
+    {
+    CMceDictionaryItem* item = new( ELeave ) CMceKeyTValuePair<TInt>( KKey1, KUintValue  );
+    CleanupStack::PushL( item );
+    iDictionary->iPairs.AppendL( item );
+    CleanupStack::Pop( item );
+    CMceKeyTValuePair<TInt>* pair = static_cast< CMceKeyTValuePair<TInt>* >(
+        iDictionary->Pair( KKey1 ) );
+    EUNIT_ASSERT( pair == item );
+    
+    HBufC8* valueBuf = KStringValue().AllocLC();
+    CMceDictionaryItem* item2 = new( ELeave ) CMceKeyCValuePair<HBufC8>( KKey2, valueBuf );
+    CleanupStack::Pop( valueBuf );
+    CleanupStack::PushL( item2 );
+    iDictionary->iPairs.AppendL( item2 );
+    CleanupStack::Pop( item2 );
+    CMceKeyCValuePair<TInt>* pair2 = static_cast< CMceKeyCValuePair<TInt>* >(
+        iDictionary->Pair( KKey2 ) );
+    EUNIT_ASSERT( pair2 == item2 );
+    }
+
+void UT_CMceDictionary::UT_CMceDictionary_AddLL()
+    {
+    CMceDictionaryItem* item = new( ELeave ) CMceKeyTValuePair<TInt>( KKey1, KUintValue  );
+    CleanupStack::PushL( item );
+    iDictionary->AddL( item );
+    CleanupStack::Pop( item );
+        
+    HBufC8* valueBuf = KStringValue().AllocLC();
+    CMceDictionaryItem* item2 = new( ELeave ) CMceKeyCValuePair<HBufC8>( KKey2, valueBuf );
+    CleanupStack::Pop( valueBuf );
+    CleanupStack::PushL( item2 );
+    iDictionary->AddL( item2 );
+    CleanupStack::Pop( item2 );
+    
+    EUNIT_ASSERT( iDictionary->iPairs.Count() == 2 );
+    EUNIT_ASSERT( iDictionary->iPairs[0] == item );
+    
+    EUNIT_ASSERT( iDictionary->iPairs[1] == item2 );
+    }
+    
+void UT_CMceDictionary::UT_CMceDictionary_DeleteL()
+    {
+    CMceDictionaryItem* item = new( ELeave ) CMceKeyTValuePair<TInt>( KKey1, KUintValue  );
+    CleanupStack::PushL( item );
+    iDictionary->iPairs.AppendL( item );
+    CleanupStack::Pop( item );
+    
+    HBufC8* valueBuf = KStringValue().AllocLC();
+    CMceDictionaryItem* item2 = new( ELeave ) CMceKeyCValuePair<HBufC8>( KKey2, valueBuf );
+    CleanupStack::Pop( valueBuf );
+    CleanupStack::PushL( item2 );
+    iDictionary->iPairs.AppendL( item2 );
+    CleanupStack::Pop( item2 );
+    
+    EUNIT_ASSERT( iDictionary->iPairs.Count() == 2 );
+    
+    iDictionary->Delete( KKey1 );
+    EUNIT_ASSERT( !iDictionary->Pair( KKey1 ) );
+    
+    EUNIT_ASSERT( iDictionary->iPairs.Count() == 1 );
+    
+    iDictionary->Delete( KKey1 );
+    EUNIT_ASSERT( iDictionary->iPairs.Count() == 1 );
+    
+    iDictionary->Delete( KKey2 );
+    EUNIT_ASSERT( !iDictionary->Pair( KKey2 ) );
+    
+    EUNIT_ASSERT( iDictionary->iPairs.Count() == 0 );
+    }
+
+
+//  TEST TABLE
+
+EUNIT_BEGIN_TEST_TABLE( 
+    UT_CMceDictionary,
+    "UT_CMceDictionary",
+    "UNIT" )
+
+EUNIT_TEST(
+    "Key - method ",
+    "CMceDictionaryItem",
+    "Key",
+    "FUNCTIONALITY",
+    SetupL, UT_CMceDictionaryItem_KeyL, Teardown)
+    
+EUNIT_TEST(
+    "Value - method ",
+    "CMceKeyTValuePair",
+    "Value",
+    "FUNCTIONALITY",
+    SetupL, UT_CMceKeyTValuePair_ValueL, Teardown)
+
+EUNIT_TEST(
+    "SetValue - method ",
+    "CMceKeyTValuePair",
+    "SetValue",
+    "FUNCTIONALITY",
+    SetupL, UT_CMceKeyTValuePair_SetValueL, Teardown)
+
+EUNIT_TEST(
+    "Value - method ",
+    "CMceKeyCValuePair",
+    "Value",
+    "FUNCTIONALITY",
+    SetupL, UT_CMceKeyCValuePair_ValueL, Teardown)
+
+EUNIT_TEST(
+    "SetValue - method ",
+    "CMceKeyCValuePair",
+    "SetValue",
+    "FUNCTIONALITY",
+    SetupL, UT_CMceKeyCValuePair_SetValueL, Teardown)
+
+EUNIT_TEST(
+    "PairL - method ",
+    "CMceDictionary",
+    "PairL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMceDictionary_PairL, Teardown)
+
+EUNIT_TEST(
+    "AddL - method ",
+    "CMceDictionary",
+    "AddL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMceDictionary_AddLL, Teardown)
+    
+EUNIT_TEST(
+    "DeleteL - method ",
+    "CMceDictionary",
+    "DeleteL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMceDictionary_DeleteL, Teardown)
+
+EUNIT_END_TEST_TABLE
+
+//  END OF FILE