|
1 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
2 // All rights reserved. |
|
3 // This component and the accompanying materials are made available |
|
4 // under the terms of "Eclipse Public License v1.0" |
|
5 // which accompanies this distribution, and is available |
|
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
7 // |
|
8 // Initial Contributors: |
|
9 // Nokia Corporation - initial contribution. |
|
10 // |
|
11 // Contributors: |
|
12 // |
|
13 // Description: |
|
14 // This is the base class/interface for a set of contact model tests. |
|
15 // It is based on the bridge pattern. |
|
16 // |
|
17 // |
|
18 |
|
19 #ifndef __T_CNTTESTIMPLEMENTOR_H__ |
|
20 #define __T_CNTTESTIMPLEMENTOR_H__ |
|
21 |
|
22 #include "persistencelayer.h" |
|
23 #include <cntdb.h> |
|
24 #include "T_CntTestImplDefs.h" |
|
25 |
|
26 #include <cntitem.h> |
|
27 |
|
28 |
|
29 class CCntTestImplementor : public CBase |
|
30 { |
|
31 public: |
|
32 |
|
33 |
|
34 virtual ~CCntTestImplementor() {}; |
|
35 |
|
36 void PrintCntForViewL(const TDesC& aFileName, const CContactItemViewDef& aView); |
|
37 void DumpContactL (const CContactItem& aItem, const TDesC& aLabel); |
|
38 |
|
39 virtual void OpenDatabaseL(const TDesC& aFilename) = 0; |
|
40 virtual void CreateDatabaseL(const TDesC& aFilename, TBool aOwerwrite = EFalse) = 0; |
|
41 virtual void CloseDatabase() = 0; |
|
42 |
|
43 |
|
44 void ConstructL(); |
|
45 |
|
46 // Virtual methods |
|
47 virtual CContactItem* ReadMinimalLC (TContactItemId id) = 0; |
|
48 virtual CContactItem* OpenLC (TContactItemId id, const CContactItemViewDef& aViewDef) = 0; |
|
49 virtual void GroupAddAndRemove (CContactGroup& aGrp, TContactItemId addId, TContactItemId remId) = 0; |
|
50 virtual TContactItemId CreateL (CContactItem& cntItem) = 0; |
|
51 virtual void UpdateL (CContactItem& cntItem) = 0; |
|
52 virtual void DeleteL (TContactItemId id) = 0; |
|
53 virtual CContactGroup* CreateGroupLC (const TDesC& aGroupLabel)= 0; |
|
54 virtual CContactItem* CreateContactCardTemplateLC (const TDesC& aGroupLabel)= 0; |
|
55 virtual const TDesC& TesterType () = 0; |
|
56 virtual const CContactTemplate& GetSysTemplate () = 0; |
|
57 virtual void CompactL() = 0; |
|
58 virtual TBool CompressRequired() = 0; |
|
59 virtual TBool IsDamaged() const = 0; |
|
60 virtual TInt FileSize() const = 0; |
|
61 virtual TInt WastedSpaceInBytes() const = 0; |
|
62 virtual TBool ContactDatabaseExistsL(const TDesC& aFileName) = 0; |
|
63 virtual TBool DefaultContactDatabaseExistsL() = 0; |
|
64 virtual void DeleteDefaultFileL() = 0; |
|
65 virtual void GetDefaultNameL(TDes &aDes) = 0; |
|
66 virtual TBool DatabaseDrive(TDriveUnit& aDriveUnit) = 0; |
|
67 virtual CDesCArray* ListDatabasesL(TDriveUnit& aDriveUnit) = 0; |
|
68 virtual void SetOwnCard(TContactItemId id) = 0; |
|
69 |
|
70 //Reads a contacts from the database and merges it with |
|
71 //the template, so the contact contains all the fields, including empty fields |
|
72 virtual CContactItem* ReadLC(TContactItemId id, const CContactItemViewDef& aViewDef) = 0; |
|
73 |
|
74 |
|
75 protected: |
|
76 |
|
77 TInt iDumpCounter; |
|
78 |
|
79 }; |
|
80 |
|
81 |
|
82 |
|
83 |
|
84 |
|
85 // Contact Test Implementation |
|
86 // Tests for the original contacts model. |
|
87 class CCntTestImpl : public CCntTestImplementor // Derived from CBase - Zero Initialisation |
|
88 { |
|
89 public: |
|
90 |
|
91 static CCntTestImpl* NewLC(); |
|
92 virtual ~CCntTestImpl(); |
|
93 |
|
94 void OpenDatabaseL(const TDesC& aFilename); |
|
95 void CreateDatabaseL(const TDesC& aFilename, TBool aOwerwrite = EFalse); |
|
96 void CloseDatabase(); |
|
97 |
|
98 //Overloaded Virtual methods |
|
99 CContactItem* ReadMinimalLC(TContactItemId id); |
|
100 CContactItem* OpenLC(TContactItemId id, const CContactItemViewDef& aViewDef); |
|
101 void GroupAddAndRemove(CContactGroup& aGrp, TContactItemId addId, TContactItemId remId); |
|
102 TContactItemId CreateL(CContactItem& cntItem); |
|
103 void UpdateL(CContactItem& cntItem); |
|
104 void DeleteL(TContactItemId id); |
|
105 CContactGroup* CreateGroupLC(const TDesC& aGroupLabel); |
|
106 CContactItem* CreateContactCardTemplateLC (const TDesC& aGroupLabel); |
|
107 const TDesC& TesterType() { return nsCntTestImpl::KCnt;}; |
|
108 |
|
109 CContactItem* ReadLC(TContactItemId id, const CContactItemViewDef& aViewDef); |
|
110 |
|
111 const CContactTemplate& GetSysTemplate (); |
|
112 void CompactL(); |
|
113 TBool CompressRequired(); |
|
114 TBool IsDamaged() const; |
|
115 TBool DefaultContactDatabaseExistsL(); |
|
116 TBool ContactDatabaseExistsL(const TDesC& aFileName); |
|
117 TInt FileSize() const; |
|
118 TInt WastedSpaceInBytes() const; |
|
119 void DeleteDefaultFileL(); |
|
120 void GetDefaultNameL(TDes &aDes); |
|
121 TBool DatabaseDrive(TDriveUnit& aDriveUnit); |
|
122 CDesCArray* ListDatabasesL(TDriveUnit& aDriveUnit); |
|
123 void SetOwnCard(TContactItemId id); |
|
124 |
|
125 private: |
|
126 CContactDatabase* iDatabase; |
|
127 CContactTemplate* iGoldenTemplate; |
|
128 }; |
|
129 |
|
130 |
|
131 |
|
132 |
|
133 |
|
134 |
|
135 |
|
136 // Persistence layer Test Implementation |
|
137 // Tests the Persistence layer contacts model. |
|
138 class CPlTestImpl : public CCntTestImplementor // Derived from CBase - Zero Initialisation |
|
139 { |
|
140 public: |
|
141 |
|
142 static CPlTestImpl* NewLC(); |
|
143 ~CPlTestImpl(); |
|
144 |
|
145 void OpenDatabaseL(const TDesC& aFilename); |
|
146 void CreateDatabaseL(const TDesC& aFilename, TBool aOwerwrite = EFalse); |
|
147 void CloseDatabase(); |
|
148 |
|
149 // Virtual Methods |
|
150 CContactItem* ReadMinimalLC(TContactItemId id); |
|
151 CContactItem* OpenLC(TContactItemId id, const CContactItemViewDef& aViewDef); |
|
152 void GroupAddAndRemove(CContactGroup& aGrp, TContactItemId addId, TContactItemId remId); |
|
153 TContactItemId CreateL(CContactItem& cntItem); |
|
154 void UpdateL(CContactItem& cntItem); |
|
155 void DeleteL(TContactItemId id); |
|
156 CContactGroup* CreateGroupLC(const TDesC& aGroupLabel); |
|
157 CContactItem* CreateContactCardTemplateLC (const TDesC& aGroupLabel); |
|
158 const TDesC& TesterType() {return nsCntTestImpl::KPl;}; |
|
159 CContactItem* ReadLC(TContactItemId id, const CContactItemViewDef& aViewDef) ; |
|
160 |
|
161 const CContactTemplate& GetSysTemplate (); |
|
162 void CompactL(); |
|
163 TBool CompressRequired(); |
|
164 TBool IsDamaged() const; |
|
165 TBool DefaultContactDatabaseExistsL(); |
|
166 TBool ContactDatabaseExistsL(const TDesC& aFileName); |
|
167 TInt FileSize() const; |
|
168 TInt WastedSpaceInBytes() const; |
|
169 void DeleteDefaultFileL(); |
|
170 void GetDefaultNameL(TDes &aDes); |
|
171 TBool DatabaseDrive(TDriveUnit& aDriveUnit); |
|
172 CDesCArray* ListDatabasesL(TDriveUnit& aDriveUnit); |
|
173 void SetOwnCard(TContactItemId id); |
|
174 |
|
175 private: |
|
176 void AddLabelField(CContactItem& aItem); |
|
177 |
|
178 private: |
|
179 CPersistenceLayer* iPersistLayer; |
|
180 RFs iFs; |
|
181 }; |
|
182 |
|
183 |
|
184 |
|
185 |
|
186 // Persistence layer Test Implementation |
|
187 // Tests the Persistence layer contacts model. |
|
188 class CClientSvrImpl : public CCntTestImplementor // Derived from CBase - Zero Initialisation |
|
189 { |
|
190 public: |
|
191 |
|
192 static CClientSvrImpl* NewLC(); |
|
193 ~CClientSvrImpl(); |
|
194 |
|
195 void OpenDatabaseL(const TDesC& aFilename); |
|
196 void CreateDatabaseL(const TDesC& aFilename, TBool aOwerwrite = EFalse); |
|
197 void CloseDatabase(); |
|
198 |
|
199 // Virtual Methods |
|
200 CContactItem* ReadMinimalLC(TContactItemId id); |
|
201 CContactItem* OpenLC(TContactItemId id, const CContactItemViewDef& aViewDef); |
|
202 void GroupAddAndRemove(CContactGroup& aGrp, TContactItemId addId, TContactItemId remId); |
|
203 TContactItemId CreateL(CContactItem& cntItem); |
|
204 void UpdateL(CContactItem& cntItem); |
|
205 void DeleteL(TContactItemId id); |
|
206 CContactGroup* CreateGroupLC(const TDesC& aGroupLabel); |
|
207 CContactItem* CreateContactCardTemplateLC (const TDesC& aGroupLabel); |
|
208 const TDesC& TesterType() {return nsCntTestImpl::KPl;}; |
|
209 CContactItem* ReadLC(TContactItemId id, const CContactItemViewDef& aViewDef) ; |
|
210 |
|
211 const CContactTemplate& GetSysTemplate (); |
|
212 void CompactL(); |
|
213 TBool CompressRequired(); |
|
214 TBool IsDamaged() const; |
|
215 TBool DefaultContactDatabaseExistsL(); |
|
216 TBool ContactDatabaseExistsL(const TDesC& aFileName); |
|
217 TInt FileSize() const; |
|
218 TInt WastedSpaceInBytes() const; |
|
219 void DeleteDefaultFileL(); |
|
220 void GetDefaultNameL(TDes &aDes); |
|
221 TBool DatabaseDrive(TDriveUnit& aDriveUnit); |
|
222 CDesCArray* ListDatabasesL(TDriveUnit& aDriveUnit); |
|
223 void SetOwnCard(TContactItemId id); |
|
224 |
|
225 private: |
|
226 CContactDatabase* iCntDatabase; |
|
227 CContactTemplate* iGoldenTemplate; |
|
228 }; |
|
229 #endif //__T_CNTTESTIMPLEMENTOR_H__ |