qtmobility/plugins/contacts/symbian/tsrc/ut_symbian/ut_cntsqlsearch.cpp
changeset 4 90517678cc4f
parent 1 2b40d63a9c3d
child 11 06b8e2af4411
equal deleted inserted replaced
1:2b40d63a9c3d 4:90517678cc4f
    37 **
    37 **
    38 ** $QT_END_LICENSE$
    38 ** $QT_END_LICENSE$
    39 **
    39 **
    40 ****************************************************************************/
    40 ****************************************************************************/
    41 
    41 
       
    42 
    42 #include <QtTest/QtTest>
    43 #include <QtTest/QtTest>
    43 #include <QStringList>
    44 #include <QStringList>
    44 
    45 
    45 #include "ut_cntsqlsearch.h"
    46 #include "ut_cntsqlsearch.h"
    46 #include "cntsqlsearch.h"
    47 #include "cntsqlsearch.h"
    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;");
    88     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;");
    89     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;");
    89     result = mCntSqlSearch->CreatePredictiveSearch(pattern);
    90     result = mCntSqlSearch->CreatePredictiveSearch(pattern);
    90     QVERIFY( !result.compare( reference) );
    91     QVERIFY( !result.compare( reference) );
    91 
    92 
    92     pattern = QString("1");
    93     pattern = QString("1");
    93     reference = QString("SELECT * FROM view1 WHERE (first_name_as_number LIKE % 1%) OR (last_name_as_number LIKE % 1%) ORDER BY first_name_as_number ASC;");
    94     reference = QString("SELECT contact_id FROM view1 ORDER BY first_name_as_number ASC;");
    94     result = mCntSqlSearch->CreatePredictiveSearch(pattern);
    95     result = mCntSqlSearch->CreatePredictiveSearch(pattern);
    95     QVERIFY( !result.compare( reference) ); pattern = QString("1");
    96     QVERIFY( !result.compare( reference) ); pattern = QString("1");
    96 }
    97 }
    97 
    98 
    98 void UT_CntSqlSearch::testSelectTableView()
    99 void UT_CntSqlSearch::testSelectTableView()
   147     result = mCntSqlSearch->SelectTableView(pattern);
   148     result = mCntSqlSearch->SelectTableView(pattern);
   148     QVERIFY( !result.compare( reference) );
   149     QVERIFY( !result.compare( reference) );
   149 }
   150 }
   150 
   151 
   151 void UT_CntSqlSearch::testIsSubStringSearch()
   152 void UT_CntSqlSearch::testIsSubStringSearch()
   152 {   
   153 {
   153     QString pattern("102");
   154     QString pattern("102");
   154     QCOMPARE(mCntSqlSearch->IsSubStringSearch(pattern), true);
   155     QCOMPARE(mCntSqlSearch->IsSubStringSearch(pattern), true);
   155     pattern = QString("12");
   156     pattern = QString("12");
   156     QCOMPARE(mCntSqlSearch->IsSubStringSearch(pattern), false);
   157     QCOMPARE(mCntSqlSearch->IsSubStringSearch(pattern), false);
   157     pattern = QString("1");
   158     pattern = QString("1");
   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