connectivitylayer/isimessage/isimessage_dll/internal/test/src/ctestbase.cpp
author <dalarub>
Fri, 06 Nov 2009 17:28:23 +0000
changeset 0 63b37f68c1ce
permissions -rw-r--r--
First Contribution. Vanilla as it came from Nokia

/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "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: 
*
*/



/*
-------------------------------------------------------------------------------

    DESCRIPTION

    This file contains the header file of CTestBase of 
    CTestModule

-------------------------------------------------------------------------------
*/
// INCLUDES
#include <f32file.h>            // For RDebug 

#include "ctestbase.h"
     
/*
-------------------------------------------------------------------------------

    Class: CTestBase

    Method: GetCaseNameL

    Description: Returns the name of the case.

    Parameters: TInt aCase

    Return Values: TText*

    Errors/Exceptions: If parameter is wrong value.

    Parameter is under zero or below the amount of cases.
    
    Status: Draft
    
-------------------------------------------------------------------------------
*/
const TText* CTestBase::GetCaseNameL
        (
        TInt aClassCase // The number of the case.
        )
    {

    const TText* caseName = NULL;
    TInt caseCount( iNameArray->Count() );
    // If case out of limits panic.
    if( aClassCase < 0 || aClassCase > caseCount )
        {
        RDebug::Print( _L("CTestBase GetCaseNameL") );
        User::Panic( _L("CTestBase"), 0 );
        }
    caseName = iNameArray->At( aClassCase );

    return caseName;

    }

/*
-------------------------------------------------------------------------------

    Class: CTestBase

    Method: ~CTestBase

    Description: Destructor

    Handles the deletion of member variables.

    Parameters: None

    Return Values: None

    Errors/Exceptions: None
    
    Status: Draft
    
-------------------------------------------------------------------------------
*/
CTestBase::~CTestBase
        (
        // None
        )
    {

    if( iArray )
        {
        for( TInt i( 0 ); i < iArray->Count(); i++ )
            {
            iArray->Delete( i );
            }
        iArray->Reset();
        delete iArray;
        }
    if( iNameArray )
        {
        for( TInt i( 0 ); i < iNameArray->Count(); i++ )
            {
            iNameArray->Delete( i );
            }
        iNameArray->Reset();
        delete iNameArray;
        }

    }

/*
-------------------------------------------------------------------------------

    Class: CTestBase

    Method: AddTestCaseL

    Description: Add a new test case.

    Adds new test case.

    Return Values: None
    
    Status: Draft
    
-------------------------------------------------------------------------------
*/
void CTestBase::AddTestCaseL
        (
        TInt (MTest::* aTestFunction)( TExecutionAndDebugInfo& ),
        const TText* aFunctionName
        )
    {

    // If not initialized the function array.
    if( !iArray )
        {
        iArray = new( ELeave )CArrayFixFlat<MTestFunction>( 1 );
        }
    // Add function to array.
    iArray->AppendL( ( MTestFunction )( ( aTestFunction ) ) );
    iNumberOfCases++;
    // If not initialized the case name array.
    if( !iNameArray )
        {
        iNameArray = new( ELeave )CArrayFixFlat<const TText*>( 1 );
        }
    // Add name to array.
    const TText* text = aFunctionName;
    iNameArray->AppendL( text );

    }

/*
-------------------------------------------------------------------------------

    Class: CTestBase

    Method: AddTestCaseL

    Description: Add a new test case.

    Adds new test case.

    Return Values: None
    
    Status: Draft
    
-------------------------------------------------------------------------------
*/
void CTestBase::AddTestCaseL
        (
        const TDesC& aFunctionName, // The name of the function as descriptor.
        TInt (MTest::* aTestFunction)( TExecutionAndDebugInfo& ) // Function Ptr
        )
    {

    // If not initialized the function array.
    if( !iArray )
        {
        iArray = new( ELeave )CArrayFixFlat<MTestFunction>( 1 );
        }
    // Add function to array.
    iArray->AppendL( ( MTestFunction )( ( aTestFunction ) ) );
    iNumberOfCases++;
    // If not initialized the case name array.
    if( !iNameArray )
        {
        iNameArray = new( ELeave )CArrayFixFlat<const TText*>( 1 );
        }
    // Add name to array.
    const TText* text = aFunctionName.Ptr();
    iNameArray->AppendL( text );

    }

// End of file.