--- /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__