1 /* |
|
2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * |
|
16 */ |
|
17 |
|
18 #include <QtTest/QtTest> |
|
19 #include <QStringList> |
|
20 |
|
21 #include "ut_cntsqlsearch.h" |
|
22 #include "cntsqlsearch.h" |
|
23 |
|
24 |
|
25 void UT_CntSqlSearch::initTestCase() |
|
26 { |
|
27 } |
|
28 |
|
29 void UT_CntSqlSearch::cleanupTestCase() |
|
30 { |
|
31 } |
|
32 |
|
33 |
|
34 void UT_CntSqlSearch::init() |
|
35 { |
|
36 mCntSqlSearch = new CntSqlSearch(); |
|
37 } |
|
38 |
|
39 void UT_CntSqlSearch::cleanup() |
|
40 { |
|
41 delete mCntSqlSearch; |
|
42 mCntSqlSearch = 0; |
|
43 |
|
44 } |
|
45 void UT_CntSqlSearch::testPredictiveSearch() |
|
46 { |
|
47 QString pattern = QString("209"); |
|
48 QString result; |
|
49 QString reference("SELECT contact_id FROM view2 WHERE (first_name_as_number LIKE % 209%) OR (last_name_as_number LIKE % 209%) OR (last_name_as_number LIKE % 2%) OR ((first_name_as_number LIKE % 2%) AND (first_name_as_number LIKE %_ 2%)) OR ((last_name_as_number LIKE % 9%) AND (last_name_as_number LIKE %_ 9%)) ORDER BY first_name_as_number ASC"); |
|
50 /* result = mCntSqlSearch->CreatePredictiveSearch(pattern); |
|
51 QVERIFY( !result.compare( reference) );*/ |
|
52 |
|
53 pattern = QString("3"); |
|
54 reference = QString("SELECT contact_id FROM view3 ORDER BY first_name_as_number ASC;"); |
|
55 result = mCntSqlSearch->CreatePredictiveSearch(pattern); |
|
56 QVERIFY( !result.compare( reference) ); |
|
57 |
|
58 pattern = QString("33"); |
|
59 reference = QString("SELECT contact_id FROM view3 WHERE (first_name_as_number LIKE % 33%) OR (last_name_as_number LIKE % 33%) ORDER BY first_name_as_number ASC;"); |
|
60 result = mCntSqlSearch->CreatePredictiveSearch(pattern); |
|
61 QVERIFY( !result.compare( reference) ); |
|
62 |
|
63 pattern = QString("001100"); |
|
64 reference = QString("SELECT contact_id FROM view0 WHERE (first_name_as_number LIKE % 001100%) OR (last_name_as_number LIKE % 001100%) ORDER BY first_name_as_number ASC;"); |
|
65 result = mCntSqlSearch->CreatePredictiveSearch(pattern); |
|
66 QVERIFY( !result.compare( reference) ); |
|
67 |
|
68 pattern = QString("1"); |
|
69 reference = QString("SELECT contact_id FROM view1 ORDER BY first_name_as_number ASC;"); |
|
70 result = mCntSqlSearch->CreatePredictiveSearch(pattern); |
|
71 QVERIFY( !result.compare( reference) ); pattern = QString("1"); |
|
72 } |
|
73 |
|
74 void UT_CntSqlSearch::testSelectTableView() |
|
75 { |
|
76 QString pattern = QString("0"); |
|
77 QString reference = QString("view0");; |
|
78 QString result = mCntSqlSearch->SelectTableView(pattern); |
|
79 QVERIFY( !result.compare( reference) ); |
|
80 |
|
81 pattern = QString("1"); |
|
82 reference = QString("view1");; |
|
83 result = mCntSqlSearch->SelectTableView(pattern); |
|
84 QVERIFY( !result.compare( reference) ); |
|
85 |
|
86 pattern = QString("2"); |
|
87 reference = QString("view2");; |
|
88 result = mCntSqlSearch->SelectTableView(pattern); |
|
89 QVERIFY( !result.compare( reference) ); |
|
90 |
|
91 pattern = QString("3"); |
|
92 reference = QString("view3");; |
|
93 result = mCntSqlSearch->SelectTableView(pattern); |
|
94 QVERIFY( !result.compare( reference) ); |
|
95 |
|
96 pattern = QString("4"); |
|
97 reference = QString("view4");; |
|
98 result = mCntSqlSearch->SelectTableView(pattern); |
|
99 QVERIFY( !result.compare( reference) ); |
|
100 |
|
101 pattern = QString("5"); |
|
102 reference = QString("view5");; |
|
103 result = mCntSqlSearch->SelectTableView(pattern); |
|
104 QVERIFY( !result.compare( reference) ); |
|
105 |
|
106 pattern = QString("6"); |
|
107 reference = QString("view6");; |
|
108 result = mCntSqlSearch->SelectTableView(pattern); |
|
109 QVERIFY( !result.compare( reference) ); |
|
110 |
|
111 pattern = QString("7"); |
|
112 reference = QString("view7");; |
|
113 result = mCntSqlSearch->SelectTableView(pattern); |
|
114 QVERIFY( !result.compare( reference) ); |
|
115 |
|
116 pattern = QString("8"); |
|
117 reference = QString("view8");; |
|
118 result = mCntSqlSearch->SelectTableView(pattern); |
|
119 QVERIFY( !result.compare( reference) ); |
|
120 |
|
121 pattern = QString("9"); |
|
122 reference = QString("view9");; |
|
123 result = mCntSqlSearch->SelectTableView(pattern); |
|
124 QVERIFY( !result.compare( reference) ); |
|
125 } |
|
126 |
|
127 void UT_CntSqlSearch::testIsSubStringSearch() |
|
128 { |
|
129 QString pattern("102"); |
|
130 QCOMPARE(mCntSqlSearch->IsSubStringSearch(pattern), true); |
|
131 pattern = QString("12"); |
|
132 QCOMPARE(mCntSqlSearch->IsSubStringSearch(pattern), false); |
|
133 pattern = QString("1"); |
|
134 QCOMPARE(mCntSqlSearch->IsSubStringSearch(pattern), false); |
|
135 pattern = QString("01"); |
|
136 QCOMPARE(mCntSqlSearch->IsSubStringSearch(pattern), true); |
|
137 pattern = QString("012"); |
|
138 QCOMPARE(mCntSqlSearch->IsSubStringSearch(pattern), true); |
|
139 pattern = QString("00012"); |
|
140 QCOMPARE(mCntSqlSearch->IsSubStringSearch(pattern), true); |
|
141 pattern = QString("000100002"); |
|
142 QCOMPARE(mCntSqlSearch->IsSubStringSearch(pattern), true); |
|
143 pattern = QString("000"); |
|
144 QCOMPARE(mCntSqlSearch->IsSubStringSearch(pattern), false); |
|
145 pattern = QString("0"); |
|
146 QCOMPARE(mCntSqlSearch->IsSubStringSearch(pattern), false); |
|
147 } |
|
148 |
|
149 void UT_CntSqlSearch::testGetNumber() |
|
150 { |
|
151 QStringList numbers; |
|
152 |
|
153 QString pattern("102"); |
|
154 numbers = mCntSqlSearch->GetNumber(pattern); |
|
155 QCOMPARE(numbers.at(0), QString("1")); |
|
156 QCOMPARE(numbers.at(1), QString("2")); |
|
157 |
|
158 pattern = QString("12"); |
|
159 numbers = mCntSqlSearch->GetNumber(pattern); |
|
160 QCOMPARE(numbers.at(0), QString("12")); |
|
161 |
|
162 pattern = QString("01"); |
|
163 numbers = mCntSqlSearch->GetNumber(pattern); |
|
164 QCOMPARE(numbers.at(0), QString("1")); |
|
165 |
|
166 pattern = QString("012"); |
|
167 numbers = mCntSqlSearch->GetNumber(pattern); |
|
168 QCOMPARE(numbers.at(0), QString("12")); |
|
169 |
|
170 pattern = QString("00012"); |
|
171 numbers = mCntSqlSearch->GetNumber(pattern); |
|
172 QCOMPARE(numbers.at(0), QString("12")); |
|
173 |
|
174 pattern = QString("00012000"); |
|
175 numbers = mCntSqlSearch->GetNumber(pattern); |
|
176 QCOMPARE(numbers.at(0), QString("12")); |
|
177 |
|
178 pattern = QString("000100002"); |
|
179 numbers = mCntSqlSearch->GetNumber(pattern); |
|
180 QCOMPARE(numbers.at(0), QString("1")); |
|
181 QCOMPARE(numbers.at(1), QString("2")); |
|
182 |
|
183 pattern = QString("000100002000"); |
|
184 numbers = mCntSqlSearch->GetNumber(pattern); |
|
185 QCOMPARE(numbers.at(0), QString("1")); |
|
186 QCOMPARE(numbers.at(1), QString("2")); |
|
187 } |
|
188 |
|
189 void UT_CntSqlSearch::testCreateSubStringSearch() |
|
190 { |
|
191 QString pattern = QString("102"); |
|
192 QString result; |
|
193 QString reference("(first_name_as_number LIKE % 102%) OR (last_name_as_number LIKE % 102%) OR ((first_name_as_number LIKE % 1%) AND (first_name_as_number LIKE %_ 1%)) OR ((last_name_as_number LIKE % 1%) AND (last_name_as_number LIKE %_ 1%)) OR ((first_name_as_number LIKE % 2%) AND (first_name_as_number LIKE %_ 2%)) OR ((last_name_as_number LIKE % 2%) AND (last_name_as_number LIKE %_ 2%))"); |
|
194 result = mCntSqlSearch->CreateSubStringSearch(pattern); |
|
195 QVERIFY( !result.compare( reference) ); |
|
196 |
|
197 pattern = QString("00102"); |
|
198 reference = QString("(first_name_as_number LIKE % 00102%) OR (last_name_as_number LIKE % 00102%) OR ((first_name_as_number LIKE % 1%) AND (first_name_as_number LIKE %_ 1%)) OR ((last_name_as_number LIKE % 1%) AND (last_name_as_number LIKE %_ 1%)) OR ((first_name_as_number LIKE % 2%) AND (first_name_as_number LIKE %_ 2%)) OR ((last_name_as_number LIKE % 2%) AND (last_name_as_number LIKE %_ 2%))"); |
|
199 result = mCntSqlSearch->CreateSubStringSearch(pattern); |
|
200 QVERIFY( !result.compare( reference) ); |
|
201 |
|
202 pattern = QString("0010200"); |
|
203 reference = QString("(first_name_as_number LIKE % 0010200%) OR (last_name_as_number LIKE % 0010200%) OR ((first_name_as_number LIKE % 1%) AND (first_name_as_number LIKE %_ 1%)) OR ((last_name_as_number LIKE % 1%) AND (last_name_as_number LIKE %_ 1%)) OR ((first_name_as_number LIKE % 2%) AND (first_name_as_number LIKE %_ 2%)) OR ((last_name_as_number LIKE % 2%) AND (last_name_as_number LIKE %_ 2%))"); |
|
204 result = mCntSqlSearch->CreateSubStringSearch(pattern); |
|
205 QVERIFY( !result.compare( reference) ); |
|
206 |
|
207 pattern = QString("12"); |
|
208 reference = QString("(first_name_as_number LIKE % 12%) OR (last_name_as_number LIKE % 12%)"); |
|
209 result = mCntSqlSearch->CreateSubStringSearch(pattern); |
|
210 QVERIFY( !result.compare( reference) ); |
|
211 |
|
212 pattern = QString("000"); |
|
213 reference = QString("(first_name_as_number LIKE % 000%) OR (last_name_as_number LIKE % 000%)"); |
|
214 result = mCntSqlSearch->CreateSubStringSearch(pattern); |
|
215 QVERIFY( !result.compare( reference) ); |
|
216 } |
|
217 |
|
218 void UT_CntSqlSearch::testCreateStringSearch() |
|
219 { |
|
220 QString numbers("102"); |
|
221 |
|
222 QString result; |
|
223 result = mCntSqlSearch->CreateStringSearch(numbers); |
|
224 QVERIFY( result == "(first_name_as_number LIKE % 102%) OR (last_name_as_number LIKE % 102%)" ); |
|
225 |
|
226 numbers = QString("00012"); |
|
227 result = mCntSqlSearch->CreateStringSearch(numbers); |
|
228 QVERIFY( result == "(first_name_as_number LIKE % 00012%) OR (last_name_as_number LIKE % 00012%)" ); |
|
229 |
|
230 numbers = QString("000120012"); |
|
231 result = mCntSqlSearch->CreateStringSearch(numbers); |
|
232 QVERIFY( result == "(first_name_as_number LIKE % 000120012%) OR (last_name_as_number LIKE % 000120012%)" ); |
|
233 |
|
234 numbers = QString("12"); |
|
235 result = mCntSqlSearch->CreateStringSearch(numbers); |
|
236 QVERIFY( result == "(first_name_as_number LIKE % 12%) OR (last_name_as_number LIKE % 12%)" ); |
|
237 |
|
238 numbers = QString("00012001200"); |
|
239 result = mCntSqlSearch->CreateStringSearch(numbers); |
|
240 QVERIFY( result == "(first_name_as_number LIKE % 00012001200%) OR (last_name_as_number LIKE % 00012001200%)" ); |
|
241 } |
|
242 |
|
243 void UT_CntSqlSearch::testCreateSpaceStringSearch() |
|
244 { |
|
245 QStringList numbers; |
|
246 numbers << "1"; |
|
247 QString result; |
|
248 result = mCntSqlSearch->CreateSpaceStringSearch(numbers); |
|
249 QVERIFY( result == " OR ((first_name_as_number LIKE % 1%) AND (first_name_as_number LIKE %_ 1%)) OR ((last_name_as_number LIKE % 1%) AND (last_name_as_number LIKE %_ 1%))" ); |
|
250 |
|
251 numbers.clear(); |
|
252 numbers << "1" << "2"; |
|
253 QString reference(" OR ((first_name_as_number LIKE % 1%) AND (first_name_as_number LIKE %_ 1%)) OR ((last_name_as_number LIKE % 1%) AND (last_name_as_number LIKE %_ 1%)) OR ((first_name_as_number LIKE % 2%) AND (first_name_as_number LIKE %_ 2%)) OR ((last_name_as_number LIKE % 2%) AND (last_name_as_number LIKE %_ 2%))"); |
|
254 result = mCntSqlSearch->CreateSpaceStringSearch(numbers); |
|
255 QVERIFY( !result.compare( reference) ); |
|
256 |
|
257 numbers.clear(); |
|
258 numbers << "1" << "21"; |
|
259 reference = QString(" OR ((first_name_as_number LIKE % 1%) AND (first_name_as_number LIKE %_ 1%)) OR ((last_name_as_number LIKE % 1%) AND (last_name_as_number LIKE %_ 1%)) OR ((first_name_as_number LIKE % 21%) AND (first_name_as_number LIKE %_ 21%)) OR ((last_name_as_number LIKE % 21%) AND (last_name_as_number LIKE %_ 21%))"); |
|
260 result = mCntSqlSearch->CreateSpaceStringSearch(numbers); |
|
261 QVERIFY( !result.compare( reference)); |
|
262 } |
|
263 |
|
264 void UT_CntSqlSearch::testCreateSpaceString() |
|
265 { |
|
266 QString pattern("1"); |
|
267 QString result; |
|
268 QString reference("((first_name_as_number LIKE % 1%) AND (first_name_as_number LIKE %_ 1%)) OR ((last_name_as_number LIKE % 1%) AND (last_name_as_number LIKE %_ 1%))"); |
|
269 result = mCntSqlSearch->CreateSpaceString(pattern); |
|
270 QVERIFY(!result.compare(reference)); |
|
271 } |
|
272 |
|
273 QTEST_MAIN(UT_CntSqlSearch) |
|