commsconfig/commsdatabaseshim/TE_commdb/inc/Teststepcommdb.h
author hgs
Mon, 06 Sep 2010 13:49:23 +0100
changeset 72 ae47d0499bee
permissions -rw-r--r--
201033_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
72
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     1
/*
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     3
* All rights reserved.
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     8
*
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     9
* Initial Contributors:
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    11
*
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    12
* Contributors:
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    13
*
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    14
* Description:
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    15
*
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    16
*/
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    17
// This contains CTestCaseCommDb which is the base class for all 
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    18
// the CommDb suite test cases
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    19
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    20
#if (!defined __COMMDBTESTSTEP_H__)
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    21
#define __COMMDBTESTSTEP_H__
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    22
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    23
#include "TE_commdbServer.h"
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    24
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    25
_LIT(KCommDbName, "C:\\private\\100012a5\\DBS_10004e1d_CDBV3.DAT");
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    26
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    27
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    28
class CTestSuite;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    29
class CTestSuiteCommDb;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    30
class CCommsDatabase;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    31
class CCommsDbTableView;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    32
class CCommsDbProtectTableView;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    33
class CCommsDbProtectConnectPrefTableView;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    34
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    35
NONSHARABLE_CLASS(CTestStepCommDb) : public CTestStep
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    36
{
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    37
public:
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    38
	CTestStepCommDb();
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    39
	~CTestStepCommDb();
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    40
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    41
	// pointer to suite which owns this test 
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    42
	CTestSuiteCommDb * iCommDbSuite;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    43
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    44
	//Functions to set and clear the database objects that will
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    45
	//be used by test steps derived from this class.
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    46
	//This prevents the test steps from creating their own database objects
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    47
	void setRemoteDatabaseObjects( CCommsDatabase* aDb, CCommsDbTableView* aDbView );
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    48
	void clearRemoteDatabaseObjects();
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    49
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    50
	TInt executeStep( CTestStepCommDb& aTestStep );
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    51
	TInt executeStep( );
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    52
	virtual TInt executeStepL();
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    53
	TVerdict doTestStepPostambleL();
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    54
	TInt doTestStepWithHeapFailureL( CTestStepCommDb& aTestStep, TInt aReturnValue );
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    55
	TInt doTestStepWithHeapFailureDb( CTestStepCommDb& aTestStep, TInt aReturnValue );
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    56
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    57
	enum TDatabaseNumber
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    58
		{
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    59
		EDatabase_1,		//Records in ISP tables only
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    60
		EDatabase_7			//No records
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    61
		};
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    62
	TInt copyTestDatabase( TDatabaseNumber aDbNumber );
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    63
	TInt copyDatabaseToDefault( TDatabaseNumber aDbNumber );
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    64
	void copyFileL (const TDesC& anOld,const TDesC& aNew);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    65
	void deleteFileL (const TDesC& aFileName);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    66
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    67
	void DeleteCurrentDatabaseL();
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    68
	void CopyDatabaseL(const TDesC& aSource);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    69
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    70
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    71
	//Pointers to the current database objects
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    72
	CCommsDatabase*		iTheDb;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    73
	CCommsDbTableView*	iTheView;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    74
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    75
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    76
protected:
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    77
	//Set by derived steps when local database objects have been allocated
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    78
	TBool	iLocalObjects;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    79
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    80
	//Opens a database object and assigns it to iTheDb
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    81
	TBool openDbL();
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    82
	//Opens a database and a table view, assigns them to iTheDb and iTheView
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    83
	TBool openDbAndViewL( const TDesC16& aTable );
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    84
	//Releases any objects assigned to iTheDb and iTheView
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    85
	void popAndDestroyDatabaseObjects();
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    86
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    87
	TInt ChangeCPRankingL(CCommsDbProtectConnectPrefTableView* aTable, TUint32& Ranking);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    88
	//Functions needed for Protection tests
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    89
	void    CheckTableIsProtectedL(CCommsDbProtectTableView* aTable);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    90
	void    CheckTableIsNotProtectedL(CCommsDbProtectTableView* aTable);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    91
	void    GoToPositionL(CCommsDbProtectTableView* aTable,TInt aPos);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    92
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    93
	void    UpdateRecordL   (CCommsDbProtectTableView* aTable,TInt aResult);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    94
	void    DeleteRecordL   (CCommsDbProtectTableView* aTable,TInt aResult);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    95
	void    InsertRecordL   (CCommsDbProtectTableView* aTable,TInt aResult);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    96
	void    ModifyRecordL   (CCommsDbProtectTableView* aTable);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    97
	void    PopulateInsertedRecordL(CCommsDbProtectTableView* aTable);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    98
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    99
	void    CheckTableIsProtectedL(CCommsDbProtectConnectPrefTableView* aTable);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   100
	void    CheckTableIsNotProtectedL(CCommsDbProtectConnectPrefTableView* aTable);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   101
	void    GoToPositionL(CCommsDbProtectConnectPrefTableView* aTable,TInt aPos);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   102
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   103
	void    UpdateRecordL   (CCommsDbProtectConnectPrefTableView* aTable,TInt aResult);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   104
	void    DeleteRecordL   (CCommsDbProtectConnectPrefTableView* aTable,TInt aResult);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   105
	void    InsertRecordL   (CCommsDbProtectConnectPrefTableView* aTable,TInt aResult);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   106
	void    ModifyRecordL   (CCommsDbProtectConnectPrefTableView* aTable);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   107
	void    PopulateInsertedRecordL(CCommsDbProtectConnectPrefTableView* aTable);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   108
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   109
	void    CheckRecordAccessL(CCommsDbProtectConnectPrefTableView* aTable, TInt aExpectedAccess);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   110
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   111
	void    ProtectRecordL  (CCommsDbProtectTableView* aTable,TInt aResult);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   112
	void    UnprotectRecordL(CCommsDbProtectTableView* aTable,TInt aResult);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   113
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   114
    void    ProtectRecordL(CCommsDbProtectConnectPrefTableView* aTable, TInt aResult);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   115
	void    UnprotectRecordL(CCommsDbProtectConnectPrefTableView* aTable,TInt aResult);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   116
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   117
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   118
private:
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   119
	//Set when remote database object are in use
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   120
	TBool	iRemoteObjects;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   121
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   122
};
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   123
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   124
#define CDBLEAVE( exp1, exp2 )			{	\
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   125
											TInt _r;	\
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   126
											_r = (exp1);  \
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   127
											if ( _r!=exp2 ) User::Leave(_r);\
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   128
										}
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   129
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   130
_LIT(KInvalidColumnName, "InvalidColumn");
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   131
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   132
#endif /* __COMMDBTESTSTEP_H__ */