66 mCntSqlSearch = 0; |
67 mCntSqlSearch = 0; |
67 |
68 |
68 } |
69 } |
69 void UT_CntSqlSearch::testPredictiveSearch() |
70 void UT_CntSqlSearch::testPredictiveSearch() |
70 { |
71 { |
71 QString pattern = QString("202"); |
72 QString pattern = QString("209"); |
72 QString result; |
73 QString result; |
73 QString reference("SELECT contact_id FROM view2 WHERE (first_name_as_number LIKE % 202%) OR (last_name_as_number LIKE % 202%) OR (((first_name_as_number LIKE % 2%) OR (last_name_as_number LIKE % 2%)) AND ((first_name_as_number LIKE % 2%) OR (last_name_as_number LIKE % 2%))) ORDER BY first_name_as_number ASC;"); |
74 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"); |
74 result = mCntSqlSearch->CreatePredictiveSearch(pattern); |
75 /* result = mCntSqlSearch->CreatePredictiveSearch(pattern); |
75 QVERIFY( !result.compare( reference) ); |
76 QVERIFY( !result.compare( reference) );*/ |
76 |
77 |
77 pattern = QString("3"); |
78 pattern = QString("3"); |
78 reference = QString("SELECT * FROM view3 WHERE (first_name_as_number LIKE % 3%) OR (last_name_as_number LIKE % 3%) ORDER BY first_name_as_number ASC;"); |
79 reference = QString("SELECT contact_id FROM view3 ORDER BY first_name_as_number ASC;"); |
79 result = mCntSqlSearch->CreatePredictiveSearch(pattern); |
80 result = mCntSqlSearch->CreatePredictiveSearch(pattern); |
80 QVERIFY( !result.compare( reference) ); |
81 QVERIFY( !result.compare( reference) ); |
81 |
82 |
82 pattern = QString("33"); |
83 pattern = QString("33"); |
83 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;"); |
84 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;"); |
171 } |
172 } |
172 |
173 |
173 void UT_CntSqlSearch::testGetNumber() |
174 void UT_CntSqlSearch::testGetNumber() |
174 { |
175 { |
175 QStringList numbers; |
176 QStringList numbers; |
176 |
177 |
177 QString pattern("102"); |
178 QString pattern("102"); |
178 numbers = mCntSqlSearch->GetNumber(pattern); |
179 numbers = mCntSqlSearch->GetNumber(pattern); |
179 QCOMPARE(numbers.at(0), QString("1")); |
180 QCOMPARE(numbers.at(0), QString("1")); |
180 QCOMPARE(numbers.at(1), QString("2")); |
181 QCOMPARE(numbers.at(1), QString("2")); |
181 |
182 |
182 pattern = QString("12"); |
183 pattern = QString("12"); |
183 numbers = mCntSqlSearch->GetNumber(pattern); |
184 numbers = mCntSqlSearch->GetNumber(pattern); |
184 QCOMPARE(numbers.at(0), QString("12")); |
185 QCOMPARE(numbers.at(0), QString("12")); |
185 |
186 |
186 pattern = QString("01"); |
187 pattern = QString("01"); |
187 numbers = mCntSqlSearch->GetNumber(pattern); |
188 numbers = mCntSqlSearch->GetNumber(pattern); |
188 QCOMPARE(numbers.at(0), QString("1")); |
189 QCOMPARE(numbers.at(0), QString("1")); |
189 |
190 |
190 pattern = QString("012"); |
191 pattern = QString("012"); |
191 numbers = mCntSqlSearch->GetNumber(pattern); |
192 numbers = mCntSqlSearch->GetNumber(pattern); |
192 QCOMPARE(numbers.at(0), QString("12")); |
193 QCOMPARE(numbers.at(0), QString("12")); |
193 |
194 |
194 pattern = QString("00012"); |
195 pattern = QString("00012"); |
195 numbers = mCntSqlSearch->GetNumber(pattern); |
196 numbers = mCntSqlSearch->GetNumber(pattern); |
196 QCOMPARE(numbers.at(0), QString("12")); |
197 QCOMPARE(numbers.at(0), QString("12")); |
197 |
198 |
198 pattern = QString("00012000"); |
199 pattern = QString("00012000"); |
199 numbers = mCntSqlSearch->GetNumber(pattern); |
200 numbers = mCntSqlSearch->GetNumber(pattern); |
200 QCOMPARE(numbers.at(0), QString("12")); |
201 QCOMPARE(numbers.at(0), QString("12")); |
201 |
202 |
202 pattern = QString("000100002"); |
203 pattern = QString("000100002"); |
203 numbers = mCntSqlSearch->GetNumber(pattern); |
204 numbers = mCntSqlSearch->GetNumber(pattern); |
204 QCOMPARE(numbers.at(0), QString("1")); |
205 QCOMPARE(numbers.at(0), QString("1")); |
205 QCOMPARE(numbers.at(1), QString("2")); |
206 QCOMPARE(numbers.at(1), QString("2")); |
206 |
207 |
207 pattern = QString("000100002000"); |
208 pattern = QString("000100002000"); |
208 numbers = mCntSqlSearch->GetNumber(pattern); |
209 numbers = mCntSqlSearch->GetNumber(pattern); |
209 QCOMPARE(numbers.at(0), QString("1")); |
210 QCOMPARE(numbers.at(0), QString("1")); |
210 QCOMPARE(numbers.at(1), QString("2")); |
211 QCOMPARE(numbers.at(1), QString("2")); |
211 } |
212 } |
212 |
213 |
213 void UT_CntSqlSearch::testCreateSubStringSearch() |
214 void UT_CntSqlSearch::testCreateSubStringSearch() |
214 { |
215 { |
215 QString pattern = QString("102"); |
216 QString pattern = QString("102"); |
216 QString result; |
217 QString result; |
217 QString reference("(first_name_as_number LIKE % 102%) OR (last_name_as_number LIKE % 102%) OR (((first_name_as_number LIKE % 1%) OR (last_name_as_number LIKE % 1%)) AND ((first_name_as_number LIKE % 2%) OR (last_name_as_number LIKE % 2%)))"); |
218 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%))"); |
218 result = mCntSqlSearch->CreateSubStringSearch(pattern); |
219 result = mCntSqlSearch->CreateSubStringSearch(pattern); |
219 QVERIFY( !result.compare( reference) ); |
220 QVERIFY( !result.compare( reference) ); |
220 |
221 |
221 pattern = QString("00102"); |
222 pattern = QString("00102"); |
222 reference = QString("(first_name_as_number LIKE % 00102%) OR (last_name_as_number LIKE % 00102%) OR (((first_name_as_number LIKE % 1%) OR (last_name_as_number LIKE % 1%)) AND ((first_name_as_number LIKE % 2%) OR (last_name_as_number LIKE % 2%)))"); |
223 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%))"); |
223 result = mCntSqlSearch->CreateSubStringSearch(pattern); |
224 result = mCntSqlSearch->CreateSubStringSearch(pattern); |
224 QVERIFY( !result.compare( reference) ); |
225 QVERIFY( !result.compare( reference) ); |
225 |
226 |
226 pattern = QString("0010200"); |
227 pattern = QString("0010200"); |
227 reference = QString("(first_name_as_number LIKE % 0010200%) OR (last_name_as_number LIKE % 0010200%) OR (((first_name_as_number LIKE % 1%) OR (last_name_as_number LIKE % 1%)) AND ((first_name_as_number LIKE % 2%) OR (last_name_as_number LIKE % 2%)))"); |
228 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%))"); |
228 result = mCntSqlSearch->CreateSubStringSearch(pattern); |
229 result = mCntSqlSearch->CreateSubStringSearch(pattern); |
229 QVERIFY( !result.compare( reference) ); |
230 QVERIFY( !result.compare( reference) ); |
230 |
231 |
231 pattern = QString("12"); |
232 pattern = QString("12"); |
232 reference = QString("(first_name_as_number LIKE % 12%) OR (last_name_as_number LIKE % 12%)"); |
233 reference = QString("(first_name_as_number LIKE % 12%) OR (last_name_as_number LIKE % 12%)"); |
244 QString numbers("102"); |
245 QString numbers("102"); |
245 |
246 |
246 QString result; |
247 QString result; |
247 result = mCntSqlSearch->CreateStringSearch(numbers); |
248 result = mCntSqlSearch->CreateStringSearch(numbers); |
248 QVERIFY( result == "(first_name_as_number LIKE % 102%) OR (last_name_as_number LIKE % 102%)" ); |
249 QVERIFY( result == "(first_name_as_number LIKE % 102%) OR (last_name_as_number LIKE % 102%)" ); |
249 |
250 |
250 numbers = QString("00012"); |
251 numbers = QString("00012"); |
251 result = mCntSqlSearch->CreateStringSearch(numbers); |
252 result = mCntSqlSearch->CreateStringSearch(numbers); |
252 QVERIFY( result == "(first_name_as_number LIKE % 00012%) OR (last_name_as_number LIKE % 00012%)" ); |
253 QVERIFY( result == "(first_name_as_number LIKE % 00012%) OR (last_name_as_number LIKE % 00012%)" ); |
253 |
254 |
254 numbers = QString("000120012"); |
255 numbers = QString("000120012"); |
255 result = mCntSqlSearch->CreateStringSearch(numbers); |
256 result = mCntSqlSearch->CreateStringSearch(numbers); |
256 QVERIFY( result == "(first_name_as_number LIKE % 000120012%) OR (last_name_as_number LIKE % 000120012%)" ); |
257 QVERIFY( result == "(first_name_as_number LIKE % 000120012%) OR (last_name_as_number LIKE % 000120012%)" ); |
257 |
258 |
258 numbers = QString("12"); |
259 numbers = QString("12"); |
260 QVERIFY( result == "(first_name_as_number LIKE % 12%) OR (last_name_as_number LIKE % 12%)" ); |
261 QVERIFY( result == "(first_name_as_number LIKE % 12%) OR (last_name_as_number LIKE % 12%)" ); |
261 |
262 |
262 numbers = QString("00012001200"); |
263 numbers = QString("00012001200"); |
263 result = mCntSqlSearch->CreateStringSearch(numbers); |
264 result = mCntSqlSearch->CreateStringSearch(numbers); |
264 QVERIFY( result == "(first_name_as_number LIKE % 00012001200%) OR (last_name_as_number LIKE % 00012001200%)" ); |
265 QVERIFY( result == "(first_name_as_number LIKE % 00012001200%) OR (last_name_as_number LIKE % 00012001200%)" ); |
265 |
|
266 } |
266 } |
267 |
267 |
268 void UT_CntSqlSearch::testCreateSpaceStringSearch() |
268 void UT_CntSqlSearch::testCreateSpaceStringSearch() |
269 { |
269 { |
270 QStringList numbers; |
270 QStringList numbers; |
271 numbers << "1"; |
271 numbers << "1"; |
272 QString result; |
272 QString result; |
273 result = mCntSqlSearch->CreateSpaceStringSearch(numbers); |
273 result = mCntSqlSearch->CreateSpaceStringSearch(numbers); |
274 QVERIFY( result == " OR ((first_name_as_number LIKE % 1%) OR (last_name_as_number LIKE % 1%))" ); |
274 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%))" ); |
275 |
275 |
276 numbers.clear(); |
276 numbers.clear(); |
277 numbers << "1" << "2"; |
277 numbers << "1" << "2"; |
278 QString reference(" OR (((first_name_as_number LIKE % 1%) OR (last_name_as_number LIKE % 1%)) AND ((first_name_as_number LIKE % 2%) OR (last_name_as_number LIKE % 2%)))"); |
278 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%))"); |
279 result = mCntSqlSearch->CreateSpaceStringSearch(numbers); |
279 result = mCntSqlSearch->CreateSpaceStringSearch(numbers); |
280 QVERIFY( !result.compare( reference) ); |
280 QVERIFY( !result.compare( reference) ); |
281 |
281 |
282 numbers.clear(); |
282 numbers.clear(); |
283 numbers << "1" << "21"; |
283 numbers << "1" << "21"; |
284 reference = QString(" OR (((first_name_as_number LIKE % 1%) OR (last_name_as_number LIKE % 1%)) AND ((first_name_as_number LIKE % 21%) OR (last_name_as_number LIKE % 21%)))"); |
284 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%))"); |
285 result = mCntSqlSearch->CreateSpaceStringSearch(numbers); |
285 result = mCntSqlSearch->CreateSpaceStringSearch(numbers); |
286 QVERIFY( !result.compare( reference)); |
286 QVERIFY( !result.compare( reference)); |
287 |
|
288 } |
287 } |
289 |
288 |
290 void UT_CntSqlSearch::testCreateSpaceString() |
289 void UT_CntSqlSearch::testCreateSpaceString() |
291 { |
290 { |
292 QString number("1"); |
291 QString pattern("1"); |
293 QString result; |
292 QString result; |
294 result = mCntSqlSearch->CreateSpaceString(number); |
293 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%))"); |
295 QVERIFY( result == QString("((first_name_as_number LIKE % 1%) OR (last_name_as_number LIKE % 1%))") ); |
294 result = mCntSqlSearch->CreateSpaceString(pattern); |
296 |
295 QVERIFY(!result.compare(reference)); |
297 } |
296 } |
298 |
297 |