/*
* Copyright (c) 2006-2007 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: Assert tool for checking test result
*
*/
#ifndef C_CBCTESTASSERT_H
#define C_CBCTESTASSERT_H
#include <e32std.h>
#include <e32base.h>
class CBCTestLogger;
/**
* CBCTestAssert
*/
class CBCTestAssert: public CBase
{
public:
// constructor and destructor
/**
* C++ default constructor.
*/
IMPORT_C CBCTestAssert();
/**
* Destructor.
*/
IMPORT_C virtual ~CBCTestAssert();
// exported functions
/**
* Assert tool functions. Using to verify the return value of tested API.
* @param aExpect, the expected value.
* @param aActual, the actual value.
* @param aComments, one sentence of comments.
*/
IMPORT_C void AssertIntL( TInt aExpect, TInt aActual,
const TDesC& aComments = KNullDesC );
IMPORT_C void AssertTrueL( TBool aActual,
const TDesC& aComments = KNullDesC );
IMPORT_C void AssertNotNullL( TAny* aActual,
const TDesC& aComments = KNullDesC );
/**
* Write one sentence of log.
* @param aLogText
*/
IMPORT_C void WriteLogL( const TDesC& aLogText );
// new functions
/**
* Set a pointer to logger.
* @param aLogger, a pointer to a logger object.
*/
void SetLogger( CBCTestLogger* aLogger );
/**
* Clear test statistic data. i.e. iTestCount and iFailedCount
*/
void ClearTestSummary();
/**
* Get test statistic data.
*/
void GetTestSummary( TInt& aTestCount, TInt& aFailedCount ) const;
protected:
// declaration
/**
* The type of assert function.
*/
enum TAssertType
{
EAssertInt,
EAssertTrue,
EAssertNotNull,
EAssertEnd
};
struct SAssertParam
{
TInt intValue;
TAny* ptValue;
};
// new functions
/**
* Wrtie log of assert result.
* @param aType, what type of value has been checked.
* @param aSuccess, whether the test passed.
* @param aComments, comments about the assert.
*/
void AssertLogL( TAssertType aType, TBool aSuccess,
const TDesC& aComments, SAssertParam* param = NULL );
private: // data
/**
* Used to write log.
* Not own.
*/
CBCTestLogger* iLogger;
/**
* How many asserts failed totally.
*/
TInt iFailedCount;
/**
* How many assert done totally.
*/
TInt iTestCount;
};
#endif // C_CBCTESTASSERT_H