phonebookengines_old/contactsmodel/tsrc/T_CntTestImplementor.h
changeset 40 b46a585f6909
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookengines_old/contactsmodel/tsrc/T_CntTestImplementor.h	Fri Jun 11 13:29:23 2010 +0300
@@ -0,0 +1,229 @@
+// Copyright (c) 2005-2009 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:
+// This is the base class/interface for a set of contact model tests.
+// It is based on the bridge pattern.
+// 
+//
+
+#ifndef __T_CNTTESTIMPLEMENTOR_H__
+#define __T_CNTTESTIMPLEMENTOR_H__
+
+#include "persistencelayer.h"
+#include <cntdb.h>
+#include "T_CntTestImplDefs.h"
+
+#include <cntitem.h>
+
+
+class CCntTestImplementor : public CBase
+	{
+public:
+
+
+	virtual ~CCntTestImplementor() {};	
+
+	void PrintCntForViewL(const TDesC& aFileName, const CContactItemViewDef& aView);
+	void DumpContactL (const CContactItem& aItem, const TDesC& aLabel);
+
+	virtual void OpenDatabaseL(const TDesC& aFilename) = 0; 
+	virtual void CreateDatabaseL(const TDesC& aFilename, TBool aOwerwrite = EFalse) = 0; 
+	virtual void CloseDatabase() = 0; 
+
+
+	void ConstructL();
+
+	// Virtual methods
+	virtual CContactItem*  ReadMinimalLC (TContactItemId id)       = 0;
+	virtual CContactItem*  OpenLC  		 (TContactItemId id, const CContactItemViewDef& aViewDef) = 0;
+	virtual void GroupAddAndRemove 		 (CContactGroup& aGrp, TContactItemId addId, TContactItemId remId) = 0;
+	virtual TContactItemId CreateL 		 (CContactItem& cntItem)   = 0;
+	virtual void UpdateL           		 (CContactItem& cntItem)   = 0;
+	virtual void DeleteL           		 (TContactItemId id)       = 0;
+	virtual CContactGroup* CreateGroupLC (const TDesC& aGroupLabel)= 0;
+	virtual CContactItem* CreateContactCardTemplateLC (const TDesC& aGroupLabel)= 0;
+	virtual const TDesC& TesterType		 () 					   = 0;
+	virtual const CContactTemplate&  GetSysTemplate () 			   = 0;
+	virtual void CompactL() = 0;
+	virtual TBool CompressRequired() = 0;
+	virtual TBool IsDamaged() const = 0;
+	virtual TInt FileSize() const = 0;
+	virtual TInt WastedSpaceInBytes() const = 0;
+	virtual TBool ContactDatabaseExistsL(const TDesC& aFileName) = 0;
+	virtual TBool DefaultContactDatabaseExistsL() = 0;	
+	virtual void DeleteDefaultFileL() = 0;
+	virtual void GetDefaultNameL(TDes &aDes) = 0;
+	virtual TBool DatabaseDrive(TDriveUnit& aDriveUnit) = 0;
+	virtual CDesCArray* ListDatabasesL(TDriveUnit& aDriveUnit) = 0;
+	virtual void SetOwnCard(TContactItemId id) = 0;
+	
+	//Reads a contacts from the database and merges it with 
+	//the template, so the contact contains all the fields, including empty fields
+	virtual CContactItem* ReadLC(TContactItemId id, const CContactItemViewDef& aViewDef) = 0;
+	
+
+protected:
+
+	TInt iDumpCounter;
+
+	};
+	
+
+
+
+
+// Contact Test Implementation
+// Tests for the original contacts model.
+class CCntTestImpl  : public CCntTestImplementor  // Derived from CBase - Zero Initialisation
+	{
+public:
+
+	static CCntTestImpl* NewLC();
+	virtual ~CCntTestImpl();
+
+	void OpenDatabaseL(const TDesC& aFilename); 
+	void CreateDatabaseL(const TDesC& aFilename, TBool aOwerwrite = EFalse); 
+	void CloseDatabase(); 
+
+	//Overloaded Virtual methods
+	CContactItem* ReadMinimalLC(TContactItemId id);
+	CContactItem* OpenLC(TContactItemId id, const CContactItemViewDef& aViewDef);
+	void GroupAddAndRemove(CContactGroup& aGrp, TContactItemId addId, TContactItemId remId);
+	TContactItemId CreateL(CContactItem& cntItem);
+	void UpdateL(CContactItem& cntItem);
+	void DeleteL(TContactItemId id);
+	CContactGroup* CreateGroupLC(const TDesC& aGroupLabel);	
+	CContactItem* CreateContactCardTemplateLC (const TDesC& aGroupLabel);
+	const TDesC& TesterType() { return nsCntTestImpl::KCnt;};
+
+	CContactItem* ReadLC(TContactItemId id, const CContactItemViewDef& aViewDef);
+	
+	const CContactTemplate&  GetSysTemplate ();
+	void CompactL();
+	TBool CompressRequired();
+	TBool IsDamaged() const;
+	TBool DefaultContactDatabaseExistsL();
+	TBool ContactDatabaseExistsL(const TDesC& aFileName);
+	TInt FileSize() const;
+	TInt WastedSpaceInBytes() const;
+	void DeleteDefaultFileL();
+	void GetDefaultNameL(TDes &aDes);
+	TBool DatabaseDrive(TDriveUnit& aDriveUnit);
+	CDesCArray* ListDatabasesL(TDriveUnit& aDriveUnit);
+	void SetOwnCard(TContactItemId id);
+
+private:
+	CContactDatabase* iDatabase;
+	CContactTemplate* iGoldenTemplate;
+	};
+
+
+
+
+
+
+
+// Persistence layer Test Implementation
+// Tests the Persistence layer contacts model.
+class CPlTestImpl  : public CCntTestImplementor // Derived from CBase - Zero Initialisation
+	{
+public:
+
+	static CPlTestImpl* NewLC();
+	~CPlTestImpl();
+
+	void OpenDatabaseL(const TDesC& aFilename); 
+	void CreateDatabaseL(const TDesC& aFilename, TBool aOwerwrite = EFalse); 
+	void CloseDatabase(); 
+
+	// Virtual Methods
+	CContactItem* ReadMinimalLC(TContactItemId id);
+	CContactItem* OpenLC(TContactItemId id, const CContactItemViewDef& aViewDef);
+	void GroupAddAndRemove(CContactGroup& aGrp, TContactItemId addId, TContactItemId remId);
+	TContactItemId CreateL(CContactItem& cntItem);
+	void UpdateL(CContactItem& cntItem);
+	void DeleteL(TContactItemId id);
+	CContactGroup* CreateGroupLC(const TDesC& aGroupLabel);	
+	CContactItem* CreateContactCardTemplateLC (const TDesC& aGroupLabel);	
+	const TDesC& TesterType() {return nsCntTestImpl::KPl;};
+	CContactItem* ReadLC(TContactItemId id, const CContactItemViewDef& aViewDef) ;
+
+	const CContactTemplate&  GetSysTemplate ();
+	void CompactL();
+	TBool CompressRequired();
+	TBool IsDamaged() const;
+	TBool DefaultContactDatabaseExistsL();
+	TBool ContactDatabaseExistsL(const TDesC& aFileName);
+	TInt FileSize() const;
+	TInt WastedSpaceInBytes() const;
+	void DeleteDefaultFileL();
+	void GetDefaultNameL(TDes &aDes);
+	TBool DatabaseDrive(TDriveUnit& aDriveUnit);
+	CDesCArray* ListDatabasesL(TDriveUnit& aDriveUnit);
+	void SetOwnCard(TContactItemId id);
+
+private:
+	void AddLabelField(CContactItem& aItem);
+
+private:
+	CPersistenceLayer* iPersistLayer;
+	RFs iFs;
+	};
+
+	
+	
+	
+// Persistence layer Test Implementation
+// Tests the Persistence layer contacts model.
+class CClientSvrImpl : public CCntTestImplementor // Derived from CBase - Zero Initialisation
+	{
+public:
+
+	static CClientSvrImpl* NewLC();
+	~CClientSvrImpl();
+
+	void OpenDatabaseL(const TDesC& aFilename); 
+	void CreateDatabaseL(const TDesC& aFilename, TBool aOwerwrite = EFalse); 
+	void CloseDatabase(); 
+	
+	// Virtual Methods
+	CContactItem* ReadMinimalLC(TContactItemId id);
+	CContactItem* OpenLC(TContactItemId id, const CContactItemViewDef& aViewDef);
+	void GroupAddAndRemove(CContactGroup& aGrp, TContactItemId addId, TContactItemId remId);
+	TContactItemId CreateL(CContactItem& cntItem);
+	void UpdateL(CContactItem& cntItem);
+	void DeleteL(TContactItemId id);
+	CContactGroup* CreateGroupLC(const TDesC& aGroupLabel);
+	CContactItem* CreateContactCardTemplateLC (const TDesC& aGroupLabel);
+	const TDesC& TesterType() {return nsCntTestImpl::KPl;};
+	CContactItem* ReadLC(TContactItemId id, const CContactItemViewDef& aViewDef) ;
+
+	const CContactTemplate&  GetSysTemplate ();
+	void CompactL();
+	TBool CompressRequired();
+	TBool IsDamaged() const;
+	TBool DefaultContactDatabaseExistsL();
+	TBool ContactDatabaseExistsL(const TDesC& aFileName);
+	TInt FileSize() const;
+	TInt WastedSpaceInBytes() const;
+	void DeleteDefaultFileL();
+	void GetDefaultNameL(TDes &aDes);
+	TBool DatabaseDrive(TDriveUnit& aDriveUnit);
+	CDesCArray* ListDatabasesL(TDriveUnit& aDriveUnit);
+	void SetOwnCard(TContactItemId id);
+
+private:
+	CContactDatabase* iCntDatabase;
+	CContactTemplate* iGoldenTemplate; 
+	};	
+#endif //__T_CNTTESTIMPLEMENTOR_H__