ximpfw/tsrc/src/t_utils/t_utils.cpp
changeset 0 e6b17d312c8b
child 20 eedf17a17c27
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ximpfw/tsrc/src/t_utils/t_utils.cpp	Thu Dec 17 08:54:49 2009 +0200
@@ -0,0 +1,641 @@
+/*
+* Copyright (c) 2006 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: XIMP Framework Test Code 
+*
+*/
+
+
+#include <eunitmacros.h>
+#include <ecom/ecom.h>
+#include <badesca.h>
+#include <e32property.h>
+#include <e32base.h>
+#include <e32std.h>
+
+#include "t_utils.h"
+
+#include "eunittools.h"
+
+#include <ximpbase.h>
+#include <presenceinfo.h>
+
+#include "ximpeventcodec.h"
+#include "ownpresenceeventimp.h"
+#include "prfwtestfiletool.h"
+#include "ximppanics.h"
+
+#include "prfwtestrobustnesstools.h"
+
+#include "ximpobjectfactoryimp.h"
+#include "ximpobjectcollection.h"
+#include "ximprestrictedobjectcollection.h"
+#include "ximpidentityimp.h"
+#include "ximpstatusimp.h"
+#include "ximprequestidbuilder.h"
+
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// CONSTRUCTION
+T_Utils* T_Utils::NewL()
+    {
+    T_Utils* self = new( ELeave ) T_Utils;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+
+    return self;
+    }
+
+
+T_Utils::~T_Utils()
+    {
+    }
+
+
+void T_Utils::ConstructL()
+    {
+    CEUnitTestSuiteClass::ConstructL();
+    }
+
+
+T_Utils::T_Utils()
+    {
+    }
+
+// ===========================================================================
+// TEST CASE SETUP & TEARDOWN METHODS
+// ===========================================================================
+//
+
+void T_Utils::Setup_L()
+    {
+    }
+
+void T_Utils::Teardown()
+    {
+    }
+
+// ===========================================================================
+// TEST CASE
+// ===========================================================================
+void T_Utils::T_FileToolTest_L()
+    {
+    // TODO add more brains to the test
+    EUNIT_PRINT( _L("FileTool test.") );
+
+    /*
+    CXIMPTestFileTool* tool = CXIMPTestFileTool::NewL();
+    CleanupStack::PushL( tool );
+    tool->CleanL( 0 );
+    tool->PrepareL( 0 );
+    TInt files = tool->NumObjectsL( 0 );
+
+    EUNIT_ASSERT_DESC( files == 0, "Non-zero count of files, Clean or Prepare did not work" );
+
+    // make a proper object and store it.
+    MPresenceInfo::TPresenceInfoStatus status;
+    status = MPresenceInfo::EDataSubscriptionPending;
+    COwnPresenceEventImp* event = COwnPresenceEventImp::NewLC( status );
+
+    CBufFlat* buf = CBufFlat::NewL( 50 );
+    CleanupStack::PushL( buf );
+    TInt32 eventType = 0;
+    XIMPEventCodec::PackL( *event, eventType, buf );
+    HBufC8* extObj = buf->Ptr( 0 ).AllocLC();
+
+    // create more objects
+    tool->StoreL( 0, *extObj );
+    tool->StoreL( 0, *extObj );
+    tool->StoreL( 0, *extObj );
+    tool->StoreL( 0, *extObj );
+    tool->StoreL( 0, *extObj );
+
+    files = tool->NumObjectsL( 0 );
+    EUNIT_ASSERT_DESC( files == 5, "Bad count of files" );
+
+    COwnPresenceEventImp* object = static_cast<COwnPresenceEventImp*>( tool->RestoreLC( 0, 2 ) );
+    EUNIT_ASSERT_DESC( status == object->Status(), "Wrong status from restored object." );
+
+    CleanupStack::PopAndDestroy( 4, event ); // object, extObj, buf, event
+
+    CleanupStack::PopAndDestroy( tool );
+    */
+    }
+
+// ===========================================================================
+// TEST CASE
+// ===========================================================================
+void T_Utils::T_KillServers_L()
+    {
+    EUNIT_PRINT( _L("Utility to kill the servers. Always succeeds.") );
+
+    PrfwTestRobustness::DoPreCleaning();
+    }
+
+_LIT8( KTestObjectName,    "John Doe" );     // regular
+_LIT8( KTestObjectName2,   "Jane Doe" );     // regular
+_LIT8( KTestObjectNameWC,  "Jo* Doe" );      // wildcards
+_LIT8( KTestObjectNameWC2, "Ja* Doe" );      // wildcards
+
+_LIT( KIdentity1, "Identity 1" );
+_LIT( KIdentity2, "Identity 2" );
+
+// ===========================================================================
+// TEST CASE
+// ===========================================================================
+void T_Utils::T_ObjectCollection_Unnamed_L()
+    {
+    EUNIT_PRINT( _L("Object collection unnamed tests.") );
+
+    CXIMPObjectFactoryImp* factory = CXIMPObjectFactoryImp::NewL();
+    CleanupStack::PushL( factory );
+
+    MXIMPObjectCollection* collection = factory->NewObjectCollectionLC();
+
+    // LookupByType should not find anything
+    const MXIMPBase* obj = NULL;
+    collection->LookupByType( obj, MXIMPIdentity::KInterfaceId );
+    EUNIT_ASSERT_DESC( obj == NULL, "LookupByType found an object" );
+
+    // LookupByTypeAndName should not find anything
+    collection->LookupByTypeAndName( obj, MXIMPIdentity::KInterfaceId, KTestObjectName );
+    EUNIT_ASSERT_DESC( obj == NULL, "LookupByTypeAndName found an object" );
+
+    collection->LookupByTypeAndName( obj, MXIMPIdentity::KInterfaceId, KTestObjectNameWC );
+    EUNIT_ASSERT_DESC( obj == NULL, "LookupByTypeAndName with wildcard found an object" );
+
+    // add some
+    MXIMPIdentity* identity2 = factory->NewIdentityLC();
+    identity2->SetIdentityL( KIdentity2 );
+
+    MXIMPStatus* status = factory->NewStatusLC();
+    status->SetResultCode( KErrArgument );
+
+    MXIMPIdentity* identity1 = factory->NewIdentityLC();
+    identity1->SetIdentityL( KIdentity1 );
+
+    collection->AddObjectL( identity1 );
+    CleanupStack::Pop(); // identity1
+
+    collection->AddObjectL( status );
+    CleanupStack::Pop(); // status
+
+    collection->AddObjectL( identity2 );
+    CleanupStack::Pop(); // identity2
+
+    // get and verify the status
+    MXIMPBase* getObj = NULL;
+    collection->GetByType( getObj, MXIMPStatus::KInterfaceId );
+    EUNIT_ASSERT_DESC( getObj != NULL, "LookupByType did not find an object" );
+
+    MXIMPStatus* gotStatus = ( MXIMPStatus* ) getObj->GetInterface( MXIMPStatus::KInterfaceId, MXIMPBase::EPanicIfUnknown );
+    CleanupDeletePushL( gotStatus );
+    EUNIT_ASSERT_DESC( gotStatus->ResultCode() == KErrArgument, "Status got corrupted" );
+    CleanupStack::PopAndDestroy(); // gotStatus
+
+    // check that status can't be found anymore
+    obj = NULL;
+    collection->LookupByType( obj, MXIMPStatus::KInterfaceId );
+    EUNIT_ASSERT_DESC( obj == NULL, "LookupByType found an object" );
+
+    collection->LookupByTypeAndName( obj, MXIMPStatus::KInterfaceId, KTestObjectName );
+    EUNIT_ASSERT_DESC( obj == NULL, "LookupByTypeAndName found an object" );
+
+    collection->LookupByTypeAndName( obj, MXIMPStatus::KInterfaceId, KTestObjectNameWC );
+    EUNIT_ASSERT_DESC( obj == NULL, "LookupByTypeAndName with wildcard found an object" );
+
+    // get and verify the two identities
+    // first identity
+    getObj = NULL;
+    collection->GetByType( getObj, MXIMPIdentity::KInterfaceId );
+    EUNIT_ASSERT_DESC( getObj != NULL, "LookupByType did not find an object" );
+
+    MXIMPIdentity* gotIdentity = ( MXIMPIdentity* ) getObj->GetInterface( MXIMPIdentity::KInterfaceId, MXIMPBase::EPanicIfUnknown );
+    CleanupDeletePushL( gotIdentity );
+    EUNIT_ASSERT_DESC( 0 == gotIdentity->Identity().Compare( KIdentity1 ), "Wrong identity object found" );
+    CleanupStack::PopAndDestroy(); // gotIdentity
+
+    // second identity
+    getObj = NULL;
+    collection->GetByType( getObj, MXIMPIdentity::KInterfaceId );
+    EUNIT_ASSERT_DESC( getObj != NULL, "LookupByType did not find an object" );
+
+    gotIdentity = ( MXIMPIdentity* ) getObj->GetInterface( MXIMPIdentity::KInterfaceId, MXIMPBase::EPanicIfUnknown );
+    CleanupDeletePushL( gotIdentity );
+    EUNIT_ASSERT_DESC( 0 == gotIdentity->Identity().Compare( KIdentity2 ), "Wrong identity object found" );
+    CleanupStack::PopAndDestroy(); // gotIdentity
+
+    // now there should not be anything anymore
+    obj = NULL;
+    collection->LookupByType( obj, MXIMPIdentity::KInterfaceId );
+    EUNIT_ASSERT_DESC( obj == NULL, "LookupByType found an object" );
+
+    CleanupStack::PopAndDestroy(); // collection
+    CleanupStack::PopAndDestroy( factory );
+    }
+
+// ===========================================================================
+// TEST CASE
+// ===========================================================================
+void T_Utils::T_ObjectCollection_Named_L()
+    {
+    EUNIT_PRINT( _L("Object collection named tests.") );
+
+    CXIMPObjectFactoryImp* factory = CXIMPObjectFactoryImp::NewL();
+    CleanupStack::PushL( factory );
+
+    MXIMPObjectCollection* collection = factory->NewObjectCollectionLC();
+
+    // LookupByType should not find anything
+    const MXIMPBase* obj = NULL;
+    collection->LookupByType( obj, MXIMPIdentity::KInterfaceId );
+    EUNIT_ASSERT_DESC( obj == NULL, "LookupByType found an object" );
+
+    // LookupByTypeAndName should not find anything
+    collection->LookupByTypeAndName( obj, MXIMPIdentity::KInterfaceId, KTestObjectName );
+    EUNIT_ASSERT_DESC( obj == NULL, "LookupByTypeAndName found an object" );
+
+    collection->LookupByTypeAndName( obj, MXIMPIdentity::KInterfaceId, KTestObjectNameWC );
+    EUNIT_ASSERT_DESC( obj == NULL, "LookupByTypeAndName with wildcard found an object" );
+
+    // add some
+    MXIMPIdentity* identity2 = factory->NewIdentityLC();
+    identity2->SetIdentityL( KIdentity2 );
+    
+    MXIMPStatus* status = factory->NewStatusLC();
+    status->SetResultCode( KErrArgument );
+
+    MXIMPIdentity* identity1 = factory->NewIdentityLC();
+    identity1->SetIdentityL( KIdentity1 );
+    
+    collection->AddObjectWithNameL( identity1, KTestObjectName );
+    CleanupStack::Pop(); // identity1
+
+    TRAPD( err, collection->AddObjectWithNameL( status, KTestObjectNameWC ) );
+    EUNIT_ASSERT_DESC( err == KErrBadName, "Did not leave when given wildcards" );
+    CleanupStack::PopAndDestroy(); // status
+
+    collection->AddObjectWithNameL( identity2, KTestObjectName2 );
+    CleanupStack::Pop(); // identity2
+
+    // should not find the status object
+    MXIMPBase* getObj = NULL;
+    collection->GetByType( getObj, MXIMPStatus::KInterfaceId );
+    EUNIT_ASSERT_DESC( getObj == NULL, "LookupByType found wrong object" );
+
+    // get and verify the two identities
+    // first identity
+    getObj = NULL;
+    collection->GetByTypeAndName( getObj, MXIMPIdentity::KInterfaceId, KTestObjectName );
+    EUNIT_ASSERT_DESC( getObj != NULL, "LookupByType did not find an object" );
+
+    MXIMPIdentity* gotIdentity = ( MXIMPIdentity* ) getObj->GetInterface( MXIMPIdentity::KInterfaceId, MXIMPBase::EPanicIfUnknown );
+    CleanupDeletePushL( gotIdentity );
+    EUNIT_ASSERT_DESC( 0 == gotIdentity->Identity().Compare( KIdentity1 ), "Wrong identity object found" );
+    CleanupStack::PopAndDestroy(); // gotIdentity
+
+    // second identity
+    getObj = NULL;
+    collection->GetByTypeAndName( getObj, MXIMPIdentity::KInterfaceId, KTestObjectNameWC2 );
+    EUNIT_ASSERT_DESC( getObj != NULL, "LookupByType did not find an object" );
+
+    gotIdentity = ( MXIMPIdentity* ) getObj->GetInterface( MXIMPIdentity::KInterfaceId, MXIMPBase::EPanicIfUnknown );
+    CleanupDeletePushL( gotIdentity );
+    EUNIT_ASSERT_DESC( 0 == gotIdentity->Identity().Compare( KIdentity2 ), "Wrong identity object found" );
+    CleanupStack::PopAndDestroy(); // gotIdentity
+
+    // now there should not be anything anymore
+    obj = NULL;
+    collection->LookupByType( obj, MXIMPIdentity::KInterfaceId );
+    EUNIT_ASSERT_DESC( obj == NULL, "LookupByType found an object" );
+
+    CleanupStack::PopAndDestroy(); // collection
+    CleanupStack::PopAndDestroy( factory );
+    }
+
+// ===========================================================================
+// TEST CASE
+// ===========================================================================
+void T_Utils::T_RestrictedObjectCollection_L()
+    {
+    EUNIT_PRINT( _L("Restricted object collection tests.") );
+
+    CXIMPObjectFactoryImp* factory = CXIMPObjectFactoryImp::NewL();
+    CleanupStack::PushL( factory );
+
+    MXIMPRestrictedObjectCollection* resColl = factory->NewRestrictedObjectCollectionLC();
+
+    // LookupByType should not find anything, empty collection
+    const MXIMPBase* obj = NULL;
+    resColl->LookupByType( obj, MXIMPIdentity::KInterfaceId );
+    EUNIT_ASSERT_DESC( obj == NULL, "LookupByType found an object" );
+
+    // add some
+    MXIMPIdentity* identity2 = factory->NewIdentityLC();
+    identity2->SetIdentityL( KIdentity2 );
+    
+    MXIMPStatus* status = factory->NewStatusLC();
+    status->SetResultCode( KErrArgument );
+
+    MXIMPIdentity* identity1 = factory->NewIdentityLC();
+    identity1->SetIdentityL( KIdentity1 );
+    
+    resColl->AddOrReplaceTypeL( identity1 );
+    CleanupStack::Pop(); // identity1
+
+    resColl->AddOrReplaceTypeL( status );
+    CleanupStack::Pop(); // identity1
+
+    resColl->AddOrReplaceTypeL( identity2 );
+    CleanupStack::Pop(); // identity2
+
+    // there should only be {identity2, status} in the collection
+    obj = NULL;
+    resColl->LookupByType( obj, MXIMPIdentity::KInterfaceId );
+    EUNIT_ASSERT_DESC( obj != NULL, "LookupByType did not find an object" );
+
+    obj = NULL;
+    resColl->LookupByType( obj, MXIMPStatus::KInterfaceId );
+    EUNIT_ASSERT_DESC( obj != NULL, "LookupByType did not find an object" );
+
+    // get the objects and verify their contents
+    
+    // 1. identity
+    MXIMPBase* getObj = NULL;
+    resColl->GetByType( getObj, MXIMPIdentity::KInterfaceId );
+    EUNIT_ASSERT_DESC( getObj != NULL, "LookupByType did not find an object" );
+
+    MXIMPIdentity* gotIdentity = ( MXIMPIdentity* ) getObj->GetInterface( MXIMPIdentity::KInterfaceId, MXIMPBase::EPanicIfUnknown );
+    CleanupDeletePushL( gotIdentity );
+    EUNIT_ASSERT_DESC( 0 == gotIdentity->Identity().Compare( KIdentity2 ), "Second identity object did not replace the first one" );
+    CleanupStack::PopAndDestroy(); // gotIdentity
+
+    // 2. status
+    getObj = NULL;
+    resColl->GetByType( getObj, MXIMPStatus::KInterfaceId );
+    EUNIT_ASSERT_DESC( getObj != NULL, "LookupByType did not find an object" );
+
+    MXIMPStatus* gotStatus = ( MXIMPStatus* ) getObj->GetInterface( MXIMPStatus::KInterfaceId, MXIMPBase::EPanicIfUnknown );
+    CleanupDeletePushL( gotStatus );
+    EUNIT_ASSERT_DESC( KErrArgument == gotStatus->ResultCode(), "Status object was corrupted" );
+    CleanupStack::PopAndDestroy(); // gotStatus
+
+    // now there should not be anything anymore
+    obj = NULL;
+    resColl->LookupByType( obj, MXIMPIdentity::KInterfaceId );
+    EUNIT_ASSERT_DESC( obj == NULL, "LookupByType found an identity object although it was removed" );
+    
+    obj = NULL;
+    resColl->LookupByType( obj, MXIMPStatus::KInterfaceId );
+    EUNIT_ASSERT_DESC( obj == NULL, "LookupByType found a status object although it was removed" );
+
+    CleanupStack::PopAndDestroy(); // collection
+    CleanupStack::PopAndDestroy( factory );
+    }
+
+void T_Utils::T_DataSubscriptionState_L()
+    {
+    EUNIT_PRINT( _L("Data subscription state tests.") );
+
+    CXIMPObjectFactoryImp* factory = CXIMPObjectFactoryImp::NewL();
+    CleanupStack::PushL( factory );
+
+    MXIMPDataSubscriptionState* dataState = factory->NewDataSubscriptionStateLC();
+
+    EUNIT_ASSERT_DESC( dataState->DataState() == MXIMPDataSubscriptionState::EDataUnavailable, 
+                      "Data was available." );
+    EUNIT_ASSERT_DESC( dataState->SubscriptionState() == MXIMPDataSubscriptionState::ESubscriptionInactive, 
+                      "Subscription was active." );
+    
+    dataState->SetDataStateL( MXIMPDataSubscriptionState::EDataAvailable );
+    dataState->SetSubscriptionStateL( MXIMPDataSubscriptionState::ESubscriptionActive );
+
+    EUNIT_ASSERT_DESC( dataState->DataState() == MXIMPDataSubscriptionState::EDataAvailable, 
+                      "Data was unavailable." );
+    EUNIT_ASSERT_DESC( dataState->SubscriptionState() == MXIMPDataSubscriptionState::ESubscriptionActive, 
+                      "Subscription was inactive." );
+
+    CleanupStack::PopAndDestroy(); // collection
+    CleanupStack::PopAndDestroy( factory );
+    }
+
+
+
+void T_Utils::T_TXIMPRequestIdBuilder_Test_L()
+    {
+    EUNIT_PRINT( _L("TXIMPRequestIdbuilder test.") );
+    
+    TXIMPRequestIdBuilder builder;
+    builder.SetProtocolId( 1 );
+    builder.SetSessionId( 1 );
+    builder.SetRequestId( 1 );    
+
+    TXIMPRequestId id1 = builder.BuildRequestId();
+    EUNIT_ASSERT( id1 == id1 );
+    EUNIT_ASSERT( id1 != TXIMPRequestId::Null() );
+
+
+        {
+        builder.SetProtocolId( 2 );   
+        TXIMPRequestId id2 = builder.BuildRequestId();
+        EUNIT_ASSERT( id2 == id2 );
+        EUNIT_ASSERT( id1 != id2 );
+        EUNIT_ASSERT( id2 != id1 );
+        EUNIT_ASSERT( id2 != TXIMPRequestId::Null() );        
+        }
+
+        {
+        builder.SetSessionId( 2 );   
+        TXIMPRequestId id3 = builder.BuildRequestId();
+        EUNIT_ASSERT( id3 == id3 );
+        EUNIT_ASSERT( id1 != id3 );
+        EUNIT_ASSERT( id3 != id1 );
+        EUNIT_ASSERT( id3 != TXIMPRequestId::Null() );        
+        }
+
+
+        {
+        builder.SetRequestId( 2 );   
+        TXIMPRequestId id4 = builder.BuildRequestId();
+        EUNIT_ASSERT( id4 == id4 );
+        EUNIT_ASSERT( id1 != id4 );
+        EUNIT_ASSERT( id4 != id1 );
+        EUNIT_ASSERT( id4 != TXIMPRequestId::Null() );                
+        }
+        
+        
+        {
+        builder.SetProtocolId( 33333333 );
+        builder.SetSessionId( 44444444 );
+        builder.SetRequestId( 55555555 );    
+
+        TXIMPRequestId id5 = builder.BuildRequestId();
+        EUNIT_ASSERT( id5 == id5 );
+        EUNIT_ASSERT( id1 != id5 );
+        EUNIT_ASSERT( id5 != id1 );
+        EUNIT_ASSERT( id5 != TXIMPRequestId::Null() );                
+        }
+    }
+
+
+void T_Utils::T_TXIMPRequestId_Test_L()
+    {
+    EUNIT_PRINT( _L("TXIMPRequestIdbuilder test.") );
+    
+    TXIMPRequestId id0 = TXIMPRequestId::Null();
+    EUNIT_ASSERT( id0 == TXIMPRequestId::Null() );  
+    
+        {
+        TXIMPRequestId id1 = TXIMPRequestId::Init( 1 ); 
+        EUNIT_ASSERT( id1 != TXIMPRequestId::Null() ); 
+        }
+
+
+        {
+        TXIMPRequestId id2 = TXIMPRequestId::Init( 2);     
+        EUNIT_ASSERT( id0 != id2 );             
+        }
+
+    
+        {
+        TXIMPRequestId id3 = TXIMPRequestId::Init( KMaxTInt );     
+        EUNIT_ASSERT( id0 != id3 );             
+        }
+
+
+        {
+        TXIMPRequestId id4 = TXIMPRequestId::Init( 33333333 );     
+        EUNIT_ASSERT( id0 != id4 );             
+        }
+        
+        {
+        TXIMPRequestId id5 = TXIMPRequestId::Init( KMaxTInt );     
+        TXIMPRequestId id6 = TXIMPRequestId::Init( KMinTInt );     
+        EUNIT_ASSERT( id0 != id5 );             
+        EUNIT_ASSERT( id0 != id6 );             
+        EUNIT_ASSERT( id5 != id6 );             
+        }
+        
+    }
+
+
+
+
+// ===========================================================================
+// TEST CASE TABLE
+// ===========================================================================
+//
+EUNIT_BEGIN_TEST_TABLE(
+        T_Utils,
+        "XIMP test utils tests",
+        "MODULE" )
+
+ PRFW_NOT_DECORATED_TEST(
+        "Kill servers",
+        "",
+        "",
+        "FUNCTIONALITY",
+        Setup_L,
+        T_KillServers_L,
+        Teardown )
+
+PRFW_NOT_DECORATED_TEST(
+        "Object collection without names",
+        "",
+        "",
+        "FUNCTIONALITY",
+        Setup_L,
+        T_ObjectCollection_Unnamed_L,
+        Teardown )
+
+PRFW_NOT_DECORATED_TEST(
+        "Object collection using names",
+        "",
+        "",
+        "FUNCTIONALITY",
+        Setup_L,
+        T_ObjectCollection_Named_L,
+        Teardown )
+
+PRFW_NOT_DECORATED_TEST(
+        "Restricted object collection",
+        "",
+        "",
+        "FUNCTIONALITY",
+        Setup_L,
+        T_RestrictedObjectCollection_L,
+        Teardown )
+
+PRFW_NOT_DECORATED_TEST(
+        "Data subscription state",
+        "",
+        "",
+        "FUNCTIONALITY",
+        Setup_L,
+        T_DataSubscriptionState_L,
+        Teardown )
+
+
+PRFW_NOT_DECORATED_TEST(
+        "TXIMPRequestIdBuilder test",
+        "",
+        "",
+        "FUNCTIONALITY",
+        Setup_L,
+        T_TXIMPRequestIdBuilder_Test_L,
+        Teardown )
+
+
+PRFW_NOT_DECORATED_TEST(
+        "TXIMPRequestId test",
+        "",
+        "",
+        "FUNCTIONALITY",
+        Setup_L,
+        T_TXIMPRequestId_Test_L,
+        Teardown )
+
+
+/* PRFW_NOT_DECORATED_TEST(
+        "FileTool test",
+        "",
+        "",
+        "FUNCTIONALITY",
+        Setup_L,
+        T_FileToolTest_L,
+        Teardown ) */
+
+
+EUNIT_END_TEST_TABLE
+
+
+// ===========================================================================
+// TEST SUITE CONSTRUCTION
+// ===========================================================================
+//
+EXPORT_C MEUnitTest* CreateTestSuiteL()
+    {
+    return T_Utils::NewL();
+    }
+
+
+// end of file
+
+
+
+
+
+