contentstorage/caclient/tsrc/t_caclient/src/t_caclient_getentries.cpp
changeset 117 c63ee96dbe5f
equal deleted inserted replaced
115:3ab5c078b490 117:c63ee96dbe5f
       
     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:  Main test class for hspluginmodel library.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #include "t_caclient.h"
       
    20 #include "caservice.h"
       
    21 #include "caquery.h"
       
    22 
       
    23 // ---------------------------------------------------------------------------
       
    24 // ---------------------------------------------------------------------------
       
    25 //
       
    26 void TestCaClient::TestGetEntry()
       
    27 {
       
    28     {
       
    29         CaEntry item;
       
    30         item.setText("testName");
       
    31         item.setAttribute("attrName1", "attrVal1");
       
    32         item.setEntryTypeName("test");
       
    33         item.setFlags(RemovableEntryFlag);
       
    34 
       
    35         CaIconDescription iconDescription;
       
    36         iconDescription.setFilename("iconFileName");
       
    37         iconDescription.setSkinId("iconSkinId");
       
    38         iconDescription.setApplicationId("268458321");
       
    39         item.setIconDescription(iconDescription);
       
    40 
       
    41         QSharedPointer<CaService> service = CaService::instance();
       
    42         QSharedPointer<CaEntry> resultItem = service->createEntry(item);
       
    43 
       
    44         QVERIFY(!resultItem.isNull());
       
    45         // entry from storage
       
    46         QSharedPointer<CaEntry> storageItem1 = service->getEntry(resultItem->id());
       
    47         QCOMPARE(service->lastError(), NoErrorCode);
       
    48         QVERIFY(storageItem1);
       
    49         QCOMPARE(storageItem1->role(), ItemEntryRole);
       
    50         QCOMPARE(QString("testName"),storageItem1->text());
       
    51         QCOMPARE(QString("test"),storageItem1->entryTypeName());
       
    52         QCOMPARE(QString("attrVal1"),storageItem1->attribute("attrName1"));
       
    53         QCOMPARE(item.flags(),storageItem1->flags());
       
    54         QCOMPARE(iconDescription.filename(),storageItem1->iconDescription().filename());
       
    55         QCOMPARE(iconDescription.skinId(),storageItem1->iconDescription().skinId());
       
    56         QCOMPARE(iconDescription.applicationId(),storageItem1->iconDescription().applicationId());
       
    57         QSharedPointer<CaEntry> storageItem2 = service->getEntry(9999);
       
    58         QVERIFY(service->lastError() !=  NoErrorCode);
       
    59         QVERIFY(!storageItem2);
       
    60 
       
    61         //Cleanup
       
    62         service->removeEntry(*resultItem);
       
    63 
       
    64     }
       
    65 }
       
    66 
       
    67 // ---------------------------------------------------------------------------
       
    68 // ---------------------------------------------------------------------------
       
    69 //
       
    70 void TestCaClient::TestGetEntriesByIds()
       
    71 {
       
    72     {
       
    73         CaEntry item;
       
    74         item.setText("testName1");
       
    75         item.setAttribute("attrName1", "attrVal1");
       
    76         item.setEntryTypeName("test");
       
    77         item.setFlags(RemovableEntryFlag);
       
    78 
       
    79         QSharedPointer<CaService> service = CaService::instance();
       
    80         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item);
       
    81         item.setText("testName2");
       
    82         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item);
       
    83         item.setText("testName3");
       
    84         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item);
       
    85         QVERIFY(!resultItem1.isNull());
       
    86         QVERIFY(!resultItem2.isNull());
       
    87         QVERIFY(!resultItem3.isNull());
       
    88 
       
    89         QList<int> ids;
       
    90         ids.append(resultItem1->id());
       
    91         ids.append(resultItem3->id());
       
    92         ids.append(resultItem2->id());
       
    93 
       
    94         QList< QSharedPointer<CaEntry> > entries = service->getEntries(ids) ;
       
    95         QCOMPARE(entries.count(), 3);
       
    96         QCOMPARE(service->lastError(), NoErrorCode);
       
    97 
       
    98         QVERIFY(entries.at(0));
       
    99         QCOMPARE(entries.at(0)->role(), ItemEntryRole);
       
   100         QCOMPARE(QString("testName1"),entries.at(0)->text());
       
   101         QCOMPARE(QString("test"),entries.at(0)->entryTypeName());
       
   102         QCOMPARE(QString("attrVal1"),entries.at(0)->attribute("attrName1"));
       
   103         QCOMPARE(item.flags(),entries.at(0)->flags());
       
   104         QVERIFY(entries.at(1));
       
   105         QCOMPARE(entries.at(1)->role(), ItemEntryRole);
       
   106         QCOMPARE(QString("testName3"),entries.at(1)->text());
       
   107         QCOMPARE(QString("test"),entries.at(1)->entryTypeName());
       
   108         QCOMPARE(QString("attrVal1"),entries.at(1)->attribute("attrName1"));
       
   109         QCOMPARE(item.flags(),entries.at(1)->flags());
       
   110         QVERIFY(entries.at(2));
       
   111         QCOMPARE(entries.at(2)->role(), ItemEntryRole);
       
   112         QCOMPARE(QString("testName2"),entries.at(2)->text());
       
   113         QCOMPARE(QString("test"),entries.at(2)->entryTypeName());
       
   114         QCOMPARE(QString("attrVal1"),entries.at(2)->attribute("attrName1"));
       
   115         QCOMPARE(item.flags(),entries.at(2)->flags());
       
   116 
       
   117         QCOMPARE(entries.at(0)->id(),resultItem1->id());
       
   118         QCOMPARE(entries.at(1)->id(),resultItem3->id());
       
   119         QCOMPARE(entries.at(2)->id(),resultItem2->id());
       
   120 
       
   121         QList<int> ids2;
       
   122         ids2.append(resultItem1->id());
       
   123         ids2.append(9999);
       
   124 
       
   125         QList< QSharedPointer<CaEntry> > entries2 = service->getEntries(ids2) ;
       
   126         QCOMPARE(entries2.count(), 1);
       
   127         QVERIFY(service->lastError() != NoErrorCode);
       
   128 
       
   129         //Cleanup
       
   130         service->removeEntry(*resultItem1);
       
   131         service->removeEntry(*resultItem2);
       
   132         service->removeEntry(*resultItem3);
       
   133     }
       
   134 }
       
   135 
       
   136 // ---------------------------------------------------------------------------
       
   137 // ---------------------------------------------------------------------------
       
   138 //
       
   139 void TestCaClient::TestGetEntriesByRole()
       
   140 {
       
   141     {
       
   142         //CHECK INITIAL STATE IN DB
       
   143         QSharedPointer<CaService> service = CaService::instance();
       
   144         CaQuery query;
       
   145         query.setEntryRoles(ItemEntryRole);
       
   146         QList< QSharedPointer<CaEntry> > items = service->getEntries(query);
       
   147         int itemsCountBefore = items.count();
       
   148         query.setEntryRoles(GroupEntryRole);
       
   149         QList<QSharedPointer<CaEntry> > groups = service->getEntries(query);
       
   150         int groupsCountBefore = groups.count();
       
   151         query.setEntryRoles(ItemEntryRole | GroupEntryRole);
       
   152         QList<QSharedPointer<CaEntry> > itemsOrGroups = service->getEntries(query);
       
   153         int itemsOrGroupsCountBefore = itemsOrGroups.count();
       
   154 
       
   155 
       
   156         //ADD TO STORAGE
       
   157         CaEntry item;
       
   158         item.setText("testName_item");
       
   159         item.setAttribute("attrName1_item", "attrVal1_item");
       
   160         item.setEntryTypeName("test_item");
       
   161         item.setFlags(RemovableEntryFlag);
       
   162         CaEntry group(GroupEntryRole);
       
   163         group.setText("testName_group");
       
   164         group.setAttribute("attrName1_group", "attrVal1_group");
       
   165         group.setEntryTypeName("test_group");
       
   166         group.setFlags(RemovableEntryFlag);
       
   167 
       
   168         QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item);
       
   169         QSharedPointer<CaEntry> resultEntry2 = service->createEntry(group);
       
   170         QVERIFY(!resultEntry1.isNull());
       
   171         QVERIFY(!resultEntry2.isNull());
       
   172 
       
   173         //GET RESULTS AFTER ADD
       
   174         query.setEntryRoles(ItemEntryRole);
       
   175         items = service->getEntries(query);
       
   176         QCOMPARE(service->lastError(), NoErrorCode);
       
   177 
       
   178         int itemsCountAfter = items.count();
       
   179         query.setEntryRoles(GroupEntryRole);
       
   180         groups = service->getEntries(query);
       
   181         QCOMPARE(service->lastError(), NoErrorCode);
       
   182 
       
   183         int groupsCountAfter = groups.count();
       
   184         query.setEntryRoles(ItemEntryRole | GroupEntryRole);
       
   185         itemsOrGroups = service->getEntries(query);
       
   186         QCOMPARE(service->lastError(), NoErrorCode);
       
   187         int itemsOrGroupsCountAfter = itemsOrGroups.count();
       
   188 
       
   189         //CHECK RESULTS
       
   190         QCOMPARE(itemsCountAfter, itemsCountBefore+1);
       
   191         QCOMPARE(groupsCountAfter, groupsCountBefore+1);
       
   192         QCOMPARE(itemsOrGroupsCountAfter, itemsOrGroupsCountBefore+2);
       
   193 
       
   194         //CLEANUP THE STORAGE AFTER THE TEST
       
   195         service->removeEntry(*resultEntry1);
       
   196         service->removeEntry(*resultEntry2);
       
   197     }
       
   198 }
       
   199 
       
   200 // ---------------------------------------------------------------------------
       
   201 // ---------------------------------------------------------------------------
       
   202 //
       
   203 void TestCaClient::TestGetEntriesByParent()
       
   204 {
       
   205     {
       
   206         //ADD TEST DATA TO THE STORAGE
       
   207         QSharedPointer<CaService> service = CaService::instance();
       
   208         CaEntry group(GroupEntryRole);
       
   209         group.setText("testName_group");
       
   210         group.setAttribute("attrName1_group", "attrVal1_group");
       
   211         group.setEntryTypeName("test_group");
       
   212         group.setFlags(RemovableEntryFlag);
       
   213         QSharedPointer<CaEntry> parentEntry = service->createEntry(group);
       
   214 
       
   215         QVERIFY(!parentEntry.isNull());
       
   216         CaEntry item;
       
   217         item.setText("testName_item");
       
   218         item.setAttribute("attrName1_item", "attrVal1_item");
       
   219         item.setEntryTypeName("test_item");
       
   220         item.setFlags(RemovableEntryFlag);
       
   221         QSharedPointer<CaEntry> childEntry = service->createEntry(item);
       
   222 
       
   223         QVERIFY(!childEntry.isNull());
       
   224 
       
   225         //PREPARE QUERY
       
   226         CaQuery query;
       
   227         query.setParentId(parentEntry->id());
       
   228         QList< QSharedPointer<CaEntry> > entries = service->getEntries(query);
       
   229 
       
   230         int countBefore = entries.count();
       
   231 
       
   232         //APPEND ENTRY TO THE GROUP
       
   233         service->appendEntryToGroup(parentEntry->id(),childEntry->id());
       
   234         entries = service->getEntries(query);
       
   235         QCOMPARE(service->lastError(), NoErrorCode);
       
   236 
       
   237         int countAfter = entries.count();
       
   238 
       
   239         //CHECK RESULTS
       
   240         QCOMPARE(countBefore, 0);
       
   241         QCOMPARE(countAfter, 1);
       
   242 
       
   243         //CLEANUP THE STORAGE AFTER THE TEST
       
   244         service->removeEntry(*parentEntry);
       
   245         service->removeEntry(*childEntry);
       
   246     }
       
   247 }
       
   248 
       
   249 // ---------------------------------------------------------------------------
       
   250 // ---------------------------------------------------------------------------
       
   251 //
       
   252 void TestCaClient::TestGetEntriesByType1()
       
   253 {
       
   254     {
       
   255         //CHECK INITIAL STATE IN DB
       
   256         QSharedPointer<CaService> service = CaService::instance();
       
   257         CaQuery query;
       
   258         QStringList strList;
       
   259         strList << QString("WRONGTYPENAME");
       
   260         query.setEntryTypeNames(strList);
       
   261         QList< QSharedPointer<CaEntry> > entriesWrongType = service->getEntries(query);
       
   262         int countWrongBefore = entriesWrongType.count();
       
   263         strList.clear();
       
   264         strList << QString("WRONGTYPENAME");
       
   265         strList << QString("test_item1");
       
   266         strList << QString("test_item2");
       
   267         query.setEntryTypeNames(strList);
       
   268         QList< QSharedPointer<CaEntry> > entriesWrong12 = service->getEntries(query);
       
   269         int countWrong12Before = entriesWrong12.count();
       
   270         strList.clear();
       
   271         strList << QString("test_item1");
       
   272         query.setEntryTypeNames(strList);
       
   273         QList< QSharedPointer<CaEntry> > entries1 = service->getEntries(query);
       
   274         int count1Before = entries1.count();
       
   275         strList.clear();
       
   276         strList << QString("test_item2");
       
   277         query.setEntryTypeNames(strList);
       
   278         QList< QSharedPointer<CaEntry> > entries2 = service->getEntries(query);
       
   279         int count2Before = entries2.count();
       
   280         strList.clear();
       
   281         strList << QString("test_item1");
       
   282         strList << QString("test_item2");
       
   283         query.setEntryTypeNames(strList);
       
   284         QList< QSharedPointer<CaEntry> > entries12 = service->getEntries(query);
       
   285         int count12Before = entries12.count();
       
   286 
       
   287         //ADD TEST DATA TO THE STORAGE
       
   288         CaEntry item1;
       
   289         item1.setText("testName_item1");
       
   290         item1.setAttribute("attrName1_item", "attrVal1_item");
       
   291         item1.setEntryTypeName("test_item1");
       
   292         CaEntry item2;
       
   293         item2.setText("testName_item2");
       
   294         item2.setAttribute("attrName2_item", "attrVal2_item");
       
   295         item2.setEntryTypeName("test_item2");
       
   296         QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
       
   297         QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
       
   298         QVERIFY(!resultEntry1.isNull());
       
   299         QVERIFY(!resultEntry2.isNull());
       
   300 
       
   301         //GET STATE FROM THE STORAGE AFTER ADD
       
   302         strList.clear();
       
   303         strList << QString("WRONGTYPENAME");
       
   304         query.setEntryTypeNames(strList);
       
   305         query.setEntryTypeNames(strList);
       
   306         entriesWrongType = service->getEntries(query);
       
   307         int countWrongAfter = entriesWrongType.count();
       
   308         strList.clear();
       
   309         strList << QString("WRONGTYPENAME");
       
   310         strList << QString("test_item1");
       
   311         strList << QString("test_item2");
       
   312         query.setEntryTypeNames(strList);
       
   313         entriesWrong12 = service->getEntries(query);
       
   314         QCOMPARE(service->lastError(), NoErrorCode);
       
   315         int countWrong12After = entriesWrong12.count();
       
   316         strList.clear();
       
   317         strList << QString("test_item1");
       
   318         query.setEntryTypeNames(strList);
       
   319         entries1 = service->getEntries(query);
       
   320         QCOMPARE(service->lastError(), NoErrorCode);
       
   321         int count1After = entries1.count();
       
   322         strList.clear();
       
   323         strList << QString("test_item2");
       
   324         query.setEntryTypeNames(strList);
       
   325         entries2 = service->getEntries(query);
       
   326         QCOMPARE(service->lastError(), NoErrorCode);
       
   327         int count2After = entries2.count();
       
   328         strList.clear();
       
   329         strList << QString("test_item1");
       
   330         strList << QString("test_item2");
       
   331         query.setEntryTypeNames(strList);
       
   332         entries12 = service->getEntries(query);
       
   333         QCOMPARE(service->lastError(), NoErrorCode);
       
   334         int count12After = entries12.count();
       
   335 
       
   336         //CHECK RESULTS
       
   337         QCOMPARE(countWrongBefore,countWrongAfter);
       
   338         QCOMPARE(countWrong12Before+2,countWrong12After);
       
   339         QCOMPARE(count1Before+1,count1After);
       
   340         QCOMPARE(count2Before+1,count2After);
       
   341         QCOMPARE(count12Before+2,count12After);
       
   342 
       
   343         //CLEANUP THE STORAGE AFTER THE TEST
       
   344         service->removeEntry(*resultEntry1);
       
   345         service->removeEntry(*resultEntry2);
       
   346     }
       
   347 }
       
   348 
       
   349 // ---------------------------------------------------------------------------
       
   350 // ---------------------------------------------------------------------------
       
   351 //
       
   352 void TestCaClient::TestGetEntriesByType2()
       
   353 {
       
   354     {
       
   355         //CHECK INITIAL STATE IN DB
       
   356         QSharedPointer<CaService> service = CaService::instance();
       
   357         CaQuery query;
       
   358         QStringList strList;
       
   359         strList << QString("test_item1");
       
   360         query.setEntryTypeNames(strList);
       
   361         query.addEntryTypeName(QString("test_item2"));
       
   362         QList< QSharedPointer<CaEntry> > entries12 = service->getEntries(query);
       
   363         int count12Before = entries12.count();
       
   364 
       
   365         //ADD TEST DATA TO THE STORAGE
       
   366         CaEntry item1;
       
   367         item1.setText("testName_item1");
       
   368         item1.setAttribute("attrName1_item", "attrVal1_item");
       
   369         item1.setEntryTypeName("test_item1");
       
   370         CaEntry item2;
       
   371         item2.setText("testName_item2");
       
   372         item2.setAttribute("attrName2_item", "attrVal2_item");
       
   373         item2.setEntryTypeName("test_item2");
       
   374 
       
   375         QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
       
   376         QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
       
   377         QVERIFY(!resultEntry1.isNull());
       
   378         QVERIFY(!resultEntry2.isNull());
       
   379 
       
   380         //GET STATE FROM THE STORAGE AFTER ADD
       
   381         strList.clear();
       
   382         strList << QString("test_item1");
       
   383         query.setEntryTypeNames(strList);
       
   384         query.addEntryTypeName(QString("test_item2"));
       
   385         entries12 = service->getEntries(query);
       
   386         QCOMPARE(service->lastError(), NoErrorCode);
       
   387         int count12After = entries12.count();
       
   388 
       
   389         //CHECK RESULTS
       
   390         QCOMPARE(count12Before+2,count12After);
       
   391 
       
   392         //CLEANUP THE STORAGE AFTER THE TEST
       
   393         service->removeEntry(*resultEntry1);
       
   394         service->removeEntry(*resultEntry2);
       
   395     }
       
   396 }
       
   397 
       
   398 // ---------------------------------------------------------------------------
       
   399 // ---------------------------------------------------------------------------
       
   400 //
       
   401 void TestCaClient::TestGetEntriesByFlagsOn()
       
   402 {
       
   403     {
       
   404         //CHECK INITIAL STATE IN DB
       
   405         QSharedPointer<CaService> service = CaService::instance();
       
   406         CaQuery query1;
       
   407         query1.setFlagsOn(UninstallEntryFlag);
       
   408         CaQuery query2;
       
   409         query2.setFlagsOn(RemovableEntryFlag);
       
   410         CaQuery query3;
       
   411         query3.setFlagsOn(UninstallEntryFlag|RemovableEntryFlag);
       
   412         QList< QSharedPointer<CaEntry> > entriesSystem = service->getEntries(query1);
       
   413         int systemCountBefore = entriesSystem.count();
       
   414         QList< QSharedPointer<CaEntry> > entriesRemovable = service->getEntries(query2);
       
   415         int removableCountBefore = entriesRemovable.count();
       
   416         QList< QSharedPointer<CaEntry> > entriesSysRem = service->getEntries(query3);
       
   417         int sysremoveCountBefore = entriesSysRem.count();
       
   418         //ADD TO DB
       
   419         CaEntry item1;
       
   420         item1.setText("testName_item1");
       
   421         item1.setAttribute("attrName1_item", "attrVal1_item");
       
   422         item1.setEntryTypeName("test_item1");
       
   423         item1.setFlags(UninstallEntryFlag);
       
   424         CaEntry item2;
       
   425         item2.setText("testName_item2");
       
   426         item2.setAttribute("attrName2_item", "attrVal2_item");
       
   427         item2.setEntryTypeName("test_item2");
       
   428         item2.setFlags(UninstallEntryFlag | RemovableEntryFlag);
       
   429         QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
       
   430         QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
       
   431         QVERIFY(!resultEntry1.isNull());
       
   432         QVERIFY(!resultEntry2.isNull());
       
   433         //CHECK STATE IN THE STORAGE AFTER ADD
       
   434         entriesSystem = service->getEntries(query1);
       
   435         int systemCountAfter = entriesSystem.count();
       
   436         QCOMPARE(service->lastError(), NoErrorCode);
       
   437         entriesRemovable = service->getEntries(query2);
       
   438         QCOMPARE(service->lastError(), NoErrorCode);
       
   439         int removableCountAfter = entriesRemovable.count();
       
   440         entriesSysRem = service->getEntries(query3);
       
   441         QCOMPARE(service->lastError(), NoErrorCode);
       
   442         int sysremoveCountAfter = entriesSysRem.count();
       
   443         //CHECK RESULTS
       
   444         QCOMPARE(systemCountBefore+2,systemCountAfter);
       
   445         QCOMPARE(removableCountBefore+1,removableCountAfter);
       
   446         QCOMPARE(sysremoveCountBefore+1,sysremoveCountAfter);
       
   447         //CLEANUP THE STORAGE AFTER THE TEST
       
   448         service->removeEntry(*resultEntry1);
       
   449         service->removeEntry(*resultEntry2);
       
   450     }
       
   451 }
       
   452 
       
   453 // ---------------------------------------------------------------------------
       
   454 // ---------------------------------------------------------------------------
       
   455 //
       
   456 void TestCaClient::TestGetEntriesByFlagsOff()
       
   457 {
       
   458     {
       
   459         //GET INITIAL STATE FROM THE STORAGE
       
   460         QSharedPointer<CaService> service = CaService::instance();
       
   461         CaQuery query1;
       
   462         query1.setFlagsOff(UninstallEntryFlag);
       
   463         CaQuery query2;
       
   464         query2.setFlagsOff(RemovableEntryFlag);
       
   465         CaQuery query3;
       
   466         query3.setFlagsOff(UninstallEntryFlag|RemovableEntryFlag);
       
   467         QList< QSharedPointer<CaEntry> > entriesSystem = service->getEntries(query1);
       
   468         int systemCountBefore = entriesSystem.count();
       
   469         QList< QSharedPointer<CaEntry> > entriesRemovable = service->getEntries(query2);
       
   470         int removableCountBefore = entriesRemovable.count();
       
   471         QList< QSharedPointer<CaEntry> > entriesSysRem = service->getEntries(query3);
       
   472         int sysremoveCountBefore = entriesSysRem.count();
       
   473         //ADD TO DB
       
   474         CaEntry item1;
       
   475         item1.setText("testName_item1");
       
   476         item1.setAttribute("attrName1_item", "attrVal1_item");
       
   477         item1.setEntryTypeName("test_item1");
       
   478         item1.setFlags(UninstallEntryFlag);
       
   479         CaEntry item2;
       
   480         item2.setText("testName_item2");
       
   481         item2.setAttribute("attrName2_item", "attrVal2_item");
       
   482         item2.setEntryTypeName("test_item2");
       
   483         item2.setFlags(RemovableEntryFlag);
       
   484 
       
   485         QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
       
   486         QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
       
   487         QVERIFY(!resultEntry1.isNull());
       
   488         QVERIFY(!resultEntry2.isNull());
       
   489 
       
   490         //GET STATE FROM THE STORAGE AFTER ADD
       
   491         entriesSystem = service->getEntries(query1);
       
   492         int systemCountAfter = entriesSystem.count();
       
   493         entriesRemovable = service->getEntries(query2);
       
   494         int removableCountAfter = entriesRemovable.count();
       
   495         entriesSysRem = service->getEntries(query3);
       
   496         int sysremoveCountAfter = entriesSysRem.count();
       
   497         //CHECK RESULTS
       
   498         QCOMPARE(systemCountBefore+1,systemCountAfter);
       
   499         QCOMPARE(removableCountBefore+1,removableCountAfter);
       
   500         QCOMPARE(sysremoveCountBefore,sysremoveCountAfter);
       
   501         //CLEANUP THE STORAGE AFTER THE TEST
       
   502         service->removeEntry(*resultEntry1);
       
   503         service->removeEntry(*resultEntry2);
       
   504     }
       
   505 }
       
   506 
       
   507 // ---------------------------------------------------------------------------
       
   508 // ---------------------------------------------------------------------------
       
   509 //
       
   510 void TestCaClient::TestGetEntriesByFlagsOnOff()
       
   511 {
       
   512     {
       
   513         //GET INITIAL STATE FROM THE STORAGE
       
   514         QSharedPointer<CaService> service = CaService::instance();
       
   515         CaQuery query1;
       
   516         query1.setFlagsOn(UninstallEntryFlag);
       
   517         query1.setFlagsOff(RemovableEntryFlag);
       
   518         QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
       
   519         int entriesCount1 = entries.count();
       
   520         //ADD TO DB
       
   521         CaEntry item1;
       
   522         item1.setText("testName_item1");
       
   523         item1.setAttribute("attrName1_item", "attrVal1_item");
       
   524         item1.setEntryTypeName("test_item1");
       
   525         item1.setFlags(UninstallEntryFlag);
       
   526         QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
       
   527         QVERIFY(!resultEntry1.isNull());
       
   528         //GET STATE FROM THE STORAGE AFTER ADD
       
   529         entries = service->getEntries(query1);
       
   530         int entriesCount2 = entries.count();
       
   531         //ADD TO DB
       
   532         CaEntry item2;
       
   533         item2.setText("testName_item1");
       
   534         item2.setAttribute("attrName1_item", "attrVal1_item");
       
   535         item2.setEntryTypeName("test_item1");
       
   536         item2.setFlags(RemovableEntryFlag);
       
   537         QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
       
   538         QVERIFY(!resultEntry2.isNull());
       
   539         //GET STATE FROM THE STORAGE AFTER ADD
       
   540         entries = service->getEntries(query1);
       
   541         int entriesCount3 = entries.count();
       
   542         //ADD TO DB
       
   543         CaEntry item3;
       
   544         item3.setText("testName_item1");
       
   545         item3.setAttribute("attrName1_item", "attrVal1_item");
       
   546         item3.setEntryTypeName("test_item1");
       
   547         item3.setFlags(UninstallEntryFlag|RemovableEntryFlag);
       
   548         QSharedPointer<CaEntry> resultEntry3 = service->createEntry(item3);
       
   549         QVERIFY(!resultEntry3.isNull());
       
   550         //GET STATE FROM THE STORAGE AFTER ADD
       
   551         entries = service->getEntries(query1);
       
   552         int entriesCount4 = entries.count();
       
   553         //CHECK RESULTS
       
   554         QCOMPARE(entriesCount1+1,entriesCount2);
       
   555         QCOMPARE(entriesCount2,entriesCount3);
       
   556         QCOMPARE(entriesCount3,entriesCount4);
       
   557         //CLEANUP THE STORAGE AFTER THE TEST
       
   558         service->removeEntry(*resultEntry1);
       
   559         service->removeEntry(*resultEntry2);
       
   560         service->removeEntry(*resultEntry3);
       
   561     }
       
   562 }
       
   563 
       
   564 // ---------------------------------------------------------------------------
       
   565 // ---------------------------------------------------------------------------
       
   566 //
       
   567 void TestCaClient::TestGetEntriesByRoleParent()
       
   568 {
       
   569     {
       
   570         QSharedPointer<CaService> service = CaService::instance();
       
   571         //ADD PARENT ENTRY TO THE STORAGE
       
   572         CaEntry parent(GroupEntryRole);
       
   573         CaEntry parent2(GroupEntryRole);
       
   574         parent.setText(QString("text"));
       
   575         parent.setEntryTypeName(QString("type"));
       
   576         parent2.setText(QString("text"));
       
   577         parent2.setEntryTypeName(QString("type"));
       
   578         QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
       
   579         QVERIFY(!parentEntry.isNull());
       
   580         QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
       
   581         QVERIFY(!parentEntry2.isNull());
       
   582 
       
   583         //GET INITIAL STATE FROM THE STORAGE
       
   584         CaQuery query1;
       
   585         query1.setEntryRoles(ItemEntryRole);
       
   586         query1.setParentId(parentEntry->id());
       
   587         QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
       
   588         int entriesCount1 = entries.count();
       
   589 
       
   590         //ADD TO DB (item, parent2)
       
   591         CaEntry item1;
       
   592         item1.setText(QString("Name"));
       
   593         item1.setEntryTypeName(QString("Type"));
       
   594         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
   595         QVERIFY(!resultItem1.isNull());
       
   596         service->appendEntryToGroup(parentEntry2->id(),resultItem1->id());
       
   597         //GET STATE FROM THE STORAGE AFTER ADD
       
   598         entries = service->getEntries(query1);
       
   599         int entriesCount2 = entries.count();
       
   600         //ADD TO DB (group, parent2)
       
   601         CaEntry group1(GroupEntryRole);
       
   602         group1.setText(QString("text"));
       
   603         group1.setEntryTypeName(QString("type"));
       
   604         QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
       
   605         QVERIFY(!resultGroup1.isNull());
       
   606         service->appendEntryToGroup(parentEntry2->id(),resultGroup1->id());
       
   607         //GET STATE FROM THE STORAGE AFTER ADD
       
   608         entries = service->getEntries(query1);
       
   609         int entriesCount3 = entries.count();
       
   610         //ADD TO DB (item, parent1)
       
   611         service->appendEntryToGroup(parentEntry->id(),resultItem1->id());
       
   612         //GET STATE FROM THE STORAGE AFTER ADD
       
   613         entries = service->getEntries(query1);
       
   614         int entriesCount4 = entries.count();
       
   615         //ADD TO DB (group, parent1)
       
   616         service->appendEntryToGroup(parentEntry->id(),resultGroup1->id());
       
   617         //GET STATE FROM THE STORAGE AFTER ADD
       
   618         entries = service->getEntries(query1);
       
   619         int entriesCount5 = entries.count();
       
   620 
       
   621         //CHECK RESULTS
       
   622         QCOMPARE(entriesCount1,entriesCount2);
       
   623         QCOMPARE(entriesCount2,entriesCount3);
       
   624         QCOMPARE(entriesCount3+1, entriesCount4);
       
   625         QCOMPARE(entriesCount4, entriesCount5);
       
   626 
       
   627         //CLEANUP THE STORAGE AFTER THE TEST
       
   628         service->removeEntry(*resultItem1);
       
   629         service->removeEntry(*resultGroup1);
       
   630         service->removeEntry(*parentEntry);
       
   631         service->removeEntry(*parentEntry2);
       
   632     }
       
   633 }
       
   634 
       
   635 // ---------------------------------------------------------------------------
       
   636 // ---------------------------------------------------------------------------
       
   637 //
       
   638 void TestCaClient::TestGetEntriesByRoleType()
       
   639 {
       
   640     {
       
   641         //GET INITIAL STATE FROM THE STORAGE
       
   642         QSharedPointer<CaService> service = CaService::instance();
       
   643         CaQuery query1;
       
   644         query1.setEntryRoles(ItemEntryRole);
       
   645         query1.addEntryTypeName(QString("TestTypeName"));
       
   646         QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
       
   647         int entriesCount1 = entries.count();
       
   648         //ADD TO DB (item, typeOk)
       
   649         CaEntry item1;
       
   650         item1.setText(QString("Name"));
       
   651         item1.setEntryTypeName(QString("TestTypeName"));
       
   652         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
   653         QVERIFY(!resultItem1.isNull());
       
   654         //GET STATE FROM THE STORAGE AFTER ADD
       
   655         entries = service->getEntries(query1);
       
   656         int entriesCount2 = entries.count();
       
   657         //ADD TO DB (item, typeWrong)
       
   658         CaEntry item2;
       
   659         item2.setText(QString("Name"));
       
   660         item2.setEntryTypeName(QString("TestTypeWRONG"));
       
   661         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
   662         QVERIFY(!resultItem2.isNull());
       
   663         //GET STATE FROM THE STORAGE AFTER ADD
       
   664         entries = service->getEntries(query1);
       
   665         int entriesCount3 = entries.count();
       
   666         //ADD TO DB (group, typeOk)
       
   667         CaEntry group1(GroupEntryRole);
       
   668         group1.setText(QString("text"));
       
   669         group1.setEntryTypeName(QString("TestTypeName"));
       
   670         QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
       
   671         QVERIFY(!resultGroup1.isNull());
       
   672         //GET STATE FROM THE STORAGE AFTER ADD
       
   673         entries = service->getEntries(query1);
       
   674         int entriesCount4 = entries.count();
       
   675         //ADD TO DB (group, typeWrong)
       
   676         CaEntry group2(GroupEntryRole);
       
   677         group2.setText(QString("text"));
       
   678         group2.setEntryTypeName(QString("TestTypeWRONG"));
       
   679         QSharedPointer<CaEntry> resultGroup2 = service->createEntry(group2);
       
   680         QVERIFY(!resultGroup2.isNull());
       
   681         //GET STATE FROM THE STORAGE AFTER ADD
       
   682         entries = service->getEntries(query1);
       
   683         int entriesCount5 = entries.count();
       
   684 
       
   685         //CHECK RESULTS
       
   686         QCOMPARE(entriesCount1+1,entriesCount2);
       
   687         QCOMPARE(entriesCount2,entriesCount3);
       
   688         QCOMPARE(entriesCount3, entriesCount4);
       
   689         QCOMPARE(entriesCount4, entriesCount5);
       
   690 
       
   691         //CLEANUP THE STORAGE AFTER THE TEST
       
   692         service->removeEntry(*resultItem1);
       
   693         service->removeEntry(*resultGroup1);
       
   694         service->removeEntry(*resultItem2);
       
   695         service->removeEntry(*resultGroup2);
       
   696     }
       
   697 }
       
   698 
       
   699 // ---------------------------------------------------------------------------
       
   700 // ---------------------------------------------------------------------------
       
   701 //
       
   702 void TestCaClient::TestGetEntriesByRoleFlags()
       
   703 {
       
   704     {
       
   705         //GET INITIAL STATE FROM THE STORAGE
       
   706         QSharedPointer<CaService> service = CaService::instance();
       
   707         CaQuery query1;
       
   708         query1.setEntryRoles(ItemEntryRole);
       
   709         query1.setFlagsOn(UninstallEntryFlag);
       
   710         QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
       
   711         int entriesCount1 = entries.count();
       
   712         //ADD TO DB (item, systemOn)
       
   713         CaEntry item1;
       
   714         item1.setFlags(UninstallEntryFlag);
       
   715         item1.setText(QString("Name"));
       
   716         item1.setEntryTypeName(QString("Name"));
       
   717         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
   718         QVERIFY(!resultItem1.isNull());
       
   719         //GET STATE FROM THE STORAGE AFTER ADD
       
   720         entries = service->getEntries(query1);
       
   721         int entriesCount2 = entries.count();
       
   722         //ADD TO DB (item, systemOff)
       
   723         CaEntry item2;
       
   724         item2.setText(QString("Name"));
       
   725         item2.setEntryTypeName(QString("Name"));
       
   726         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
   727         QVERIFY(!resultItem2.isNull());
       
   728         //GET STATE FROM THE STORAGE AFTER ADD
       
   729         entries = service->getEntries(query1);
       
   730         int entriesCount3 = entries.count();
       
   731         //ADD TO DB(group, systemOn)
       
   732         CaEntry group1(GroupEntryRole);
       
   733         group1.setText(QString("text"));
       
   734         group1.setEntryTypeName(QString("type"));
       
   735         group1.setFlags(UninstallEntryFlag);
       
   736         QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
       
   737         QVERIFY(!resultGroup1.isNull());
       
   738         //GET STATE FROM THE STORAGE AFTER ADD
       
   739         entries = service->getEntries(query1);
       
   740         int entriesCount4 = entries.count();
       
   741         //ADD TO DB(group, systemoff)
       
   742         CaEntry group2(GroupEntryRole);
       
   743         group2.setText(QString("text"));
       
   744         group2.setEntryTypeName(QString("type"));
       
   745         QSharedPointer<CaEntry> resultGroup2 = service->createEntry(group2);
       
   746         QVERIFY(!resultGroup2.isNull());
       
   747         //GET STATE FROM THE STORAGE AFTER ADD
       
   748         entries = service->getEntries(query1);
       
   749         int entriesCount5 = entries.count();
       
   750         //CHECK RESULTS
       
   751         QCOMPARE(entriesCount1+1,entriesCount2);
       
   752         QCOMPARE(entriesCount2,entriesCount3);
       
   753         QCOMPARE(entriesCount3, entriesCount4);
       
   754         QCOMPARE(entriesCount4, entriesCount5);
       
   755         //CLEANUP THE STORAGE AFTER THE TEST
       
   756         service->removeEntry(*resultItem1);
       
   757         service->removeEntry(*resultGroup1);
       
   758         service->removeEntry(*resultItem2);
       
   759         service->removeEntry(*resultGroup2);
       
   760     }
       
   761 }
       
   762 
       
   763 // ---------------------------------------------------------------------------
       
   764 // ---------------------------------------------------------------------------
       
   765 //
       
   766 void TestCaClient::TestGetEntriesByParentType()
       
   767 {
       
   768     {
       
   769         QSharedPointer<CaService> service = CaService::instance();
       
   770         //ADD PARENT TO THE STORAGE
       
   771         CaEntry parent(GroupEntryRole);
       
   772         CaEntry parent2(GroupEntryRole);
       
   773         parent.setText(QString("text"));
       
   774         parent.setEntryTypeName(QString("type"));
       
   775         parent2.setText(QString("text"));
       
   776         parent2.setEntryTypeName(QString("type"));
       
   777         QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
       
   778         QVERIFY(!parentEntry.isNull());
       
   779         QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
       
   780         QVERIFY(!parentEntry2.isNull());
       
   781 
       
   782         //GET INITIAL STATE FROM THE STORAGE
       
   783         CaQuery query1;
       
   784         query1.setParentId(parentEntry->id());
       
   785         query1.addEntryTypeName(QString("typeOK"));
       
   786         QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
       
   787         int entriesCount1 = entries.count();
       
   788         //ADD TO DB (parent1, typeok)
       
   789         CaEntry item1;
       
   790         item1.setText(QString("Name"));
       
   791         item1.setEntryTypeName(QString("typeOK"));
       
   792         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
   793         QVERIFY(!resultItem1.isNull());
       
   794         service->appendEntryToGroup(parentEntry->id(),resultItem1->id());
       
   795         //GET STATE FROM THE STORAGE AFTER ADD
       
   796         entries = service->getEntries(query1);
       
   797         int entriesCount2 = entries.count();
       
   798         //ADD TO DB (parent1, typeWrong)
       
   799         CaEntry item2;
       
   800         item2.setText(QString("Name"));
       
   801         item2.setEntryTypeName(QString("typeWrong"));
       
   802         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
   803         QVERIFY(!resultItem2.isNull());
       
   804         service->appendEntryToGroup(parentEntry->id(),resultItem2->id());
       
   805         //GET STATE FROM THE STORAGE AFTER ADD
       
   806         entries = service->getEntries(query1);
       
   807         int entriesCount3 = entries.count();
       
   808         //ADD TO DB (parent2, typeOk)
       
   809         service->appendEntryToGroup(parentEntry2->id(),resultItem1->id());
       
   810         //GET STATE FROM THE STORAGE AFTER ADD
       
   811         entries = service->getEntries(query1);
       
   812         int entriesCount4 = entries.count();
       
   813         //ADD TO DB (parent2,typeWrong)
       
   814         service->appendEntryToGroup(parentEntry2->id(),resultItem2->id());
       
   815         //GET STATE FROM THE STORAGE AFTER ADD
       
   816         entries = service->getEntries(query1);
       
   817         int entriesCount5 = entries.count();
       
   818         //CHECK RESULTS
       
   819         QCOMPARE(entriesCount1+1,entriesCount2);
       
   820         QCOMPARE(entriesCount2,entriesCount3);
       
   821         QCOMPARE(entriesCount3, entriesCount4);
       
   822         QCOMPARE(entriesCount4, entriesCount5);
       
   823         //CLEANUP THE STORAGE AFTER THE TEST
       
   824         service->removeEntry(*resultItem1);
       
   825         service->removeEntry(*resultItem2);
       
   826         service->removeEntry(*parentEntry);
       
   827         service->removeEntry(*parentEntry2);
       
   828     }
       
   829 }
       
   830 
       
   831 // ---------------------------------------------------------------------------
       
   832 // ---------------------------------------------------------------------------
       
   833 //
       
   834 void TestCaClient::TestGetEntriesByParentFlags()
       
   835 {
       
   836     {
       
   837         QSharedPointer<CaService> service = CaService::instance();
       
   838         //ADD PARENT TO THE STORAGE
       
   839         CaEntry parent(GroupEntryRole);
       
   840         CaEntry parent2(GroupEntryRole);
       
   841         parent.setText(QString("text"));
       
   842         parent.setEntryTypeName(QString("type"));
       
   843         parent2.setText(QString("text"));
       
   844         parent2.setEntryTypeName(QString("type"));
       
   845         QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
       
   846         QVERIFY(!parentEntry.isNull());
       
   847         QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
       
   848         QVERIFY(!parentEntry2.isNull());
       
   849 
       
   850         //GET INITIAL STATE FROM THE STORAGE
       
   851         CaQuery query1;
       
   852         query1.setParentId(parentEntry->id());
       
   853         query1.setFlagsOn(UninstallEntryFlag);
       
   854         QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
       
   855         int entriesCount1 = entries.count();
       
   856 
       
   857         //ADD TO DB (parent1, system)
       
   858         CaEntry item1;
       
   859         item1.setText(QString("Name"));
       
   860         item1.setEntryTypeName(QString("Type"));
       
   861         item1.setFlags(UninstallEntryFlag);
       
   862         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
   863         QVERIFY(!resultItem1.isNull());
       
   864         service->appendEntryToGroup(parentEntry->id(),resultItem1->id());
       
   865         //GET STATE FROM THE STORAGE AFTER ADD
       
   866         entries = service->getEntries(query1);
       
   867         int entriesCount2 = entries.count();
       
   868         //ADD TO DB (parent1, not system)
       
   869         CaEntry item2;
       
   870         item2.setText(QString("Name"));
       
   871         item2.setEntryTypeName(QString("Type"));
       
   872         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
   873         QVERIFY(!resultItem2.isNull());
       
   874         service->appendEntryToGroup(parentEntry->id(),resultItem2->id());
       
   875         //GET STATE FROM THE STORAGE AFTER ADD
       
   876         entries = service->getEntries(query1);
       
   877         int entriesCount3 = entries.count();
       
   878         //ADD TO DB( parent2, system )
       
   879         service->appendEntryToGroup(parentEntry2->id(),resultItem1->id());
       
   880         //GET STATE FROM THE STORAGE AFTER ADD
       
   881         entries = service->getEntries(query1);
       
   882         int entriesCount4 = entries.count();
       
   883         //ADD TO DB (parent2, not system)
       
   884         service->appendEntryToGroup(parentEntry2->id(),resultItem2->id());
       
   885         //GET STATE FROM THE STORAGE AFTER ADD
       
   886         entries = service->getEntries(query1);
       
   887         int entriesCount5 = entries.count();
       
   888 
       
   889         //CHECK RESULTS
       
   890         QCOMPARE(entriesCount1+1,entriesCount2);
       
   891         QCOMPARE(entriesCount2,entriesCount3);
       
   892         QCOMPARE(entriesCount3, entriesCount4);
       
   893         QCOMPARE(entriesCount4, entriesCount5);
       
   894 
       
   895         //CLEANUP THE STORAGE AFTER THE TEST
       
   896         service->removeEntry(*parentEntry);
       
   897         service->removeEntry(*parentEntry2);
       
   898         service->removeEntry(*resultItem1);
       
   899         service->removeEntry(*resultItem2);
       
   900     }
       
   901 }
       
   902 
       
   903 // ---------------------------------------------------------------------------
       
   904 // ---------------------------------------------------------------------------
       
   905 //
       
   906 void TestCaClient::TestGetEntriesByTypeFlags()
       
   907 {
       
   908     {
       
   909         //GET INITIAL STATE FROM THE STORAGE
       
   910         QSharedPointer<CaService> service = CaService::instance();
       
   911         CaQuery query1;
       
   912         query1.addEntryTypeName(QString("TypeOK"));
       
   913         query1.setFlagsOn(UninstallEntryFlag);
       
   914         QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
       
   915         int entriesCount1 = entries.count();
       
   916 
       
   917         //ADD TO DB (typeOk, system)
       
   918         CaEntry item1;
       
   919         item1.setFlags(UninstallEntryFlag);
       
   920         item1.setEntryTypeName(QString("TypeOK"));
       
   921         item1.setText(QString("Name"));
       
   922         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
   923         QVERIFY(!resultItem1.isNull());
       
   924         //GET STATE FROM THE STORAGE AFTER ADD
       
   925         entries = service->getEntries(query1);
       
   926         int entriesCount2 = entries.count();
       
   927         //ADD TO DB(typeOk, not system)
       
   928         CaEntry item2;
       
   929         item2.setEntryTypeName(QString("TypeOK"));
       
   930         item2.setText(QString("Name"));
       
   931         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
   932         QVERIFY(!resultItem2.isNull());
       
   933         //GET STATE FROM THE STORAGE AFTER ADD
       
   934         entries = service->getEntries(query1);
       
   935         int entriesCount3 = entries.count();
       
   936         //ADD TO DB(typeWrong, system)
       
   937         CaEntry item3;
       
   938         item3.setFlags(UninstallEntryFlag);
       
   939         item3.setText(QString("Name"));
       
   940         item3.setEntryTypeName(QString("TypeWrong"));
       
   941         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item3);
       
   942         QVERIFY(!resultItem3.isNull());
       
   943         //GET STATE FROM THE STORAGE AFTER ADD
       
   944         entries = service->getEntries(query1);
       
   945         int entriesCount4 = entries.count();
       
   946         //ADD TO DB(typeWrong, not system)
       
   947         CaEntry item4;
       
   948         item4.setEntryTypeName(QString("TypeWrong"));
       
   949         item4.setText(QString("Name"));
       
   950 
       
   951         QSharedPointer<CaEntry> resultItem4 = service->createEntry(item4);
       
   952         QVERIFY(!resultItem4.isNull());
       
   953         //GET STATE FROM THE STORAGE AFTER ADD
       
   954         entries = service->getEntries(query1);
       
   955         int entriesCount5 = entries.count();
       
   956 
       
   957         //CHECK RESULTS
       
   958         QCOMPARE(entriesCount1+1,entriesCount2);
       
   959         QCOMPARE(entriesCount2,entriesCount3);
       
   960         QCOMPARE(entriesCount3, entriesCount4);
       
   961         QCOMPARE(entriesCount4, entriesCount5);
       
   962         //CLEANUP THE STORAGE AFTER THE TEST
       
   963         service->removeEntry(*resultItem1);
       
   964         service->removeEntry(*resultItem2);
       
   965         service->removeEntry(*resultItem3);
       
   966         service->removeEntry(*resultItem4);
       
   967     }
       
   968 }
       
   969 
       
   970 // ---------------------------------------------------------------------------
       
   971 // ---------------------------------------------------------------------------
       
   972 //
       
   973 void TestCaClient::TestGetEntriesByRoleParentType()
       
   974 {
       
   975     {
       
   976         QSharedPointer<CaService> service = CaService::instance();
       
   977         //ADD PARENT TO THE STORAGE
       
   978         CaEntry parent(GroupEntryRole);
       
   979         CaEntry parent2(GroupEntryRole);
       
   980         parent.setText(QString("text"));
       
   981         parent.setEntryTypeName(QString("type"));
       
   982         parent2.setText(QString("text"));
       
   983         parent2.setEntryTypeName(QString("type"));
       
   984         QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
       
   985         QVERIFY(!parentEntry.isNull());
       
   986         QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
       
   987         QVERIFY(!parentEntry2.isNull());
       
   988 
       
   989         //GET INITIAL STATE FROM THE STORAGE
       
   990         CaQuery query1;
       
   991         query1.setEntryRoles(ItemEntryRole);
       
   992         query1.setParentId(parentEntry->id());
       
   993         query1.addEntryTypeName(QString("TypeOK"));
       
   994         QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
       
   995         int entriesCount1 = entries.count();
       
   996 
       
   997         //ADD TO DB ( item, parent1, typeOk)
       
   998         CaEntry item1;
       
   999         item1.setEntryTypeName(QString("TypeOK"));
       
  1000         item1.setText(QString("Name"));
       
  1001         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  1002         QVERIFY(!resultItem1.isNull());
       
  1003         service->appendEntryToGroup(parentEntry->id(), resultItem1->id());
       
  1004         //GET STATE FROM THE STORAGE AFTER ADD
       
  1005         entries = service->getEntries(query1);
       
  1006         int entriesCount2= entries.count();
       
  1007         //ADD TO DB ( item, parent1, typeWrong)
       
  1008         CaEntry item2;
       
  1009         item2.setText(QString("Name"));
       
  1010         item2.setEntryTypeName(QString("TypeWRONG"));
       
  1011         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
  1012         QVERIFY(!resultItem2.isNull());
       
  1013         service->appendEntryToGroup(parentEntry->id(), resultItem2->id());
       
  1014         //GET STATE FROM THE STORAGE AFTER ADD
       
  1015         entries = service->getEntries(query1);
       
  1016         int entriesCount3 = entries.count();
       
  1017         //ADD TO DB ( item, parent2, typeOk)
       
  1018         service->appendEntryToGroup(parentEntry2->id(), resultItem1->id());
       
  1019         //GET STATE FROM THE STORAGE AFTER ADD
       
  1020         entries = service->getEntries(query1);
       
  1021         int entriesCount4 = entries.count();
       
  1022         //ADD TO DB ( group, parent1, typeOk)
       
  1023         CaEntry group1(GroupEntryRole);
       
  1024         group1.setText(QString("text"));
       
  1025         group1.setEntryTypeName(QString("TypeOK"));
       
  1026         QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
       
  1027         QVERIFY(!resultGroup1.isNull());
       
  1028         service->appendEntryToGroup(parentEntry->id(), resultGroup1->id());
       
  1029         //GET STATE FROM THE STORAGE AFTER ADD
       
  1030         entries = service->getEntries(query1);
       
  1031         int entriesCount5 = entries.count();
       
  1032 
       
  1033         //CHECK RESULTS
       
  1034         QCOMPARE(entriesCount1+1,entriesCount2);
       
  1035         QCOMPARE(entriesCount2,entriesCount3);
       
  1036         QCOMPARE(entriesCount3, entriesCount4);
       
  1037         QCOMPARE(entriesCount4, entriesCount5);
       
  1038         //CLEANUP THE STORAGE AFTER THE TEST
       
  1039         service->removeEntry(*resultItem1);
       
  1040         service->removeEntry(*resultItem2);
       
  1041         service->removeEntry(*resultGroup1);
       
  1042         service->removeEntry(*parentEntry);
       
  1043         service->removeEntry(*parentEntry2);
       
  1044     }
       
  1045 }
       
  1046 
       
  1047 // ---------------------------------------------------------------------------
       
  1048 // ---------------------------------------------------------------------------
       
  1049 //
       
  1050 void TestCaClient::TestGetEntriesByRoleParentFlags()
       
  1051 {
       
  1052     {
       
  1053         QSharedPointer<CaService> service = CaService::instance();
       
  1054         //ADD PARENT TO THE STORAGE
       
  1055         CaEntry parent(GroupEntryRole);
       
  1056         CaEntry parent2(GroupEntryRole);
       
  1057         parent.setText(QString("text"));
       
  1058         parent.setEntryTypeName(QString("type"));
       
  1059         parent2.setText(QString("text"));
       
  1060         parent2.setEntryTypeName(QString("type"));
       
  1061         QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
       
  1062         QVERIFY(!parentEntry.isNull());
       
  1063         QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
       
  1064         QVERIFY(!parentEntry2.isNull());
       
  1065 
       
  1066         //GET INITIAL STATE FROM THE STORAGE
       
  1067         CaQuery query1;
       
  1068         query1.setEntryRoles(ItemEntryRole);
       
  1069         query1.setParentId(parentEntry->id());
       
  1070         query1.setFlagsOn(UninstallEntryFlag);
       
  1071         QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
       
  1072         int entriesCount1 = entries.count();
       
  1073 
       
  1074         //ADD TO DB (item, parent1, system )
       
  1075         CaEntry item1;
       
  1076         item1.setText(QString("Name"));
       
  1077         item1.setEntryTypeName(QString("Type"));
       
  1078         item1.setFlags(UninstallEntryFlag);
       
  1079         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  1080         QVERIFY(!resultItem1.isNull());
       
  1081         service->appendEntryToGroup(parentEntry->id(), resultItem1->id());
       
  1082         //GET STATE FROM THE STORAGE AFTER ADD
       
  1083         entries = service->getEntries(query1);
       
  1084         int entriesCount2 = entries.count();
       
  1085         //ADD TO DB(item, parent1, not system )
       
  1086         CaEntry item2;
       
  1087         item2.setText(QString("Name"));
       
  1088         item2.setEntryTypeName(QString("Type"));
       
  1089         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
  1090         QVERIFY(!resultItem2.isNull());
       
  1091         service->appendEntryToGroup(parentEntry->id(), resultItem2->id());
       
  1092         //GET STATE FROM THE STORAGE AFTER ADD
       
  1093         entries = service->getEntries(query1);
       
  1094         int entriesCount3 = entries.count();
       
  1095         //ADD TO DB(item, parent2 , system )
       
  1096         service->appendEntryToGroup(parentEntry2->id(), resultItem1->id());
       
  1097         //GET STATE FROM THE STORAGE AFTER ADD
       
  1098         entries = service->getEntries(query1);
       
  1099         int entriesCount4 = entries.count();
       
  1100         //ADD TO DB(group, parent1, system )
       
  1101         CaEntry group1(GroupEntryRole);
       
  1102         group1.setText(QString("text"));
       
  1103         group1.setEntryTypeName(QString("type"));
       
  1104         group1.setFlags(UninstallEntryFlag);
       
  1105         QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
       
  1106         QVERIFY(!resultGroup1.isNull());
       
  1107         service->appendEntryToGroup(parentEntry->id(), resultGroup1->id());
       
  1108 
       
  1109         //GET STATE FROM THE STORAGE AFTER ADD
       
  1110         entries = service->getEntries(query1);
       
  1111         int entriesCount5 = entries.count();
       
  1112 
       
  1113         //CHECK RESULTS
       
  1114         QCOMPARE(entriesCount1+1,entriesCount2);
       
  1115         QCOMPARE(entriesCount2,entriesCount3);
       
  1116         QCOMPARE(entriesCount3, entriesCount4);
       
  1117         QCOMPARE(entriesCount4, entriesCount5);
       
  1118 
       
  1119         //CLEANUP THE STORAGE AFTER THE TEST
       
  1120         service->removeEntry(*parentEntry);
       
  1121         service->removeEntry(*parentEntry2);
       
  1122         service->removeEntry(*resultItem1);
       
  1123         service->removeEntry(*resultItem2);
       
  1124         service->removeEntry(*resultGroup1);
       
  1125     }
       
  1126 }
       
  1127 
       
  1128 // ---------------------------------------------------------------------------
       
  1129 // ---------------------------------------------------------------------------
       
  1130 //
       
  1131 void TestCaClient::TestGetEntriesByParentTypeFlags()
       
  1132 {
       
  1133     {
       
  1134         QSharedPointer<CaService> service = CaService::instance();
       
  1135         //ADD PARENT TO THE STORAGE
       
  1136         CaEntry parent(GroupEntryRole);
       
  1137         CaEntry parent2(GroupEntryRole);
       
  1138         parent.setText(QString("text"));
       
  1139         parent.setEntryTypeName(QString("type"));
       
  1140         parent2.setText(QString("text"));
       
  1141         parent2.setEntryTypeName(QString("type"));
       
  1142         QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
       
  1143         QVERIFY(!parentEntry.isNull());
       
  1144         QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
       
  1145         QVERIFY(!parentEntry2.isNull());
       
  1146 
       
  1147         //GET INITIAL STATE FROM THE STORAGE
       
  1148         CaQuery query1;
       
  1149         query1.setParentId(parentEntry->id());
       
  1150         query1.addEntryTypeName(QString("TypeOK"));
       
  1151         query1.setFlagsOn(UninstallEntryFlag);
       
  1152         QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
       
  1153         int entriesCount1 = entries.count();
       
  1154 
       
  1155         //ADD TO DB (parent1, typeOk, system)
       
  1156         CaEntry item1;
       
  1157         item1.setText(QString("Name"));
       
  1158         item1.setEntryTypeName(QString("TypeOK"));
       
  1159         item1.setFlags(UninstallEntryFlag);
       
  1160         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  1161         QVERIFY(!resultItem1.isNull());
       
  1162         service->appendEntryToGroup(parentEntry->id(), resultItem1->id());
       
  1163         //GET STATE FROM THE STORAGE AFTER ADD
       
  1164         entries = service->getEntries(query1);
       
  1165         int entriesCount2 = entries.count();
       
  1166         //ADD TO DB(parent1, typeOk, not system)
       
  1167         CaEntry item2;
       
  1168         item2.setText(QString("Name"));
       
  1169         item2.setEntryTypeName(QString("TypeOK"));
       
  1170         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
  1171         QVERIFY(!resultItem2.isNull());
       
  1172         service->appendEntryToGroup(parentEntry->id(), resultItem2->id());
       
  1173         //GET STATE FROM THE STORAGE AFTER ADD
       
  1174         entries = service->getEntries(query1);
       
  1175         int entriesCount3 = entries.count();
       
  1176         //ADD TO DB(parent1, typeWRONG, system)
       
  1177         CaEntry item3;
       
  1178         item3.setText(QString("Name"));
       
  1179         item3.setEntryTypeName(QString("TypeWRONG"));
       
  1180         item3.setFlags(UninstallEntryFlag);
       
  1181         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item3);
       
  1182         QVERIFY(!resultItem3.isNull());
       
  1183         service->appendEntryToGroup(parentEntry->id(), resultItem3->id());
       
  1184         //GET STATE FROM THE STORAGE AFTER ADD
       
  1185         entries = service->getEntries(query1);
       
  1186         int entriesCount4 = entries.count();
       
  1187         //ADD TO DB(parent2, typeOk, system)
       
  1188         service->appendEntryToGroup(parentEntry2->id(), resultItem1->id());
       
  1189         //GET STATE FROM THE STORAGE AFTER ADD
       
  1190         entries = service->getEntries(query1);
       
  1191         int entriesCount5 = entries.count();
       
  1192 
       
  1193         //CHECK RESULTS
       
  1194         QCOMPARE(entriesCount1+1,entriesCount2);
       
  1195         QCOMPARE(entriesCount2,entriesCount3);
       
  1196         QCOMPARE(entriesCount3, entriesCount4);
       
  1197         QCOMPARE(entriesCount4, entriesCount5);
       
  1198         //CLEANUP THE STORAGE AFTER THE TEST
       
  1199         service->removeEntry(*resultItem1);
       
  1200         service->removeEntry(*resultItem2);
       
  1201         service->removeEntry(*resultItem3);
       
  1202         service->removeEntry(*parentEntry);
       
  1203         service->removeEntry(*parentEntry2);
       
  1204     }
       
  1205 }
       
  1206 
       
  1207 // ---------------------------------------------------------------------------
       
  1208 // ---------------------------------------------------------------------------
       
  1209 //
       
  1210 void TestCaClient::TestGetEntriesByRoleParentTypeFlags()
       
  1211 {
       
  1212     {
       
  1213         QSharedPointer<CaService> service = CaService::instance();
       
  1214         //ADD PARENT TO THE STORAGE
       
  1215         CaEntry parent(GroupEntryRole);
       
  1216         CaEntry parent2(GroupEntryRole);
       
  1217         parent.setText(QString("text"));
       
  1218         parent.setEntryTypeName(QString("type"));
       
  1219         parent2.setText(QString("text"));
       
  1220         parent2.setEntryTypeName(QString("type"));
       
  1221         QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
       
  1222         QVERIFY(!parentEntry.isNull());
       
  1223         QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
       
  1224         QVERIFY(!parentEntry2.isNull());
       
  1225 
       
  1226         //GET INITIAL STATE FROM THE STORAGE
       
  1227         CaQuery query1;
       
  1228         query1.setEntryRoles(ItemEntryRole);
       
  1229         query1.setParentId(parentEntry->id());
       
  1230         query1.addEntryTypeName(QString("TypeOK"));
       
  1231         query1.setFlagsOn(UninstallEntryFlag);
       
  1232         QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
       
  1233         int entriesCount1 = entries.count();
       
  1234 
       
  1235         //ADD TO DB ( item, parent1, typeOK, system )
       
  1236         CaEntry item1;
       
  1237         item1.setText(QString("Name"));
       
  1238         item1.setEntryTypeName(QString("TypeOK"));
       
  1239         item1.setFlags(UninstallEntryFlag);
       
  1240         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  1241         QVERIFY(!resultItem1.isNull());
       
  1242         service->appendEntryToGroup(parentEntry->id(), resultItem1->id());
       
  1243         //GET STATE FROM THE STORAGE AFTER ADD
       
  1244         entries = service->getEntries(query1);
       
  1245         int entriesCount2 = entries.count();
       
  1246         //ADD TO DB ( item, parent1, typeOK, not system )
       
  1247         CaEntry item2;
       
  1248         item2.setText(QString("Name"));
       
  1249         item2.setEntryTypeName(QString("TypeOK"));
       
  1250         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
  1251         QVERIFY(!resultItem2.isNull());
       
  1252         service->appendEntryToGroup(parentEntry->id(), resultItem2->id());
       
  1253         //GET STATE FROM THE STORAGE AFTER ADD
       
  1254         entries = service->getEntries(query1);
       
  1255         int entriesCount3 = entries.count();
       
  1256         //ADD TO DB( item, parent1, typeWRONG, system )
       
  1257         CaEntry item3;
       
  1258         item3.setText(QString("Name"));
       
  1259         item3.setEntryTypeName(QString("TypeWRONG"));
       
  1260         item3.setFlags(UninstallEntryFlag);
       
  1261         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item3);
       
  1262         QVERIFY(!resultItem3.isNull());
       
  1263         service->appendEntryToGroup(parentEntry->id(), resultItem3->id());
       
  1264         //GET STATE FROM THE STORAGE AFTER ADD
       
  1265         entries = service->getEntries(query1);
       
  1266         int entriesCount4 = entries.count();
       
  1267         //ADD TO DB( item, parent2, typeOK, system )
       
  1268         service->appendEntryToGroup(parentEntry2->id(), resultItem1->id());
       
  1269         //GET STATE FROM THE STORAGE AFTER ADD
       
  1270         entries = service->getEntries(query1);
       
  1271         int entriesCount5 = entries.count();
       
  1272         //ADD TO DB( group, parent1, typeOK, system )
       
  1273         CaEntry group1(GroupEntryRole);
       
  1274         group1.setText(QString("text"));
       
  1275         group1.setEntryTypeName(QString("TypeOK"));
       
  1276         group1.setFlags(UninstallEntryFlag);
       
  1277         QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
       
  1278         QVERIFY(!resultGroup1.isNull());
       
  1279         service->appendEntryToGroup(parentEntry->id(), resultGroup1->id());
       
  1280         //GET STATE FROM THE STORAGE AFTER ADD
       
  1281         entries = service->getEntries(query1);
       
  1282         int entriesCount6 = entries.count();
       
  1283 
       
  1284         //CHECK RESULTS
       
  1285         QCOMPARE(entriesCount1+1,entriesCount2);
       
  1286         QCOMPARE(entriesCount2,entriesCount3);
       
  1287         QCOMPARE(entriesCount3, entriesCount4);
       
  1288         QCOMPARE(entriesCount4, entriesCount5);
       
  1289         QCOMPARE(entriesCount5, entriesCount6);
       
  1290 
       
  1291         //CLEANUP THE STORAGE AFTER THE TEST
       
  1292         service->removeEntry(*resultItem1);
       
  1293         service->removeEntry(*resultItem2);
       
  1294         service->removeEntry(*resultItem3);
       
  1295         service->removeEntry(*resultGroup1);
       
  1296         service->removeEntry(*parentEntry);
       
  1297         service->removeEntry(*parentEntry2);
       
  1298     }
       
  1299 }
       
  1300 
       
  1301 // ---------------------------------------------------------------------------
       
  1302 // ---------------------------------------------------------------------------
       
  1303 //
       
  1304 void TestCaClient::TestGetEntriesCount()
       
  1305 {
       
  1306     {
       
  1307         QSharedPointer<CaService> service = CaService::instance();
       
  1308         //REMOVE "OLD" ENTRIES FROM STORAGE
       
  1309         CaQuery query;
       
  1310         query.addEntryTypeName(QString("CountTest"));
       
  1311         QList<int> oldIds = service->getEntryIds(query);
       
  1312         if (oldIds.count()) {
       
  1313             service->removeEntries(oldIds);
       
  1314         }
       
  1315         //ADD TO DB
       
  1316         CaEntry item1;
       
  1317         item1.setText(QString("Name"));
       
  1318         item1.setEntryTypeName(QString("CountTest"));
       
  1319         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  1320         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1);  //item clone
       
  1321         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1);  //item clone
       
  1322         //GET STATE FROM THE STORAGE AFTER ADD
       
  1323         CaQuery query1;
       
  1324         query1.addEntryTypeName(QString("CountTest"));
       
  1325         query1.setCount(1);
       
  1326         CaQuery query2;
       
  1327         query2.addEntryTypeName(QString("CountTest"));
       
  1328         query2.setCount(2);
       
  1329         CaQuery query3;
       
  1330         query3.addEntryTypeName(QString("CountTest"));
       
  1331         query3.setCount(3);
       
  1332         QList< QSharedPointer<CaEntry> > entries1 = service->getEntries(query1);
       
  1333         QList< QSharedPointer<CaEntry> > entries2 = service->getEntries(query2);
       
  1334         QList< QSharedPointer<CaEntry> > entries3 = service->getEntries(query3);
       
  1335 
       
  1336         //CHECK RESULTS
       
  1337         QCOMPARE(entries1.count(),1);
       
  1338         QCOMPARE(entries2.count(),2);
       
  1339         QCOMPARE(entries3.count(),3);
       
  1340 
       
  1341         //CLEANUP THE STORAGE AFTER THE TEST
       
  1342         service->removeEntry(*resultItem1);
       
  1343         service->removeEntry(*resultItem2);
       
  1344         service->removeEntry(*resultItem3);
       
  1345     }
       
  1346 }
       
  1347 
       
  1348 // ---------------------------------------------------------------------------
       
  1349 // ---------------------------------------------------------------------------
       
  1350 //
       
  1351 void TestCaClient::TestGetEntriesSortCreated()
       
  1352 {
       
  1353     {
       
  1354         QSharedPointer<CaService> service = CaService::instance();
       
  1355         //REMOVE "OLD" ENTRIES FROM STORAGE
       
  1356         CaQuery query;
       
  1357         query.addEntryTypeName(QString("Sort1Test"));
       
  1358         QList<int> oldIds = service->getEntryIds(query);
       
  1359         if (oldIds.count()) {
       
  1360             service->removeEntries(oldIds);
       
  1361         }
       
  1362 
       
  1363         //ADD TO DB
       
  1364         CaEntry item1;
       
  1365         item1.setEntryTypeName(QString("Sort1Test"));
       
  1366         item1.setText(QString("Name"));
       
  1367 
       
  1368         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  1369         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1);  //item clone
       
  1370         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1);  //item clone
       
  1371 
       
  1372         //GET STATE FROM THE STORAGE AFTER ADD
       
  1373         CaQuery query1;
       
  1374         query1.addEntryTypeName(QString("Sort1Test"));
       
  1375         query1.setSort(CreatedTimestampSortAttribute, Qt::AscendingOrder);
       
  1376         QList< QSharedPointer<CaEntry> > entriesAsc = service->getEntries(query1);
       
  1377         CaQuery query2;
       
  1378         query2.addEntryTypeName(QString("Sort1Test"));
       
  1379         query2.setSort(CreatedTimestampSortAttribute, Qt::DescendingOrder);
       
  1380         QList< QSharedPointer<CaEntry> > entriesDesc = service->getEntries(query2);
       
  1381 
       
  1382         //CHECK RESULTS
       
  1383         QCOMPARE(entriesAsc.count(),3);
       
  1384         QCOMPARE(entriesDesc.count(),3);
       
  1385         QCOMPARE(entriesAsc.at(0)->id(),resultItem1->id());
       
  1386         QCOMPARE(entriesAsc.at(1)->id(),resultItem2->id());
       
  1387         QCOMPARE(entriesAsc.at(2)->id(),resultItem3->id());
       
  1388         QCOMPARE(entriesDesc.at(0)->id(),resultItem3->id());
       
  1389         QCOMPARE(entriesDesc.at(1)->id(),resultItem2->id());
       
  1390         QCOMPARE(entriesDesc.at(2)->id(),resultItem1->id());
       
  1391 
       
  1392         //CLEANUP THE STORAGE AFTER THE TEST
       
  1393         service->removeEntry(*resultItem1);
       
  1394         service->removeEntry(*resultItem2);
       
  1395         service->removeEntry(*resultItem3);
       
  1396     }
       
  1397 }
       
  1398 
       
  1399 // ---------------------------------------------------------------------------
       
  1400 // ---------------------------------------------------------------------------
       
  1401 //
       
  1402 void TestCaClient::TestGetEntriesSortDefault()
       
  1403 {
       
  1404     {
       
  1405         QSharedPointer<CaService> service = CaService::instance();
       
  1406         //REMOVE "OLD" ENTRIES FROM STORAGE
       
  1407         CaQuery query;
       
  1408         query.addEntryTypeName(QString("Sort0Test"));
       
  1409         QList<int> oldIds = service->getEntryIds(query);
       
  1410         if (oldIds.count()) {
       
  1411             service->removeEntries(oldIds);
       
  1412         }
       
  1413 
       
  1414         //ADD TO DB
       
  1415         CaEntry item1;
       
  1416         item1.setEntryTypeName(QString("Sort0Test"));
       
  1417         item1.setText(QString("Name"));
       
  1418 
       
  1419         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  1420         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1);  //item clone
       
  1421         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1);  //item clone
       
  1422 
       
  1423         //GET STATE FROM THE STORAGE AFTER ADD
       
  1424         CaQuery query1;
       
  1425         query1.addEntryTypeName(QString("Sort0Test"));
       
  1426         query1.setSort(DefaultSortAttribute, Qt::AscendingOrder);
       
  1427         QList< QSharedPointer<CaEntry> > entriesAsc = service->getEntries(query1);
       
  1428         CaQuery query2;
       
  1429         query2.addEntryTypeName(QString("Sort0Test"));
       
  1430         query2.setSort(DefaultSortAttribute, Qt::DescendingOrder);
       
  1431         QList< QSharedPointer<CaEntry> > entriesDesc = service->getEntries(query2);
       
  1432 
       
  1433         //CHECK RESULTS
       
  1434         QCOMPARE(entriesAsc.count(),3);
       
  1435         QCOMPARE(entriesDesc.count(),3);
       
  1436         QCOMPARE(entriesAsc.at(0)->id(),resultItem1->id());
       
  1437         QCOMPARE(entriesAsc.at(1)->id(),resultItem2->id());
       
  1438         QCOMPARE(entriesAsc.at(2)->id(),resultItem3->id());
       
  1439         QCOMPARE(entriesDesc.at(0)->id(),resultItem3->id());
       
  1440         QCOMPARE(entriesDesc.at(1)->id(),resultItem2->id());
       
  1441         QCOMPARE(entriesDesc.at(2)->id(),resultItem1->id());
       
  1442 
       
  1443         //CLEANUP THE STORAGE AFTER THE TEST
       
  1444         service->removeEntry(*resultItem1);
       
  1445         service->removeEntry(*resultItem2);
       
  1446         service->removeEntry(*resultItem3);
       
  1447     }
       
  1448 }
       
  1449 
       
  1450 // ---------------------------------------------------------------------------
       
  1451 // ---------------------------------------------------------------------------
       
  1452 //
       
  1453 void TestCaClient::TestGetEntriesSortName()
       
  1454 {
       
  1455     {
       
  1456         QSharedPointer<CaService> service = CaService::instance();
       
  1457         //REMOVE "OLD" ENTRIES FROM STORAGE
       
  1458         CaQuery query;
       
  1459         query.addEntryTypeName(QString("Sort2Test"));
       
  1460         QList<int> oldIds = service->getEntryIds(query);
       
  1461         if (oldIds.count()) {
       
  1462             service->removeEntries(oldIds);
       
  1463         }
       
  1464         //ADD TO DB
       
  1465         CaEntry item1;
       
  1466         item1.setText(QString("nameB"));
       
  1467         item1.setEntryTypeName(QString("Sort2Test"));
       
  1468         CaEntry item2;
       
  1469         item2.setText(QString("NameA"));
       
  1470         item2.setEntryTypeName(QString("Sort2Test"));
       
  1471         CaEntry item3;
       
  1472         item3.setText(QString("NameC"));
       
  1473         item3.setEntryTypeName(QString("Sort2Test"));
       
  1474 
       
  1475         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  1476         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
  1477         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item3);
       
  1478 
       
  1479         //GET STATE FROM THE STORAGE AFTER ADD
       
  1480         CaQuery query1;
       
  1481         query1.addEntryTypeName(QString("Sort2Test"));
       
  1482         query1.setSort(NameSortAttribute, Qt::AscendingOrder);
       
  1483         QList< QSharedPointer<CaEntry> > entriesAsc = service->getEntries(query1);
       
  1484         CaQuery query2;
       
  1485         query2.addEntryTypeName(QString("Sort2Test"));
       
  1486         query2.setSort(NameSortAttribute, Qt::DescendingOrder);
       
  1487         QList< QSharedPointer<CaEntry> > entriesDesc = service->getEntries(query2);
       
  1488 
       
  1489         //CHECK RESULTS
       
  1490         QCOMPARE(entriesAsc.count(),3);
       
  1491         QCOMPARE(entriesDesc.count(),3);
       
  1492         QCOMPARE(entriesAsc.at(0)->id(),resultItem2->id());
       
  1493         QCOMPARE(entriesAsc.at(1)->id(),resultItem1->id());
       
  1494         QCOMPARE(entriesAsc.at(2)->id(),resultItem3->id());
       
  1495         QCOMPARE(entriesDesc.at(0)->id(),resultItem3->id());
       
  1496         QCOMPARE(entriesDesc.at(1)->id(),resultItem1->id());
       
  1497         QCOMPARE(entriesDesc.at(2)->id(),resultItem2->id());
       
  1498 
       
  1499         //CLEANUP THE STORAGE AFTER THE TEST
       
  1500         service->removeEntry(*resultItem1);
       
  1501         service->removeEntry(*resultItem2);
       
  1502         service->removeEntry(*resultItem3);
       
  1503     }
       
  1504 }
       
  1505 
       
  1506 // ---------------------------------------------------------------------------
       
  1507 // ---------------------------------------------------------------------------
       
  1508 //
       
  1509 void TestCaClient::TestGetEntriesSortLast()
       
  1510 {
       
  1511     {
       
  1512         QSharedPointer<CaService> service = CaService::instance();
       
  1513         //REMOVE "OLD" ENTRIES FROM STORAGE
       
  1514         CaQuery query;
       
  1515         query.addEntryTypeName(QString("Sort3Test"));
       
  1516         QList<int> oldIds = service->getEntryIds(query);
       
  1517         if (oldIds.count()) {
       
  1518             service->removeEntries(oldIds);
       
  1519         }
       
  1520         //ADD TO DB
       
  1521         CaEntry item1;
       
  1522         item1.setEntryTypeName(QString("Sort3Test"));
       
  1523         item1.setText(QString("Name"));
       
  1524 
       
  1525         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  1526         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1);  //item clone
       
  1527         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1);  //item clone
       
  1528 
       
  1529         service->touch(*resultItem2);
       
  1530         service->touch(*resultItem1);
       
  1531         service->touch(*resultItem3);
       
  1532 
       
  1533         //GET STATE FROM THE STORAGE AFTER ADD
       
  1534         CaQuery query1;
       
  1535         query1.addEntryTypeName(QString("Sort3Test"));
       
  1536         query1.setSort(LastUsedSortAttribute, Qt::AscendingOrder);
       
  1537         QList< QSharedPointer<CaEntry> > entriesAsc = service->getEntries(query1);
       
  1538         CaQuery query2;
       
  1539         query2.addEntryTypeName(QString("Sort3Test"));
       
  1540         query2.setSort(LastUsedSortAttribute, Qt::DescendingOrder);
       
  1541         QList< QSharedPointer<CaEntry> > entriesDesc = service->getEntries(query2);
       
  1542 
       
  1543         //CHECK RESULTS
       
  1544         QCOMPARE(entriesAsc.count(),3);
       
  1545         QCOMPARE(entriesDesc.count(),3);
       
  1546         QCOMPARE(entriesAsc.at(0)->id(),resultItem2->id());
       
  1547         QCOMPARE(entriesAsc.at(1)->id(),resultItem1->id());
       
  1548         QCOMPARE(entriesAsc.at(2)->id(),resultItem3->id());
       
  1549         QCOMPARE(entriesDesc.at(0)->id(),resultItem3->id());
       
  1550         QCOMPARE(entriesDesc.at(1)->id(),resultItem1->id());
       
  1551         QCOMPARE(entriesDesc.at(2)->id(),resultItem2->id());
       
  1552 
       
  1553         //CLEANUP THE STORAGE AFTER THE TEST
       
  1554         service->removeEntry(*resultItem1);
       
  1555         service->removeEntry(*resultItem2);
       
  1556         service->removeEntry(*resultItem3);
       
  1557     }
       
  1558 }
       
  1559 
       
  1560 // ---------------------------------------------------------------------------
       
  1561 // ---------------------------------------------------------------------------
       
  1562 //
       
  1563 void TestCaClient::TestGetEntriesSortMost()
       
  1564 {
       
  1565     {
       
  1566         QSharedPointer<CaService> service = CaService::instance();
       
  1567         //REMOVE "OLD" ENTRIES FROM STORAGE
       
  1568         CaQuery query;
       
  1569         query.addEntryTypeName(QString("Sort4Test"));
       
  1570         QList<int> oldIds = service->getEntryIds(query);
       
  1571         if (oldIds.count()) {
       
  1572             service->removeEntries(oldIds);
       
  1573         }
       
  1574         //ADD TO DB
       
  1575         CaEntry item1;
       
  1576         item1.setText(QString("Name"));
       
  1577         item1.setEntryTypeName(QString("Sort4Test"));
       
  1578         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  1579         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1);  //item clone
       
  1580         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1);  //item clone
       
  1581 
       
  1582         service->touch(*resultItem2);
       
  1583         service->touch(*resultItem2);
       
  1584         service->touch(*resultItem2);
       
  1585         service->touch(*resultItem1);
       
  1586         service->touch(*resultItem1);
       
  1587         service->touch(*resultItem3);
       
  1588 
       
  1589         //GET STATE FROM THE STORAGE AFTER ADD
       
  1590         CaQuery query1;
       
  1591         query1.addEntryTypeName(QString("Sort4Test"));
       
  1592         query1.setSort(MostUsedSortAttribute, Qt::AscendingOrder);
       
  1593         QList< QSharedPointer<CaEntry> > entriesAsc = service->getEntries(query1);
       
  1594         CaQuery query2;
       
  1595         query2.addEntryTypeName(QString("Sort4Test"));
       
  1596         query2.setSort(MostUsedSortAttribute, Qt::DescendingOrder);
       
  1597         QList< QSharedPointer<CaEntry> > entriesDesc = service->getEntries(query2);
       
  1598 
       
  1599         //CHECK RESULTS
       
  1600         QCOMPARE(entriesAsc.count(),3);
       
  1601         QCOMPARE(entriesDesc.count(),3);
       
  1602         QCOMPARE(entriesAsc.at(0)->id(),resultItem3->id());
       
  1603         QCOMPARE(entriesAsc.at(1)->id(),resultItem1->id());
       
  1604         QCOMPARE(entriesAsc.at(2)->id(),resultItem2->id());
       
  1605         QCOMPARE(entriesDesc.at(0)->id(),resultItem2->id());
       
  1606         QCOMPARE(entriesDesc.at(1)->id(),resultItem1->id());
       
  1607         QCOMPARE(entriesDesc.at(2)->id(),resultItem3->id());
       
  1608 
       
  1609         //CLEANUP THE STORAGE AFTER THE TEST
       
  1610         service->removeEntry(*resultItem1);
       
  1611         service->removeEntry(*resultItem2);
       
  1612         service->removeEntry(*resultItem3);
       
  1613 
       
  1614     }
       
  1615 }
       
  1616 
       
  1617 // ---------------------------------------------------------------------------
       
  1618 // ---------------------------------------------------------------------------
       
  1619 //
       
  1620 void TestCaClient::TestGetEntriesIdsByRole()
       
  1621 {
       
  1622     {
       
  1623         //CHECK INITIAL STATE IN DB
       
  1624         QSharedPointer<CaService> service = CaService::instance();
       
  1625         CaQuery query;
       
  1626         query.setEntryRoles(ItemEntryRole);
       
  1627         QList<int> items = service->getEntryIds(query);
       
  1628         int itemsCountBefore = items.count();
       
  1629         query.setEntryRoles(GroupEntryRole);
       
  1630         QList<int> groups = service->getEntryIds(query);
       
  1631         int groupsCountBefore = groups.count();
       
  1632         query.setEntryRoles(ItemEntryRole | GroupEntryRole);
       
  1633         QList<int> itemsOrGroups = service->getEntryIds(query);
       
  1634         int itemsOrGroupsCountBefore = itemsOrGroups.count();
       
  1635 
       
  1636 
       
  1637         //ADD TO STORAGE
       
  1638         CaEntry item;
       
  1639         item.setText("testName_item");
       
  1640         item.setAttribute("attrName1_item", "attrVal1_item");
       
  1641         item.setEntryTypeName("test_item");
       
  1642         item.setFlags(RemovableEntryFlag);
       
  1643         CaEntry group(GroupEntryRole);
       
  1644         group.setText("testName_group");
       
  1645         group.setAttribute("attrName1_group", "attrVal1_group");
       
  1646         group.setEntryTypeName("test_group");
       
  1647         group.setFlags(RemovableEntryFlag);
       
  1648 
       
  1649         QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item);
       
  1650         QSharedPointer<CaEntry> resultEntry2 = service->createEntry(group);
       
  1651         QVERIFY(!resultEntry1.isNull());
       
  1652         QVERIFY(!resultEntry2.isNull());
       
  1653 
       
  1654         //GET RESULTS AFTER ADD
       
  1655         query.setEntryRoles(ItemEntryRole);
       
  1656         items = service->getEntryIds(query);
       
  1657         QCOMPARE(service->lastError(), NoErrorCode);
       
  1658         int itemsCountAfter = items.count();
       
  1659         query.setEntryRoles(GroupEntryRole);
       
  1660         groups = service->getEntryIds(query);
       
  1661         QCOMPARE(service->lastError(), NoErrorCode);
       
  1662         int groupsCountAfter = groups.count();
       
  1663         query.setEntryRoles(ItemEntryRole | GroupEntryRole);
       
  1664         itemsOrGroups = service->getEntryIds(query);
       
  1665         QCOMPARE(service->lastError(), NoErrorCode);
       
  1666         int itemsOrGroupsCountAfter = itemsOrGroups.count();
       
  1667 
       
  1668         //CHECK RESULTS
       
  1669         QCOMPARE(itemsCountAfter, itemsCountBefore+1);
       
  1670         QCOMPARE(groupsCountAfter, groupsCountBefore+1);
       
  1671         QCOMPARE(itemsOrGroupsCountAfter, itemsOrGroupsCountBefore+2);
       
  1672 
       
  1673         //CLEANUP THE STORAGE AFTER THE TEST
       
  1674         service->removeEntry(*resultEntry1);
       
  1675         service->removeEntry(*resultEntry2);
       
  1676     }
       
  1677 }
       
  1678 
       
  1679 // ---------------------------------------------------------------------------
       
  1680 // ---------------------------------------------------------------------------
       
  1681 //
       
  1682 void TestCaClient::TestGetEntriesIdsByParent()
       
  1683 {
       
  1684     {
       
  1685         //ADD TEST DATA TO THE STORAGE
       
  1686         QSharedPointer<CaService> service = CaService::instance();
       
  1687         CaEntry group(GroupEntryRole);
       
  1688         group.setText("testName_group");
       
  1689         group.setAttribute("attrName1_group", "attrVal1_group");
       
  1690         group.setEntryTypeName("test_group");
       
  1691         group.setFlags(RemovableEntryFlag);
       
  1692         QSharedPointer<CaEntry> parentEntry = service->createEntry(group);
       
  1693         QVERIFY(!parentEntry.isNull());
       
  1694         CaEntry item;
       
  1695         item.setText("testName_item");
       
  1696         item.setAttribute("attrName1_item", "attrVal1_item");
       
  1697         item.setEntryTypeName("test_item");
       
  1698         item.setFlags(RemovableEntryFlag);
       
  1699         QSharedPointer<CaEntry> childEntry = service->createEntry(item);
       
  1700         QVERIFY(!childEntry.isNull());
       
  1701 
       
  1702         //PREPARE QUERY
       
  1703         CaQuery query;
       
  1704         query.setParentId(parentEntry->id());
       
  1705         QList<int> entries = service->getEntryIds(query);
       
  1706         int countBefore = entries.count();
       
  1707 
       
  1708         //APPEND ENTRY TO THE GROUP
       
  1709         service->appendEntryToGroup(parentEntry->id(),childEntry->id());
       
  1710         entries = service->getEntryIds(query);
       
  1711         int countAfter = entries.count();
       
  1712 
       
  1713         //CHECK RESULTS
       
  1714         QCOMPARE(countBefore, 0);
       
  1715         QCOMPARE(countAfter, 1);
       
  1716 
       
  1717         //CLEANUP THE STORAGE AFTER THE TEST
       
  1718         service->removeEntry(*childEntry);
       
  1719         service->removeEntry(*parentEntry);
       
  1720     }
       
  1721 }
       
  1722 
       
  1723 // ---------------------------------------------------------------------------
       
  1724 // ---------------------------------------------------------------------------
       
  1725 //
       
  1726 void TestCaClient::TestGetEntriesIdsByType1()
       
  1727 {
       
  1728     {
       
  1729         //CHECK INITIAL STATE IN DB
       
  1730         QSharedPointer<CaService> service = CaService::instance();
       
  1731         CaQuery query;
       
  1732         QStringList strList;
       
  1733         strList << QString("WRONGTYPENAME");
       
  1734         query.setEntryTypeNames(strList);
       
  1735         QList<int> entriesWrongType = service->getEntryIds(query);
       
  1736         int countWrongBefore = entriesWrongType.count();
       
  1737         strList.clear();
       
  1738         strList << QString("WRONGTYPENAME");
       
  1739         strList << QString("test_item1");
       
  1740         strList << QString("test_item2");
       
  1741         query.setEntryTypeNames(strList);
       
  1742         QList<int> entriesWrong12 = service->getEntryIds(query);
       
  1743         int countWrong12Before = entriesWrong12.count();
       
  1744         strList.clear();
       
  1745         strList << QString("test_item1");
       
  1746         query.setEntryTypeNames(strList);
       
  1747         QList<int> entries1 = service->getEntryIds(query);
       
  1748         int count1Before = entries1.count();
       
  1749         strList.clear();
       
  1750         strList << QString("test_item2");
       
  1751         query.setEntryTypeNames(strList);
       
  1752         QList<int> entries2 = service->getEntryIds(query);
       
  1753         int count2Before = entries2.count();
       
  1754         strList.clear();
       
  1755         strList << QString("test_item1");
       
  1756         strList << QString("test_item2");
       
  1757         query.setEntryTypeNames(strList);
       
  1758         QList<int> entries12 = service->getEntryIds(query);
       
  1759         int count12Before = entries12.count();
       
  1760 
       
  1761         //ADD TEST DATA TO THE STORAGE
       
  1762         CaEntry item1;
       
  1763         item1.setText("testName_item1");
       
  1764         item1.setAttribute("attrName1_item", "attrVal1_item");
       
  1765         item1.setEntryTypeName("test_item1");
       
  1766         CaEntry item2;
       
  1767         item2.setText("testName_item2");
       
  1768         item2.setAttribute("attrName2_item", "attrVal2_item");
       
  1769         item2.setEntryTypeName("test_item2");
       
  1770         QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
       
  1771         QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
       
  1772         QVERIFY(!resultEntry1.isNull());
       
  1773         QVERIFY(!resultEntry2.isNull());
       
  1774 
       
  1775         //GET STATE FROM THE STORAGE AFTER ADD
       
  1776         strList.clear();
       
  1777         strList << QString("WRONGTYPENAME");
       
  1778         query.setEntryTypeNames(strList);
       
  1779         query.setEntryTypeNames(strList);
       
  1780         entriesWrongType = service->getEntryIds(query);
       
  1781         int countWrongAfter = entriesWrongType.count();
       
  1782         strList.clear();
       
  1783         strList << QString("WRONGTYPENAME");
       
  1784         strList << QString("test_item1");
       
  1785         strList << QString("test_item2");
       
  1786         query.setEntryTypeNames(strList);
       
  1787         entriesWrong12 = service->getEntryIds(query);
       
  1788         int countWrong12After = entriesWrong12.count();
       
  1789         strList.clear();
       
  1790         strList << QString("test_item1");
       
  1791         query.setEntryTypeNames(strList);
       
  1792         entries1 = service->getEntryIds(query);
       
  1793         int count1After = entries1.count();
       
  1794         strList.clear();
       
  1795         strList << QString("test_item2");
       
  1796         query.setEntryTypeNames(strList);
       
  1797         entries2 = service->getEntryIds(query);
       
  1798         int count2After = entries2.count();
       
  1799         strList.clear();
       
  1800         strList << QString("test_item1");
       
  1801         strList << QString("test_item2");
       
  1802         query.setEntryTypeNames(strList);
       
  1803         entries12 = service->getEntryIds(query);
       
  1804         int count12After = entries12.count();
       
  1805 
       
  1806         //CHECK RESULTS
       
  1807         QCOMPARE(countWrongBefore,countWrongAfter);
       
  1808         QCOMPARE(countWrong12Before+2,countWrong12After);
       
  1809         QCOMPARE(count1Before+1,count1After);
       
  1810         QCOMPARE(count2Before+1,count2After);
       
  1811         QCOMPARE(count12Before+2,count12After);
       
  1812 
       
  1813         //CLEANUP THE STORAGE AFTER THE TEST
       
  1814         service->removeEntry(*resultEntry1);
       
  1815         service->removeEntry(*resultEntry2);
       
  1816     }
       
  1817 }
       
  1818 
       
  1819 // ---------------------------------------------------------------------------
       
  1820 // ---------------------------------------------------------------------------
       
  1821 //
       
  1822 void TestCaClient::TestGetEntriesIdsByType2()
       
  1823 {
       
  1824     {
       
  1825         //CHECK INITIAL STATE IN DB
       
  1826         QSharedPointer<CaService> service = CaService::instance();
       
  1827         CaQuery query;
       
  1828         QStringList strList;
       
  1829         strList << QString("test_item1");
       
  1830         query.setEntryTypeNames(strList);
       
  1831         query.addEntryTypeName(QString("test_item2"));
       
  1832         QList<int> entries12 = service->getEntryIds(query);
       
  1833         int count12Before = entries12.count();
       
  1834 
       
  1835         //ADD TEST DATA TO THE STORAGE
       
  1836         CaEntry item1;
       
  1837         item1.setText("testName_item1");
       
  1838         item1.setAttribute("attrName1_item", "attrVal1_item");
       
  1839         item1.setEntryTypeName("test_item1");
       
  1840         CaEntry item2;
       
  1841         item2.setText("testName_item2");
       
  1842         item2.setAttribute("attrName2_item", "attrVal2_item");
       
  1843         item2.setEntryTypeName("test_item2");
       
  1844 
       
  1845         QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
       
  1846         QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
       
  1847         QVERIFY(!resultEntry1.isNull());
       
  1848         QVERIFY(!resultEntry2.isNull());
       
  1849 
       
  1850         //GET STATE FROM THE STORAGE AFTER ADD
       
  1851         strList.clear();
       
  1852         strList << QString("test_item1");
       
  1853         query.setEntryTypeNames(strList);
       
  1854         query.addEntryTypeName(QString("test_item2"));
       
  1855         entries12 = service->getEntryIds(query);
       
  1856         int count12After = entries12.count();
       
  1857 
       
  1858         //CHECK RESULTS
       
  1859         QCOMPARE(count12Before+2,count12After);
       
  1860 
       
  1861         //CLEANUP THE STORAGE AFTER THE TEST
       
  1862         service->removeEntry(*resultEntry1);
       
  1863         service->removeEntry(*resultEntry2);
       
  1864     }
       
  1865 }
       
  1866 
       
  1867 // ---------------------------------------------------------------------------
       
  1868 // ---------------------------------------------------------------------------
       
  1869 //
       
  1870 void TestCaClient::TestGetEntriesIdsByFlagsOn()
       
  1871 {
       
  1872     {
       
  1873         //CHECK INITIAL STATE IN DB
       
  1874         QSharedPointer<CaService> service = CaService::instance();
       
  1875         CaQuery query1;
       
  1876         query1.setFlagsOn(UninstallEntryFlag);
       
  1877         CaQuery query2;
       
  1878         query2.setFlagsOn(RemovableEntryFlag);
       
  1879         CaQuery query3;
       
  1880         query3.setFlagsOn(UninstallEntryFlag|RemovableEntryFlag);
       
  1881         QList<int> entriesSystem = service->getEntryIds(query1);
       
  1882         int systemCountBefore = entriesSystem.count();
       
  1883         QList<int> entriesRemovable = service->getEntryIds(query2);
       
  1884         int removableCountBefore = entriesRemovable.count();
       
  1885         QList<int> entriesSysRem = service->getEntryIds(query3);
       
  1886         int sysremoveCountBefore = entriesSysRem.count();
       
  1887         //ADD TO DB
       
  1888         CaEntry item1;
       
  1889         item1.setText("testName_item1");
       
  1890         item1.setAttribute("attrName1_item", "attrVal1_item");
       
  1891         item1.setEntryTypeName("test_item1");
       
  1892         item1.setFlags(UninstallEntryFlag);
       
  1893         CaEntry item2;
       
  1894         item2.setText("testName_item2");
       
  1895         item2.setAttribute("attrName2_item", "attrVal2_item");
       
  1896         item2.setEntryTypeName("test_item2");
       
  1897         item2.setFlags(UninstallEntryFlag | RemovableEntryFlag);
       
  1898         QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
       
  1899         QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
       
  1900         QVERIFY(!resultEntry1.isNull());
       
  1901         QVERIFY(!resultEntry2.isNull());
       
  1902         //CHECK STATE IN THE STORAGE AFTER ADD
       
  1903         entriesSystem = service->getEntryIds(query1);
       
  1904         int systemCountAfter = entriesSystem.count();
       
  1905         entriesRemovable = service->getEntryIds(query2);
       
  1906         int removableCountAfter = entriesRemovable.count();
       
  1907         entriesSysRem = service->getEntryIds(query3);
       
  1908         int sysremoveCountAfter = entriesSysRem.count();
       
  1909         //CHECK RESULTS
       
  1910         QCOMPARE(systemCountBefore+2,systemCountAfter);
       
  1911         QCOMPARE(removableCountBefore+1,removableCountAfter);
       
  1912         QCOMPARE(sysremoveCountBefore+1,sysremoveCountAfter);
       
  1913         //CLEANUP THE STORAGE AFTER THE TEST
       
  1914         service->removeEntry(*resultEntry1);
       
  1915         service->removeEntry(*resultEntry2);
       
  1916     }
       
  1917 }
       
  1918 
       
  1919 // ---------------------------------------------------------------------------
       
  1920 // ---------------------------------------------------------------------------
       
  1921 //
       
  1922 void TestCaClient::TestGetEntriesIdsByFlagsOff()
       
  1923 {
       
  1924     {
       
  1925         //GET INITIAL STATE FROM THE STORAGE
       
  1926         QSharedPointer<CaService> service = CaService::instance();
       
  1927         CaQuery query1;
       
  1928         query1.setFlagsOff(UninstallEntryFlag);
       
  1929         CaQuery query2;
       
  1930         query2.setFlagsOff(RemovableEntryFlag);
       
  1931         CaQuery query3;
       
  1932         query3.setFlagsOff(UninstallEntryFlag|RemovableEntryFlag);
       
  1933         QList<int> entriesSystem = service->getEntryIds(query1);
       
  1934         int systemCountBefore = entriesSystem.count();
       
  1935         QList<int> entriesRemovable = service->getEntryIds(query2);
       
  1936         int removableCountBefore = entriesRemovable.count();
       
  1937         QList<int> entriesSysRem = service->getEntryIds(query3);
       
  1938         int sysremoveCountBefore = entriesSysRem.count();
       
  1939         //ADD TO DB
       
  1940         CaEntry item1;
       
  1941         item1.setText("testName_item1");
       
  1942         item1.setAttribute("attrName1_item", "attrVal1_item");
       
  1943         item1.setEntryTypeName("test_item1");
       
  1944         item1.setFlags(UninstallEntryFlag);
       
  1945         CaEntry item2;
       
  1946         item2.setText("testName_item2");
       
  1947         item2.setAttribute("attrName2_item", "attrVal2_item");
       
  1948         item2.setEntryTypeName("test_item2");
       
  1949         item2.setFlags(RemovableEntryFlag);
       
  1950 
       
  1951         QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
       
  1952         QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
       
  1953         QVERIFY(!resultEntry1.isNull());
       
  1954         QVERIFY(!resultEntry2.isNull());
       
  1955 
       
  1956         //GET STATE FROM THE STORAGE AFTER ADD
       
  1957         entriesSystem = service->getEntryIds(query1);
       
  1958         int systemCountAfter = entriesSystem.count();
       
  1959         entriesRemovable = service->getEntryIds(query2);
       
  1960         int removableCountAfter = entriesRemovable.count();
       
  1961         entriesSysRem = service->getEntryIds(query3);
       
  1962         int sysremoveCountAfter = entriesSysRem.count();
       
  1963         //CHECK RESULTS
       
  1964         QCOMPARE(systemCountBefore+1,systemCountAfter);
       
  1965         QCOMPARE(removableCountBefore+1,removableCountAfter);
       
  1966         QCOMPARE(sysremoveCountBefore,sysremoveCountAfter);
       
  1967         //CLEANUP THE STORAGE AFTER THE TEST
       
  1968         service->removeEntry(*resultEntry1);
       
  1969         service->removeEntry(*resultEntry2);
       
  1970     }
       
  1971 }
       
  1972 
       
  1973 // ---------------------------------------------------------------------------
       
  1974 // ---------------------------------------------------------------------------
       
  1975 //
       
  1976 void TestCaClient::TestGetEntriesIdsByFlagsOnOff()
       
  1977 {
       
  1978     {
       
  1979         //GET INITIAL STATE FROM THE STORAGE
       
  1980         QSharedPointer<CaService> service = CaService::instance();
       
  1981         CaQuery query1;
       
  1982         query1.setFlagsOn(UninstallEntryFlag);
       
  1983         query1.setFlagsOff(RemovableEntryFlag);
       
  1984         QList<int> entries = service->getEntryIds(query1);
       
  1985         int entriesCount1 = entries.count();
       
  1986         //ADD TO DB
       
  1987         CaEntry item1;
       
  1988         item1.setText("testName_item1");
       
  1989         item1.setAttribute("attrName1_item", "attrVal1_item");
       
  1990         item1.setEntryTypeName("test_item1");
       
  1991         item1.setFlags(UninstallEntryFlag);
       
  1992         QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
       
  1993         QVERIFY(!resultEntry1.isNull());
       
  1994         //GET STATE FROM THE STORAGE AFTER ADD
       
  1995         entries = service->getEntryIds(query1);
       
  1996         int entriesCount2 = entries.count();
       
  1997         //ADD TO DB
       
  1998         CaEntry item2;
       
  1999         item2.setText("testName_item1");
       
  2000         item2.setAttribute("attrName1_item", "attrVal1_item");
       
  2001         item2.setEntryTypeName("test_item1");
       
  2002         item2.setFlags(RemovableEntryFlag);
       
  2003         QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
       
  2004         QVERIFY(!resultEntry2.isNull());
       
  2005         //GET STATE FROM THE STORAGE AFTER ADD
       
  2006         entries = service->getEntryIds(query1);
       
  2007         int entriesCount3 = entries.count();
       
  2008         //ADD TO DB
       
  2009         CaEntry item3;
       
  2010         item3.setText("testName_item1");
       
  2011         item3.setAttribute("attrName1_item", "attrVal1_item");
       
  2012         item3.setEntryTypeName("test_item1");
       
  2013         item3.setFlags(UninstallEntryFlag|RemovableEntryFlag);
       
  2014         QSharedPointer<CaEntry> resultEntry3 = service->createEntry(item3);
       
  2015         QVERIFY(!resultEntry3.isNull());
       
  2016         //GET STATE FROM THE STORAGE AFTER ADD
       
  2017         entries = service->getEntryIds(query1);
       
  2018         int entriesCount4 = entries.count();
       
  2019         //CHECK RESULTS
       
  2020         QCOMPARE(entriesCount1+1,entriesCount2);
       
  2021         QCOMPARE(entriesCount2,entriesCount3);
       
  2022         QCOMPARE(entriesCount3,entriesCount4);
       
  2023         //CLEANUP THE STORAGE AFTER THE TEST
       
  2024         service->removeEntry(*resultEntry1);
       
  2025         service->removeEntry(*resultEntry2);
       
  2026         service->removeEntry(*resultEntry3);
       
  2027     }
       
  2028 }
       
  2029 
       
  2030 // ---------------------------------------------------------------------------
       
  2031 // ---------------------------------------------------------------------------
       
  2032 //
       
  2033 void TestCaClient::TestGetEntriesIdsByRoleParent()
       
  2034 {
       
  2035     {
       
  2036         QSharedPointer<CaService> service = CaService::instance();
       
  2037         //ADD PARENT ENTRY TO THE STORAGE
       
  2038         CaEntry parent(GroupEntryRole);
       
  2039         CaEntry parent2(GroupEntryRole);
       
  2040         parent.setText(QString("text"));
       
  2041         parent.setEntryTypeName(QString("TypeOK"));
       
  2042         parent2.setText(QString("text"));
       
  2043         parent2.setEntryTypeName(QString("TypeOK"));
       
  2044 
       
  2045         QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
       
  2046         QVERIFY(!parentEntry.isNull());
       
  2047         QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
       
  2048         QVERIFY(!parentEntry2.isNull());
       
  2049 
       
  2050         //GET INITIAL STATE FROM THE STORAGE
       
  2051         CaQuery query1;
       
  2052         query1.setEntryRoles(ItemEntryRole);
       
  2053         query1.setParentId(parentEntry->id());
       
  2054         QList<int> entries = service->getEntryIds(query1);
       
  2055         int entriesCount1 = entries.count();
       
  2056 
       
  2057         //ADD TO DB (item, parent2)
       
  2058         CaEntry item1;
       
  2059         item1.setText(QString("Name"));
       
  2060         item1.setEntryTypeName(QString("Type"));
       
  2061         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  2062         QVERIFY(!resultItem1.isNull());
       
  2063         service->appendEntryToGroup(parentEntry2->id(),resultItem1->id());
       
  2064         //GET STATE FROM THE STORAGE AFTER ADD
       
  2065         entries = service->getEntryIds(query1);
       
  2066         int entriesCount2 = entries.count();
       
  2067         //ADD TO DB (group, parent2)
       
  2068         CaEntry group1(GroupEntryRole);
       
  2069         group1.setText(QString("text"));
       
  2070         group1.setEntryTypeName(QString("TypeOK"));
       
  2071         QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
       
  2072         QVERIFY(!resultGroup1.isNull());
       
  2073         service->appendEntryToGroup(parentEntry2->id(),resultGroup1->id());
       
  2074         //GET STATE FROM THE STORAGE AFTER ADD
       
  2075         entries = service->getEntryIds(query1);
       
  2076         int entriesCount3 = entries.count();
       
  2077         //ADD TO DB (item, parent1)
       
  2078         service->appendEntryToGroup(parentEntry->id(),resultItem1->id());
       
  2079         //GET STATE FROM THE STORAGE AFTER ADD
       
  2080         entries = service->getEntryIds(query1);
       
  2081         int entriesCount4 = entries.count();
       
  2082         //ADD TO DB (group, parent1)
       
  2083         service->appendEntryToGroup(parentEntry->id(),resultGroup1->id());
       
  2084         //GET STATE FROM THE STORAGE AFTER ADD
       
  2085         entries = service->getEntryIds(query1);
       
  2086         int entriesCount5 = entries.count();
       
  2087 
       
  2088         //CHECK RESULTS
       
  2089         QCOMPARE(entriesCount1,entriesCount2);
       
  2090         QCOMPARE(entriesCount2,entriesCount3);
       
  2091         QCOMPARE(entriesCount3+1, entriesCount4);
       
  2092         QCOMPARE(entriesCount4, entriesCount5);
       
  2093 
       
  2094         //CLEANUP THE STORAGE AFTER THE TEST
       
  2095         service->removeEntry(*resultItem1);
       
  2096         service->removeEntry(*resultGroup1);
       
  2097         service->removeEntry(*parentEntry);
       
  2098         service->removeEntry(*parentEntry2);
       
  2099     }
       
  2100 }
       
  2101 
       
  2102 // ---------------------------------------------------------------------------
       
  2103 // ---------------------------------------------------------------------------
       
  2104 //
       
  2105 void TestCaClient::TestGetEntriesIdsByRoleType()
       
  2106 {
       
  2107     {
       
  2108         //GET INITIAL STATE FROM THE STORAGE
       
  2109         QSharedPointer<CaService> service = CaService::instance();
       
  2110         CaQuery query1;
       
  2111         query1.setEntryRoles(ItemEntryRole);
       
  2112         query1.addEntryTypeName(QString("TestTypeName"));
       
  2113         QList<int> entries = service->getEntryIds(query1);
       
  2114         int entriesCount1 = entries.count();
       
  2115         //ADD TO DB (item, typeOk)
       
  2116         CaEntry item1;
       
  2117         item1.setText(QString("Name"));
       
  2118         item1.setEntryTypeName(QString("TestTypeName"));
       
  2119         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  2120         QVERIFY(!resultItem1.isNull());
       
  2121         //GET STATE FROM THE STORAGE AFTER ADD
       
  2122         entries = service->getEntryIds(query1);
       
  2123         int entriesCount2 = entries.count();
       
  2124         //ADD TO DB (item, typeWrong)
       
  2125         CaEntry item2;
       
  2126         item2.setText(QString("Name"));
       
  2127         item2.setEntryTypeName(QString("TestTypeWRONG"));
       
  2128         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
  2129         QVERIFY(!resultItem2.isNull());
       
  2130         //GET STATE FROM THE STORAGE AFTER ADD
       
  2131         entries = service->getEntryIds(query1);
       
  2132         int entriesCount3 = entries.count();
       
  2133         //ADD TO DB (group, typeOk)
       
  2134         CaEntry group1(GroupEntryRole);
       
  2135         group1.setText(QString("text"));
       
  2136         group1.setEntryTypeName(QString("TestTypeName"));
       
  2137         QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
       
  2138         QVERIFY(!resultGroup1.isNull());
       
  2139         //GET STATE FROM THE STORAGE AFTER ADD
       
  2140         entries = service->getEntryIds(query1);
       
  2141         int entriesCount4 = entries.count();
       
  2142         //ADD TO DB (group, typeWrong)
       
  2143         CaEntry group2(GroupEntryRole);
       
  2144         group2.setText(QString("text"));
       
  2145         group2.setEntryTypeName(QString("TestTypeWRONG"));
       
  2146         QSharedPointer<CaEntry> resultGroup2 = service->createEntry(group2);
       
  2147         QVERIFY(!resultGroup2.isNull());
       
  2148         //GET STATE FROM THE STORAGE AFTER ADD
       
  2149         entries = service->getEntryIds(query1);
       
  2150         int entriesCount5 = entries.count();
       
  2151 
       
  2152         //CHECK RESULTS
       
  2153         QCOMPARE(entriesCount1+1,entriesCount2);
       
  2154         QCOMPARE(entriesCount2,entriesCount3);
       
  2155         QCOMPARE(entriesCount3, entriesCount4);
       
  2156         QCOMPARE(entriesCount4, entriesCount5);
       
  2157 
       
  2158         //CLEANUP THE STORAGE AFTER THE TEST
       
  2159         service->removeEntry(*resultItem1);
       
  2160         service->removeEntry(*resultGroup1);
       
  2161         service->removeEntry(*resultItem2);
       
  2162         service->removeEntry(*resultGroup2);
       
  2163     }
       
  2164 }
       
  2165 
       
  2166 // ---------------------------------------------------------------------------
       
  2167 // ---------------------------------------------------------------------------
       
  2168 //
       
  2169 void TestCaClient::TestGetEntriesIdsByRoleFlags()
       
  2170 {
       
  2171     {
       
  2172         //GET INITIAL STATE FROM THE STORAGE
       
  2173         QSharedPointer<CaService> service = CaService::instance();
       
  2174         CaQuery query1;
       
  2175         query1.setEntryRoles(ItemEntryRole);
       
  2176         query1.setFlagsOn(UninstallEntryFlag);
       
  2177         QList<int> entries = service->getEntryIds(query1);
       
  2178         int entriesCount1 = entries.count();
       
  2179         //ADD TO DB (item, systemOn)
       
  2180         CaEntry item1;
       
  2181         item1.setText(QString("Name"));
       
  2182         item1.setEntryTypeName(QString("Type"));
       
  2183         item1.setFlags(UninstallEntryFlag);
       
  2184         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  2185         QVERIFY(!resultItem1.isNull());
       
  2186         //GET STATE FROM THE STORAGE AFTER ADD
       
  2187         entries = service->getEntryIds(query1);
       
  2188         int entriesCount2 = entries.count();
       
  2189         //ADD TO DB (item, systemOff)
       
  2190         CaEntry item2;
       
  2191         item2.setText(QString("Name"));
       
  2192         item2.setEntryTypeName(QString("Type"));
       
  2193         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
  2194         QVERIFY(!resultItem2.isNull());
       
  2195         //GET STATE FROM THE STORAGE AFTER ADD
       
  2196         entries = service->getEntryIds(query1);
       
  2197         int entriesCount3 = entries.count();
       
  2198         //ADD TO DB(group, systemOn)
       
  2199         CaEntry group1(GroupEntryRole);
       
  2200         group1.setText(QString("text"));
       
  2201         group1.setEntryTypeName(QString("type"));
       
  2202         group1.setFlags(UninstallEntryFlag);
       
  2203         QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
       
  2204         QVERIFY(!resultGroup1.isNull());
       
  2205         //GET STATE FROM THE STORAGE AFTER ADD
       
  2206         entries = service->getEntryIds(query1);
       
  2207         int entriesCount4 = entries.count();
       
  2208         //ADD TO DB(group, systemoff)
       
  2209         CaEntry group2(GroupEntryRole);
       
  2210         group2.setText(QString("text"));
       
  2211         group2.setEntryTypeName(QString("type"));
       
  2212         QSharedPointer<CaEntry> resultGroup2 = service->createEntry(group2);
       
  2213         QVERIFY(!resultGroup2.isNull());
       
  2214         //GET STATE FROM THE STORAGE AFTER ADD
       
  2215         entries = service->getEntryIds(query1);
       
  2216         int entriesCount5 = entries.count();
       
  2217         //CHECK RESULTS
       
  2218         QCOMPARE(entriesCount1+1,entriesCount2);
       
  2219         QCOMPARE(entriesCount2,entriesCount3);
       
  2220         QCOMPARE(entriesCount3, entriesCount4);
       
  2221         QCOMPARE(entriesCount4, entriesCount5);
       
  2222         //CLEANUP THE STORAGE AFTER THE TEST
       
  2223         service->removeEntry(*resultItem1);
       
  2224         service->removeEntry(*resultGroup1);
       
  2225         service->removeEntry(*resultItem2);
       
  2226         service->removeEntry(*resultGroup2);
       
  2227     }
       
  2228 }
       
  2229 
       
  2230 // ---------------------------------------------------------------------------
       
  2231 // ---------------------------------------------------------------------------
       
  2232 //
       
  2233 void TestCaClient::TestGetEntriesIdsByParentType()
       
  2234 {
       
  2235     {
       
  2236         QSharedPointer<CaService> service = CaService::instance();
       
  2237         //ADD PARENT TO THE STORAGE
       
  2238         CaEntry parent(GroupEntryRole);
       
  2239         CaEntry parent2(GroupEntryRole);
       
  2240         parent.setText(QString("text"));
       
  2241         parent.setEntryTypeName(QString("type"));
       
  2242         parent2.setText(QString("text"));
       
  2243         parent2.setEntryTypeName(QString("type"));
       
  2244 
       
  2245         QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
       
  2246         QVERIFY(!parentEntry.isNull());
       
  2247         QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
       
  2248         QVERIFY(!parentEntry2.isNull());
       
  2249 
       
  2250         //GET INITIAL STATE FROM THE STORAGE
       
  2251         CaQuery query1;
       
  2252         query1.setParentId(parentEntry->id());
       
  2253         query1.addEntryTypeName(QString("typeOK"));
       
  2254         QList<int> entries = service->getEntryIds(query1);
       
  2255         int entriesCount1 = entries.count();
       
  2256         //ADD TO DB (parent1, typeok)
       
  2257         CaEntry item1;
       
  2258         item1.setText(QString("Name"));
       
  2259         item1.setEntryTypeName(QString("typeOK"));
       
  2260         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  2261         QVERIFY(!resultItem1.isNull());
       
  2262         service->appendEntryToGroup(parentEntry->id(),resultItem1->id());
       
  2263         //GET STATE FROM THE STORAGE AFTER ADD
       
  2264         entries = service->getEntryIds(query1);
       
  2265         int entriesCount2 = entries.count();
       
  2266         //ADD TO DB (parent1, typeWrong)
       
  2267         CaEntry item2;
       
  2268         item2.setText(QString("Name"));
       
  2269         item2.setEntryTypeName(QString("typeWrong"));
       
  2270         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
  2271         QVERIFY(!resultItem2.isNull());
       
  2272         service->appendEntryToGroup(parentEntry->id(),resultItem2->id());
       
  2273         //GET STATE FROM THE STORAGE AFTER ADD
       
  2274         entries = service->getEntryIds(query1);
       
  2275         int entriesCount3 = entries.count();
       
  2276         //ADD TO DB (parent2, typeOk)
       
  2277         service->appendEntryToGroup(parentEntry2->id(),resultItem1->id());
       
  2278         //GET STATE FROM THE STORAGE AFTER ADD
       
  2279         entries = service->getEntryIds(query1);
       
  2280         int entriesCount4 = entries.count();
       
  2281         //ADD TO DB (parent2,typeWrong)
       
  2282         service->appendEntryToGroup(parentEntry2->id(),resultItem2->id());
       
  2283         //GET STATE FROM THE STORAGE AFTER ADD
       
  2284         entries = service->getEntryIds(query1);
       
  2285         int entriesCount5 = entries.count();
       
  2286         //CHECK RESULTS
       
  2287         QCOMPARE(entriesCount1+1,entriesCount2);
       
  2288         QCOMPARE(entriesCount2,entriesCount3);
       
  2289         QCOMPARE(entriesCount3, entriesCount4);
       
  2290         QCOMPARE(entriesCount4, entriesCount5);
       
  2291         //CLEANUP THE STORAGE AFTER THE TEST
       
  2292         service->removeEntry(*resultItem1);
       
  2293         service->removeEntry(*resultItem2);
       
  2294         service->removeEntry(*parentEntry);
       
  2295         service->removeEntry(*parentEntry2);
       
  2296     }
       
  2297 }
       
  2298 
       
  2299 // ---------------------------------------------------------------------------
       
  2300 // ---------------------------------------------------------------------------
       
  2301 //
       
  2302 void TestCaClient::TestGetEntriesIdsByParentFlags()
       
  2303 {
       
  2304     {
       
  2305         QSharedPointer<CaService> service = CaService::instance();
       
  2306         //ADD PARENT TO THE STORAGE
       
  2307         CaEntry parent(GroupEntryRole);
       
  2308         CaEntry parent2(GroupEntryRole);
       
  2309         parent.setText(QString("text"));
       
  2310         parent.setEntryTypeName(QString("type"));
       
  2311         parent2.setText(QString("text"));
       
  2312         parent2.setEntryTypeName(QString("type"));
       
  2313         QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
       
  2314         QVERIFY(!parentEntry.isNull());
       
  2315         QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
       
  2316         QVERIFY(!parentEntry2.isNull());
       
  2317 
       
  2318         //GET INITIAL STATE FROM THE STORAGE
       
  2319         CaQuery query1;
       
  2320         query1.setParentId(parentEntry->id());
       
  2321         query1.setFlagsOn(UninstallEntryFlag);
       
  2322         QList<int> entries = service->getEntryIds(query1);
       
  2323         int entriesCount1 = entries.count();
       
  2324 
       
  2325         //ADD TO DB (parent1, system)
       
  2326         CaEntry item1;
       
  2327         item1.setText(QString("Name"));
       
  2328         item1.setEntryTypeName(QString("Type"));
       
  2329         item1.setFlags(UninstallEntryFlag);
       
  2330         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  2331         QVERIFY(!resultItem1.isNull());
       
  2332         service->appendEntryToGroup(parentEntry->id(),resultItem1->id());
       
  2333         //GET STATE FROM THE STORAGE AFTER ADD
       
  2334         entries = service->getEntryIds(query1);
       
  2335         int entriesCount2 = entries.count();
       
  2336         //ADD TO DB (parent1, not system)
       
  2337         CaEntry item2;
       
  2338         item2.setText(QString("Name"));
       
  2339         item2.setEntryTypeName(QString("Type"));
       
  2340         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
  2341         QVERIFY(!resultItem2.isNull());
       
  2342         service->appendEntryToGroup(parentEntry->id(),resultItem2->id());
       
  2343         //GET STATE FROM THE STORAGE AFTER ADD
       
  2344         entries = service->getEntryIds(query1);
       
  2345         int entriesCount3 = entries.count();
       
  2346         //ADD TO DB( parent2, system )
       
  2347         service->appendEntryToGroup(parentEntry2->id(),resultItem1->id());
       
  2348         //GET STATE FROM THE STORAGE AFTER ADD
       
  2349         entries = service->getEntryIds(query1);
       
  2350         int entriesCount4 = entries.count();
       
  2351         //ADD TO DB (parent2, not system)
       
  2352         service->appendEntryToGroup(parentEntry2->id(),resultItem2->id());
       
  2353         //GET STATE FROM THE STORAGE AFTER ADD
       
  2354         entries = service->getEntryIds(query1);
       
  2355         int entriesCount5 = entries.count();
       
  2356 
       
  2357         //CHECK RESULTS
       
  2358         QCOMPARE(entriesCount1+1,entriesCount2);
       
  2359         QCOMPARE(entriesCount2,entriesCount3);
       
  2360         QCOMPARE(entriesCount3, entriesCount4);
       
  2361         QCOMPARE(entriesCount4, entriesCount5);
       
  2362 
       
  2363         //CLEANUP THE STORAGE AFTER THE TEST
       
  2364         service->removeEntry(*resultItem1);
       
  2365         service->removeEntry(*resultItem2);
       
  2366         service->removeEntry(*parentEntry);
       
  2367         service->removeEntry(*parentEntry2);
       
  2368     }
       
  2369 }
       
  2370 
       
  2371 // ---------------------------------------------------------------------------
       
  2372 // ---------------------------------------------------------------------------
       
  2373 //
       
  2374 void TestCaClient::TestGetEntriesIdsByTypeFlags()
       
  2375 {
       
  2376     {
       
  2377         //GET INITIAL STATE FROM THE STORAGE
       
  2378         QSharedPointer<CaService> service = CaService::instance();
       
  2379         CaQuery query1;
       
  2380         query1.addEntryTypeName(QString("TypeOK"));
       
  2381         query1.setFlagsOn(UninstallEntryFlag);
       
  2382         QList<int> entries = service->getEntryIds(query1);
       
  2383         int entriesCount1 = entries.count();
       
  2384 
       
  2385         //ADD TO DB (typeOk, system)
       
  2386         CaEntry item1;
       
  2387         item1.setText(QString("Name"));
       
  2388         item1.setFlags(UninstallEntryFlag);
       
  2389         item1.setEntryTypeName(QString("TypeOK"));
       
  2390         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  2391         QVERIFY(!resultItem1.isNull());
       
  2392         //GET STATE FROM THE STORAGE AFTER ADD
       
  2393         entries = service->getEntryIds(query1);
       
  2394         int entriesCount2 = entries.count();
       
  2395         //ADD TO DB(typeOk, not system)
       
  2396         CaEntry item2;
       
  2397         item2.setText(QString("Name"));
       
  2398         item2.setEntryTypeName(QString("TypeOK"));
       
  2399         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
  2400         QVERIFY(!resultItem2.isNull());
       
  2401         //GET STATE FROM THE STORAGE AFTER ADD
       
  2402         entries = service->getEntryIds(query1);
       
  2403         int entriesCount3 = entries.count();
       
  2404         //ADD TO DB(typeWrong, system)
       
  2405         CaEntry item3;
       
  2406         item3.setText(QString("Name"));
       
  2407         item3.setFlags(UninstallEntryFlag);
       
  2408         item3.setEntryTypeName(QString("TypeWrong"));
       
  2409         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item3);
       
  2410         QVERIFY(!resultItem3.isNull());
       
  2411         //GET STATE FROM THE STORAGE AFTER ADD
       
  2412         entries = service->getEntryIds(query1);
       
  2413         int entriesCount4 = entries.count();
       
  2414         //ADD TO DB(typeWrong, not system)
       
  2415         CaEntry item4;
       
  2416         item4.setText(QString("Name"));
       
  2417         item4.setEntryTypeName(QString("TypeWrong"));
       
  2418         QSharedPointer<CaEntry> resultItem4 = service->createEntry(item4);
       
  2419         QVERIFY(!resultItem4.isNull());
       
  2420         //GET STATE FROM THE STORAGE AFTER ADD
       
  2421         entries = service->getEntryIds(query1);
       
  2422         int entriesCount5 = entries.count();
       
  2423 
       
  2424         //CHECK RESULTS
       
  2425         QCOMPARE(entriesCount1+1,entriesCount2);
       
  2426         QCOMPARE(entriesCount2,entriesCount3);
       
  2427         QCOMPARE(entriesCount3, entriesCount4);
       
  2428         QCOMPARE(entriesCount4, entriesCount5);
       
  2429         //CLEANUP THE STORAGE AFTER THE TEST
       
  2430         service->removeEntry(*resultItem1);
       
  2431         service->removeEntry(*resultItem2);
       
  2432         service->removeEntry(*resultItem3);
       
  2433         service->removeEntry(*resultItem4);
       
  2434     }
       
  2435 }
       
  2436 
       
  2437 // ---------------------------------------------------------------------------
       
  2438 // ---------------------------------------------------------------------------
       
  2439 //
       
  2440 void TestCaClient::TestGetEntriesIdsByRoleParentType()
       
  2441 {
       
  2442     {
       
  2443         QSharedPointer<CaService> service = CaService::instance();
       
  2444         //ADD PARENT TO THE STORAGE
       
  2445         CaEntry parent(GroupEntryRole);
       
  2446         CaEntry parent2(GroupEntryRole);
       
  2447         parent.setText(QString("text"));
       
  2448         parent.setEntryTypeName(QString("type"));
       
  2449         parent2.setText(QString("text"));
       
  2450         parent2.setEntryTypeName(QString("type"));
       
  2451         QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
       
  2452         QVERIFY(!parentEntry.isNull());
       
  2453         QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
       
  2454         QVERIFY(!parentEntry2.isNull());
       
  2455 
       
  2456         //GET INITIAL STATE FROM THE STORAGE
       
  2457         CaQuery query1;
       
  2458         query1.setEntryRoles(ItemEntryRole);
       
  2459         query1.setParentId(parentEntry->id());
       
  2460         query1.addEntryTypeName(QString("TypeOK"));
       
  2461         QList<int> entries = service->getEntryIds(query1);
       
  2462         int entriesCount1 = entries.count();
       
  2463 
       
  2464         //ADD TO DB ( item, parent1, typeOk)
       
  2465         CaEntry item1;
       
  2466         item1.setText(QString("Name"));
       
  2467         item1.setEntryTypeName(QString("TypeOK"));
       
  2468         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  2469         QVERIFY(!resultItem1.isNull());
       
  2470         service->appendEntryToGroup(parentEntry->id(), resultItem1->id());
       
  2471         //GET STATE FROM THE STORAGE AFTER ADD
       
  2472         entries = service->getEntryIds(query1);
       
  2473         int entriesCount2= entries.count();
       
  2474         //ADD TO DB ( item, parent1, typeWrong)
       
  2475         CaEntry item2;
       
  2476         item2.setText(QString("Name"));
       
  2477         item2.setEntryTypeName(QString("TypeWRONG"));
       
  2478         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
  2479         QVERIFY(!resultItem2.isNull());
       
  2480         service->appendEntryToGroup(parentEntry->id(), resultItem2->id());
       
  2481         //GET STATE FROM THE STORAGE AFTER ADD
       
  2482         entries = service->getEntryIds(query1);
       
  2483         int entriesCount3 = entries.count();
       
  2484         //ADD TO DB ( item, parent2, typeOk)
       
  2485         service->appendEntryToGroup(parentEntry2->id(), resultItem1->id());
       
  2486         //GET STATE FROM THE STORAGE AFTER ADD
       
  2487         entries = service->getEntryIds(query1);
       
  2488         int entriesCount4 = entries.count();
       
  2489         //ADD TO DB ( group, parent1, typeOk)
       
  2490         CaEntry group1(GroupEntryRole);
       
  2491         group1.setText(QString("text"));
       
  2492         group1.setEntryTypeName(QString("TypeOK"));
       
  2493         QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
       
  2494         QVERIFY(!resultGroup1.isNull());
       
  2495         service->appendEntryToGroup(parentEntry->id(), resultGroup1->id());
       
  2496         //GET STATE FROM THE STORAGE AFTER ADD
       
  2497         entries = service->getEntryIds(query1);
       
  2498         int entriesCount5 = entries.count();
       
  2499 
       
  2500         //CHECK RESULTS
       
  2501         QCOMPARE(entriesCount1+1,entriesCount2);
       
  2502         QCOMPARE(entriesCount2,entriesCount3);
       
  2503         QCOMPARE(entriesCount3, entriesCount4);
       
  2504         QCOMPARE(entriesCount4, entriesCount5);
       
  2505         //CLEANUP THE STORAGE AFTER THE TEST
       
  2506         service->removeEntry(*resultItem1);
       
  2507         service->removeEntry(*resultItem2);
       
  2508         service->removeEntry(*resultGroup1);
       
  2509         service->removeEntry(*parentEntry);
       
  2510         service->removeEntry(*parentEntry2);
       
  2511     }
       
  2512 }
       
  2513 
       
  2514 // ---------------------------------------------------------------------------
       
  2515 // ---------------------------------------------------------------------------
       
  2516 //
       
  2517 void TestCaClient::TestGetEntriesIdsByRoleParentFlags()
       
  2518 {
       
  2519     {
       
  2520         QSharedPointer<CaService> service = CaService::instance();
       
  2521         //ADD PARENT TO THE STORAGE
       
  2522         CaEntry parent(GroupEntryRole);
       
  2523         CaEntry parent2(GroupEntryRole);
       
  2524         parent.setText(QString("text"));
       
  2525         parent.setEntryTypeName(QString("Type"));
       
  2526         parent2.setText(QString("text"));
       
  2527         parent2.setEntryTypeName(QString("Type"));
       
  2528         QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
       
  2529         QVERIFY(!parentEntry.isNull());
       
  2530         QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
       
  2531         QVERIFY(!parentEntry2.isNull());
       
  2532 
       
  2533         //GET INITIAL STATE FROM THE STORAGE
       
  2534         CaQuery query1;
       
  2535         query1.setEntryRoles(ItemEntryRole);
       
  2536         query1.setParentId(parentEntry->id());
       
  2537         query1.setFlagsOn(UninstallEntryFlag);
       
  2538         QList<int> entries = service->getEntryIds(query1);
       
  2539         int entriesCount1 = entries.count();
       
  2540 
       
  2541         //ADD TO DB (item, parent1, system )
       
  2542         CaEntry item1;
       
  2543         item1.setText(QString("Name"));
       
  2544         item1.setEntryTypeName(QString("Type"));
       
  2545         item1.setFlags(UninstallEntryFlag);
       
  2546         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  2547         QVERIFY(!resultItem1.isNull());
       
  2548         service->appendEntryToGroup(parentEntry->id(), resultItem1->id());
       
  2549         //GET STATE FROM THE STORAGE AFTER ADD
       
  2550         entries = service->getEntryIds(query1);
       
  2551         int entriesCount2 = entries.count();
       
  2552         //ADD TO DB(item, parent1, not system )
       
  2553         CaEntry item2;
       
  2554         item2.setText(QString("Name"));
       
  2555         item2.setEntryTypeName(QString("Type"));
       
  2556         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
  2557         QVERIFY(!resultItem2.isNull());
       
  2558         service->appendEntryToGroup(parentEntry->id(), resultItem2->id());
       
  2559         //GET STATE FROM THE STORAGE AFTER ADD
       
  2560         entries = service->getEntryIds(query1);
       
  2561         int entriesCount3 = entries.count();
       
  2562         //ADD TO DB(item, parent2 , system )
       
  2563         service->appendEntryToGroup(parentEntry2->id(), resultItem1->id());
       
  2564         //GET STATE FROM THE STORAGE AFTER ADD
       
  2565         entries = service->getEntryIds(query1);
       
  2566         int entriesCount4 = entries.count();
       
  2567         //ADD TO DB(group, parent1, system )
       
  2568         CaEntry group1(GroupEntryRole);
       
  2569         group1.setText(QString("text"));
       
  2570         group1.setEntryTypeName(QString("Type"));
       
  2571         group1.setFlags(UninstallEntryFlag);
       
  2572         QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
       
  2573         QVERIFY(!resultGroup1.isNull());
       
  2574         service->appendEntryToGroup(parentEntry->id(), resultGroup1->id());
       
  2575 
       
  2576         //GET STATE FROM THE STORAGE AFTER ADD
       
  2577         entries = service->getEntryIds(query1);
       
  2578         int entriesCount5 = entries.count();
       
  2579 
       
  2580         //CHECK RESULTS
       
  2581         QCOMPARE(entriesCount1+1,entriesCount2);
       
  2582         QCOMPARE(entriesCount2,entriesCount3);
       
  2583         QCOMPARE(entriesCount3, entriesCount4);
       
  2584         QCOMPARE(entriesCount4, entriesCount5);
       
  2585 
       
  2586         //CLEANUP THE STORAGE AFTER THE TEST
       
  2587         service->removeEntry(*resultItem1);
       
  2588         service->removeEntry(*resultItem2);
       
  2589         service->removeEntry(*resultGroup1);
       
  2590         service->removeEntry(*parentEntry);
       
  2591         service->removeEntry(*parentEntry2);
       
  2592     }
       
  2593 }
       
  2594 
       
  2595 // ---------------------------------------------------------------------------
       
  2596 // ---------------------------------------------------------------------------
       
  2597 //
       
  2598 void TestCaClient::TestGetEntriesIdsByParentTypeFlags()
       
  2599 {
       
  2600     {
       
  2601         QSharedPointer<CaService> service = CaService::instance();
       
  2602         //ADD PARENT TO THE STORAGE
       
  2603         CaEntry parent(GroupEntryRole);
       
  2604         CaEntry parent2(GroupEntryRole);
       
  2605         parent.setText(QString("text"));
       
  2606         parent.setEntryTypeName(QString("Type"));
       
  2607         parent2.setText(QString("text"));
       
  2608         parent2.setEntryTypeName(QString("Type"));
       
  2609         QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
       
  2610         QVERIFY(!parentEntry.isNull());
       
  2611         QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
       
  2612         QVERIFY(!parentEntry2.isNull());
       
  2613 
       
  2614         //GET INITIAL STATE FROM THE STORAGE
       
  2615         CaQuery query1;
       
  2616         query1.setParentId(parentEntry->id());
       
  2617         query1.addEntryTypeName(QString("TypeOK"));
       
  2618         query1.setFlagsOn(UninstallEntryFlag);
       
  2619         QList<int> entries = service->getEntryIds(query1);
       
  2620         int entriesCount1 = entries.count();
       
  2621 
       
  2622         //ADD TO DB (parent1, typeOk, system)
       
  2623         CaEntry item1;
       
  2624         item1.setText(QString("Name"));
       
  2625         item1.setEntryTypeName(QString("TypeOK"));
       
  2626         item1.setFlags(UninstallEntryFlag);
       
  2627         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  2628         QVERIFY(!resultItem1.isNull());
       
  2629         service->appendEntryToGroup(parentEntry->id(), resultItem1->id());
       
  2630         //GET STATE FROM THE STORAGE AFTER ADD
       
  2631         entries = service->getEntryIds(query1);
       
  2632         int entriesCount2 = entries.count();
       
  2633         //ADD TO DB(parent1, typeOk, not system)
       
  2634         CaEntry item2;
       
  2635         item2.setText(QString("Name"));
       
  2636         item2.setEntryTypeName(QString("TypeOK"));
       
  2637         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
  2638         QVERIFY(!resultItem2.isNull());
       
  2639         service->appendEntryToGroup(parentEntry->id(), resultItem2->id());
       
  2640         //GET STATE FROM THE STORAGE AFTER ADD
       
  2641         entries = service->getEntryIds(query1);
       
  2642         int entriesCount3 = entries.count();
       
  2643         //ADD TO DB(parent1, typeWRONG, system)
       
  2644         CaEntry item3;
       
  2645         item3.setText(QString("Name"));
       
  2646         item3.setEntryTypeName(QString("TypeWRONG"));
       
  2647         item3.setFlags(UninstallEntryFlag);
       
  2648         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item3);
       
  2649         QVERIFY(!resultItem3.isNull());
       
  2650         service->appendEntryToGroup(parentEntry->id(), resultItem3->id());
       
  2651         //GET STATE FROM THE STORAGE AFTER ADD
       
  2652         entries = service->getEntryIds(query1);
       
  2653         int entriesCount4 = entries.count();
       
  2654         //ADD TO DB(parent2, typeOk, system)
       
  2655         service->appendEntryToGroup(parentEntry2->id(), resultItem1->id());
       
  2656         //GET STATE FROM THE STORAGE AFTER ADD
       
  2657         entries = service->getEntryIds(query1);
       
  2658         int entriesCount5 = entries.count();
       
  2659 
       
  2660         //CHECK RESULTS
       
  2661         QCOMPARE(entriesCount1+1,entriesCount2);
       
  2662         QCOMPARE(entriesCount2,entriesCount3);
       
  2663         QCOMPARE(entriesCount3, entriesCount4);
       
  2664         QCOMPARE(entriesCount4, entriesCount5);
       
  2665         //CLEANUP THE STORAGE AFTER THE TEST
       
  2666         service->removeEntry(*resultItem1);
       
  2667         service->removeEntry(*resultItem2);
       
  2668         service->removeEntry(*resultItem3);
       
  2669         service->removeEntry(*parentEntry);
       
  2670         service->removeEntry(*parentEntry2);
       
  2671     }
       
  2672 }
       
  2673 
       
  2674 // ---------------------------------------------------------------------------
       
  2675 // ---------------------------------------------------------------------------
       
  2676 //
       
  2677 void TestCaClient::TestGetEntriesIdsByRoleParentTypeFlags()
       
  2678 {
       
  2679     {
       
  2680         QSharedPointer<CaService> service = CaService::instance();
       
  2681         //ADD PARENT TO THE STORAGE
       
  2682         CaEntry parent(GroupEntryRole);
       
  2683         CaEntry parent2(GroupEntryRole);
       
  2684         parent.setText(QString("text"));
       
  2685         parent.setEntryTypeName(QString("Type"));
       
  2686         parent2.setText(QString("text"));
       
  2687         parent2.setEntryTypeName(QString("Type"));
       
  2688         QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
       
  2689         QVERIFY(!parentEntry.isNull());
       
  2690         QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
       
  2691         QVERIFY(!parentEntry2.isNull());
       
  2692 
       
  2693         //GET INITIAL STATE FROM THE STORAGE
       
  2694         CaQuery query1;
       
  2695         query1.setEntryRoles(ItemEntryRole);
       
  2696         query1.setParentId(parentEntry->id());
       
  2697         query1.addEntryTypeName(QString("TypeOK"));
       
  2698         query1.setFlagsOn(UninstallEntryFlag);
       
  2699         QList<int> entries = service->getEntryIds(query1);
       
  2700         int entriesCount1 = entries.count();
       
  2701 
       
  2702         //ADD TO DB ( item, parent1, typeOK, system )
       
  2703         CaEntry item1;
       
  2704         item1.setText(QString("Name"));
       
  2705         item1.setEntryTypeName(QString("TypeOK"));
       
  2706         item1.setFlags(UninstallEntryFlag);
       
  2707         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  2708         QVERIFY(!resultItem1.isNull());
       
  2709         service->appendEntryToGroup(parentEntry->id(), resultItem1->id());
       
  2710         //GET STATE FROM THE STORAGE AFTER ADD
       
  2711         entries = service->getEntryIds(query1);
       
  2712         int entriesCount2 = entries.count();
       
  2713         //ADD TO DB ( item, parent1, typeOK, not system )
       
  2714         CaEntry item2;
       
  2715         item2.setText(QString("Name"));
       
  2716         item2.setEntryTypeName(QString("TypeOK"));
       
  2717         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
  2718         QVERIFY(!resultItem2.isNull());
       
  2719         service->appendEntryToGroup(parentEntry->id(), resultItem2->id());
       
  2720         //GET STATE FROM THE STORAGE AFTER ADD
       
  2721         entries = service->getEntryIds(query1);
       
  2722         int entriesCount3 = entries.count();
       
  2723         //ADD TO DB( item, parent1, typeWRONG, system )
       
  2724         CaEntry item3;
       
  2725         item3.setText(QString("Name"));
       
  2726         item3.setEntryTypeName(QString("TypeWRONG"));
       
  2727         item3.setFlags(UninstallEntryFlag);
       
  2728         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item3);
       
  2729         QVERIFY(!resultItem3.isNull());
       
  2730         service->appendEntryToGroup(parentEntry->id(), resultItem3->id());
       
  2731         //GET STATE FROM THE STORAGE AFTER ADD
       
  2732         entries = service->getEntryIds(query1);
       
  2733         int entriesCount4 = entries.count();
       
  2734         //ADD TO DB( item, parent2, typeOK, system )
       
  2735         service->appendEntryToGroup(parentEntry2->id(), resultItem1->id());
       
  2736         //GET STATE FROM THE STORAGE AFTER ADD
       
  2737         entries = service->getEntryIds(query1);
       
  2738         int entriesCount5 = entries.count();
       
  2739         //ADD TO DB( group, parent1, typeOK, system )
       
  2740         CaEntry group1(GroupEntryRole);
       
  2741         group1.setText(QString("text"));
       
  2742         group1.setEntryTypeName(QString("TypeOK"));
       
  2743         group1.setFlags(UninstallEntryFlag);
       
  2744         QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
       
  2745         QVERIFY(!resultGroup1.isNull());
       
  2746         service->appendEntryToGroup(parentEntry->id(), resultGroup1->id());
       
  2747         //GET STATE FROM THE STORAGE AFTER ADD
       
  2748         entries = service->getEntryIds(query1);
       
  2749         int entriesCount6 = entries.count();
       
  2750 
       
  2751         //CHECK RESULTS
       
  2752         QCOMPARE(entriesCount1+1,entriesCount2);
       
  2753         QCOMPARE(entriesCount2,entriesCount3);
       
  2754         QCOMPARE(entriesCount3, entriesCount4);
       
  2755         QCOMPARE(entriesCount4, entriesCount5);
       
  2756         QCOMPARE(entriesCount5, entriesCount6);
       
  2757 
       
  2758         //CLEANUP THE STORAGE AFTER THE TEST
       
  2759         service->removeEntry(*resultItem1);
       
  2760         service->removeEntry(*resultItem2);
       
  2761         service->removeEntry(*resultItem3);
       
  2762         service->removeEntry(*resultGroup1);
       
  2763         service->removeEntry(*parentEntry);
       
  2764         service->removeEntry(*parentEntry2);
       
  2765     }
       
  2766 }
       
  2767 
       
  2768 // ---------------------------------------------------------------------------
       
  2769 // ---------------------------------------------------------------------------
       
  2770 //
       
  2771 void TestCaClient::TestGetEntriesIdsCount()
       
  2772 {
       
  2773     {
       
  2774         QSharedPointer<CaService> service = CaService::instance();
       
  2775         //REMOVE "OLD" ENTRIES FROM STORAGE
       
  2776         CaQuery query;
       
  2777         query.addEntryTypeName(QString("CountTest2"));
       
  2778         QList<int> oldIds = service->getEntryIds(query);
       
  2779         if (oldIds.count()) {
       
  2780             service->removeEntries(oldIds);
       
  2781         }
       
  2782         //ADD TO DB
       
  2783         CaEntry item1;
       
  2784         item1.setText(QString("Name"));
       
  2785         item1.setEntryTypeName(QString("CountTest2"));
       
  2786         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  2787         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1);  //item clone
       
  2788         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1);  //item clone
       
  2789         //GET STATE FROM THE STORAGE AFTER ADD
       
  2790         CaQuery query1;
       
  2791         query1.addEntryTypeName(QString("CountTest2"));
       
  2792         query1.setCount(1);
       
  2793         CaQuery query2;
       
  2794         query2.addEntryTypeName(QString("CountTest2"));
       
  2795         query2.setCount(2);
       
  2796         CaQuery query3;
       
  2797         query3.addEntryTypeName(QString("CountTest2"));
       
  2798         query3.setCount(3);
       
  2799         QList<int> entries1 = service->getEntryIds(query1);
       
  2800         QList<int> entries2 = service->getEntryIds(query2);
       
  2801         QList<int> entries3 = service->getEntryIds(query3);
       
  2802 
       
  2803         //CHECK RESULTS
       
  2804         QCOMPARE(entries1.count(),1);
       
  2805         QCOMPARE(entries2.count(),2);
       
  2806         QCOMPARE(entries3.count(),3);
       
  2807 
       
  2808         //CLEANUP THE STORAGE AFTER THE TEST
       
  2809         service->removeEntry(*resultItem1);
       
  2810         service->removeEntry(*resultItem2);
       
  2811         service->removeEntry(*resultItem3);
       
  2812     }
       
  2813 }
       
  2814 
       
  2815 // ---------------------------------------------------------------------------
       
  2816 // ---------------------------------------------------------------------------
       
  2817 //
       
  2818 void TestCaClient::TestGetEntriesIdsSortDefault()
       
  2819 {
       
  2820     {
       
  2821         QSharedPointer<CaService> service = CaService::instance();
       
  2822         //REMOVE "OLD" ENTRIES FROM STORAGE
       
  2823         CaQuery query;
       
  2824         query.addEntryTypeName(QString("Sort9Test"));
       
  2825         QList<int> oldIds = service->getEntryIds(query);
       
  2826         if (oldIds.count()) {
       
  2827             service->removeEntries(oldIds);
       
  2828         }
       
  2829 
       
  2830         //ADD TO DB
       
  2831         CaEntry item1;
       
  2832         item1.setEntryTypeName(QString("Sort9Test"));
       
  2833         item1.setText(QString("Name"));
       
  2834 
       
  2835         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  2836         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1);  //item clone
       
  2837         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1);  //item clone
       
  2838 
       
  2839         //GET STATE FROM THE STORAGE AFTER ADD
       
  2840         CaQuery query1;
       
  2841         query1.addEntryTypeName(QString("Sort9Test"));
       
  2842         query1.setSort(DefaultSortAttribute, Qt::AscendingOrder);
       
  2843         QList<int> entriesAsc = service->getEntryIds(query1);
       
  2844         CaQuery query2;
       
  2845         query2.addEntryTypeName(QString("Sort9Test"));
       
  2846         query2.setSort(DefaultSortAttribute, Qt::DescendingOrder);
       
  2847         QList<int> entriesDesc = service->getEntryIds(query2);
       
  2848 
       
  2849         //CHECK RESULTS
       
  2850         QCOMPARE(entriesAsc.count(),3);
       
  2851         QCOMPARE(entriesDesc.count(),3);
       
  2852         QCOMPARE(entriesAsc.at(0),resultItem1->id());
       
  2853         QCOMPARE(entriesAsc.at(1),resultItem2->id());
       
  2854         QCOMPARE(entriesAsc.at(2),resultItem3->id());
       
  2855         QCOMPARE(entriesDesc.at(0),resultItem3->id());
       
  2856         QCOMPARE(entriesDesc.at(1),resultItem2->id());
       
  2857         QCOMPARE(entriesDesc.at(2),resultItem1->id());
       
  2858 
       
  2859         //CLEANUP THE STORAGE AFTER THE TEST
       
  2860         service->removeEntry(*resultItem1);
       
  2861         service->removeEntry(*resultItem2);
       
  2862         service->removeEntry(*resultItem3);
       
  2863     }
       
  2864 }
       
  2865 
       
  2866 // ---------------------------------------------------------------------------
       
  2867 // ---------------------------------------------------------------------------
       
  2868 //
       
  2869 void TestCaClient::TestGetEntriesIdsSortCreated()
       
  2870 {
       
  2871     {
       
  2872         QSharedPointer<CaService> service = CaService::instance();
       
  2873         //REMOVE "OLD" ENTRIES FROM STORAGE
       
  2874         CaQuery query;
       
  2875         query.addEntryTypeName(QString("Sort5Test"));
       
  2876         QList<int> oldIds = service->getEntryIds(query);
       
  2877         if (oldIds.count()) {
       
  2878             service->removeEntries(oldIds);
       
  2879         }
       
  2880         //ADD TO DB
       
  2881         CaEntry item1;
       
  2882         item1.setText(QString("Name"));
       
  2883         item1.setEntryTypeName(QString("Sort5Test"));
       
  2884         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  2885         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1);  //item clone
       
  2886         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1);  //item clone
       
  2887 
       
  2888         //GET STATE FROM THE STORAGE AFTER ADD
       
  2889         CaQuery query1;
       
  2890         query1.addEntryTypeName(QString("Sort5Test"));
       
  2891         query1.setSort(CreatedTimestampSortAttribute, Qt::AscendingOrder);
       
  2892         QList<int> entriesAsc = service->getEntryIds(query1);
       
  2893         CaQuery query2;
       
  2894         query2.addEntryTypeName(QString("Sort5Test"));
       
  2895         query2.setSort(CreatedTimestampSortAttribute, Qt::DescendingOrder);
       
  2896         QList<int> entriesDesc = service->getEntryIds(query2);
       
  2897 
       
  2898         //CHECK RESULTS
       
  2899         QCOMPARE(entriesAsc.count(),3);
       
  2900         QCOMPARE(entriesDesc.count(),3);
       
  2901         QCOMPARE(entriesAsc.at(0),resultItem1->id());
       
  2902         QCOMPARE(entriesAsc.at(1),resultItem2->id());
       
  2903         QCOMPARE(entriesAsc.at(2),resultItem3->id());
       
  2904         QCOMPARE(entriesDesc.at(0),resultItem3->id());
       
  2905         QCOMPARE(entriesDesc.at(1),resultItem2->id());
       
  2906         QCOMPARE(entriesDesc.at(2),resultItem1->id());
       
  2907 
       
  2908         //CLEANUP THE STORAGE AFTER THE TEST
       
  2909         service->removeEntry(*resultItem1);
       
  2910         service->removeEntry(*resultItem2);
       
  2911         service->removeEntry(*resultItem3);
       
  2912     }
       
  2913 }
       
  2914 
       
  2915 // ---------------------------------------------------------------------------
       
  2916 // ---------------------------------------------------------------------------
       
  2917 //
       
  2918 void TestCaClient::TestGetEntriesIdsSortName()
       
  2919 {
       
  2920     {
       
  2921         QSharedPointer<CaService> service = CaService::instance();
       
  2922         //REMOVE "OLD" ENTRIES FROM STORAGE
       
  2923         CaQuery query;
       
  2924         query.addEntryTypeName(QString("Sort6Test"));
       
  2925         QList<int> oldIds = service->getEntryIds(query);
       
  2926         if (oldIds.count()) {
       
  2927             service->removeEntries(oldIds);
       
  2928         }
       
  2929         //ADD TO DB
       
  2930         CaEntry item1;
       
  2931         item1.setText(QString("NameB"));
       
  2932         item1.setEntryTypeName(QString("Sort6Test"));
       
  2933         CaEntry item2;
       
  2934         item2.setText(QString("NameA"));
       
  2935         item2.setEntryTypeName(QString("Sort6Test"));
       
  2936         CaEntry item3;
       
  2937         item3.setText(QString("NameC"));
       
  2938         item3.setEntryTypeName(QString("Sort6Test"));
       
  2939 
       
  2940         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  2941         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
       
  2942         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item3);
       
  2943 
       
  2944         //GET STATE FROM THE STORAGE AFTER ADD
       
  2945         CaQuery query1;
       
  2946         query1.addEntryTypeName(QString("Sort6Test"));
       
  2947         query1.setSort(NameSortAttribute, Qt::AscendingOrder);
       
  2948         QList<int> entriesAsc = service->getEntryIds(query1);
       
  2949         CaQuery query2;
       
  2950         query2.addEntryTypeName(QString("Sort6Test"));
       
  2951         query2.setSort(NameSortAttribute, Qt::DescendingOrder);
       
  2952         QList<int> entriesDesc = service->getEntryIds(query2);
       
  2953 
       
  2954         //CHECK RESULTS
       
  2955         QCOMPARE(entriesAsc.count(),3);
       
  2956         QCOMPARE(entriesDesc.count(),3);
       
  2957         QCOMPARE(entriesAsc.at(0),resultItem2->id());
       
  2958         QCOMPARE(entriesAsc.at(1),resultItem1->id());
       
  2959         QCOMPARE(entriesAsc.at(2),resultItem3->id());
       
  2960         QCOMPARE(entriesDesc.at(0),resultItem3->id());
       
  2961         QCOMPARE(entriesDesc.at(1),resultItem1->id());
       
  2962         QCOMPARE(entriesDesc.at(2),resultItem2->id());
       
  2963 
       
  2964         //CLEANUP THE STORAGE AFTER THE TEST
       
  2965         service->removeEntry(*resultItem1);
       
  2966         service->removeEntry(*resultItem2);
       
  2967         service->removeEntry(*resultItem3);
       
  2968     }
       
  2969 }
       
  2970 
       
  2971 // ---------------------------------------------------------------------------
       
  2972 // ---------------------------------------------------------------------------
       
  2973 //
       
  2974 void TestCaClient::TestGetEntriesIdsSortLast()
       
  2975 {
       
  2976     {
       
  2977         QSharedPointer<CaService> service = CaService::instance();
       
  2978         //REMOVE "OLD" ENTRIES FROM STORAGE
       
  2979         CaQuery query;
       
  2980         query.addEntryTypeName(QString("Sort7Test"));
       
  2981         QList<int> oldIds = service->getEntryIds(query);
       
  2982         if (oldIds.count()) {
       
  2983             service->removeEntries(oldIds);
       
  2984         }
       
  2985         //ADD TO DB
       
  2986         CaEntry item1;
       
  2987         item1.setText(QString("Name"));
       
  2988         item1.setEntryTypeName(QString("Sort7Test"));
       
  2989         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  2990         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1);  //item clone
       
  2991         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1);  //item clone
       
  2992 
       
  2993         service->touch(*resultItem2);
       
  2994         service->touch(*resultItem1);
       
  2995         service->touch(*resultItem3);
       
  2996 
       
  2997         //GET STATE FROM THE STORAGE AFTER ADD
       
  2998         CaQuery query1;
       
  2999         query1.addEntryTypeName(QString("Sort7Test"));
       
  3000         query1.setSort(LastUsedSortAttribute, Qt::AscendingOrder);
       
  3001         QList<int> entriesAsc = service->getEntryIds(query1);
       
  3002         CaQuery query2;
       
  3003         query2.addEntryTypeName(QString("Sort7Test"));
       
  3004         query2.setSort(LastUsedSortAttribute, Qt::DescendingOrder);
       
  3005         QList<int> entriesDesc = service->getEntryIds(query2);
       
  3006 
       
  3007         //CHECK RESULTS
       
  3008         QCOMPARE(entriesAsc.count(),3);
       
  3009         QCOMPARE(entriesDesc.count(),3);
       
  3010         QCOMPARE(entriesAsc.at(0),resultItem2->id());
       
  3011         QCOMPARE(entriesAsc.at(1),resultItem1->id());
       
  3012         QCOMPARE(entriesAsc.at(2),resultItem3->id());
       
  3013         QCOMPARE(entriesDesc.at(0),resultItem3->id());
       
  3014         QCOMPARE(entriesDesc.at(1),resultItem1->id());
       
  3015         QCOMPARE(entriesDesc.at(2),resultItem2->id());
       
  3016 
       
  3017         //CLEANUP THE STORAGE AFTER THE TEST
       
  3018         service->removeEntry(*resultItem1);
       
  3019         service->removeEntry(*resultItem2);
       
  3020         service->removeEntry(*resultItem3);
       
  3021     }
       
  3022 }
       
  3023 
       
  3024 // ---------------------------------------------------------------------------
       
  3025 // ---------------------------------------------------------------------------
       
  3026 //
       
  3027 void TestCaClient::TestGetEntriesIdsSortMost()
       
  3028 {
       
  3029     {
       
  3030         QSharedPointer<CaService> service = CaService::instance();
       
  3031         //REMOVE "OLD" ENTRIES FROM STORAGE
       
  3032         CaQuery query;
       
  3033         query.addEntryTypeName(QString("Sort8Test"));
       
  3034         QList<int> oldIds = service->getEntryIds(query);
       
  3035         if (oldIds.count()) {
       
  3036             service->removeEntries(oldIds);
       
  3037         }
       
  3038         //ADD TO DB
       
  3039         CaEntry item1;
       
  3040         item1.setText(QString("Name"));
       
  3041         item1.setEntryTypeName(QString("Sort8Test"));
       
  3042         QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
       
  3043         QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1);  //item clone
       
  3044         QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1);  //item clone
       
  3045 
       
  3046         service->touch(*resultItem2);
       
  3047         service->touch(*resultItem2);
       
  3048         service->touch(*resultItem2);
       
  3049         service->touch(*resultItem1);
       
  3050         service->touch(*resultItem1);
       
  3051         service->touch(*resultItem3);
       
  3052 
       
  3053         //GET STATE FROM THE STORAGE AFTER ADD
       
  3054         CaQuery query1;
       
  3055         query1.addEntryTypeName(QString("Sort8Test"));
       
  3056         query1.setSort(MostUsedSortAttribute, Qt::AscendingOrder);
       
  3057         QList<int> entriesAsc = service->getEntryIds(query1);
       
  3058         CaQuery query2;
       
  3059         query2.addEntryTypeName(QString("Sort8Test"));
       
  3060         query2.setSort(MostUsedSortAttribute, Qt::DescendingOrder);
       
  3061         QList<int> entriesDesc = service->getEntryIds(query2);
       
  3062 
       
  3063         //CHECK RESULTS
       
  3064         QCOMPARE(entriesAsc.count(),3);
       
  3065         QCOMPARE(entriesDesc.count(),3);
       
  3066         QCOMPARE(entriesAsc.at(0),resultItem3->id());
       
  3067         QCOMPARE(entriesAsc.at(1),resultItem1->id());
       
  3068         QCOMPARE(entriesAsc.at(2),resultItem2->id());
       
  3069         QCOMPARE(entriesDesc.at(0),resultItem2->id());
       
  3070         QCOMPARE(entriesDesc.at(1),resultItem1->id());
       
  3071         QCOMPARE(entriesDesc.at(2),resultItem3->id());
       
  3072 
       
  3073         //CLEANUP THE STORAGE AFTER THE TEST
       
  3074         service->removeEntry(*resultItem1);
       
  3075         service->removeEntry(*resultItem2);
       
  3076         service->removeEntry(*resultItem3);
       
  3077 
       
  3078     }
       
  3079 }
       
  3080 
       
  3081 // ---------------------------------------------------------------------------
       
  3082 // ---------------------------------------------------------------------------
       
  3083 //
       
  3084 void TestCaClient::TestGetEntriesByAttributes()
       
  3085 {
       
  3086     {
       
  3087         CaEntry item;
       
  3088         item.setText("testName");
       
  3089         item.setAttribute("attrName1", "attrVal1");
       
  3090         item.setEntryTypeName("test");
       
  3091         item.setFlags(RemovableEntryFlag);
       
  3092         
       
  3093         CaIconDescription iconDescription;
       
  3094         iconDescription.setFilename("iconFileName");
       
  3095         iconDescription.setSkinId("iconSkinId");
       
  3096         iconDescription.setApplicationId("268458321");
       
  3097         item.setIconDescription(iconDescription);
       
  3098     
       
  3099         QSharedPointer<CaService> service = CaService::instance();
       
  3100         QSharedPointer<CaEntry> resultItem = service->createEntry(item);
       
  3101     
       
  3102         QVERIFY(!resultItem.isNull());
       
  3103         // entry from storage
       
  3104         QSharedPointer<CaEntry> storageItem1 = service->getEntry(resultItem->id());
       
  3105         QCOMPARE(service->lastError(), NoErrorCode);
       
  3106         QVERIFY(storageItem1);
       
  3107         QCOMPARE(storageItem1->role(), ItemEntryRole);
       
  3108         QCOMPARE(QString("testName"),storageItem1->text());
       
  3109         QCOMPARE(QString("test"),storageItem1->entryTypeName());
       
  3110         QCOMPARE(QString("attrVal1"),storageItem1->attribute("attrName1"));
       
  3111         QCOMPARE(item.flags(),storageItem1->flags());
       
  3112         QCOMPARE(iconDescription.filename(),storageItem1->iconDescription().filename());
       
  3113         QCOMPARE(iconDescription.skinId(),storageItem1->iconDescription().skinId());
       
  3114         QCOMPARE(iconDescription.applicationId(),storageItem1->iconDescription().applicationId());
       
  3115 
       
  3116         CaQuery query;
       
  3117         query.setEntryRoles(ItemEntryRole);
       
  3118         query.setAttribute(QString("attrName1"),QString("attrVal1"));
       
  3119         QVERIFY(query.attributes().contains(QString("attrName1")));
       
  3120         QCOMPARE(query.attribute(QString("attrName1")),QString("attrVal1"));
       
  3121         QList<int> entries = service->getEntryIds(query);
       
  3122         int entriesCount1 = entries.count();
       
  3123         QSharedPointer<CaEntry> afterGetItem = service->getEntry(entries.first());
       
  3124         
       
  3125         QCOMPARE(afterGetItem->id(),storageItem1->id());
       
  3126         //Cleanup
       
  3127         service->removeEntry(*resultItem);
       
  3128     }
       
  3129 }