--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/contentstorage/caclient/tsrc/t_caclient/src/t_caclient_getentries.cpp Thu Sep 16 12:11:40 2010 +0100
@@ -0,0 +1,3129 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Main test class for hspluginmodel library.
+*
+*/
+
+
+#include "t_caclient.h"
+#include "caservice.h"
+#include "caquery.h"
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntry()
+{
+ {
+ CaEntry item;
+ item.setText("testName");
+ item.setAttribute("attrName1", "attrVal1");
+ item.setEntryTypeName("test");
+ item.setFlags(RemovableEntryFlag);
+
+ CaIconDescription iconDescription;
+ iconDescription.setFilename("iconFileName");
+ iconDescription.setSkinId("iconSkinId");
+ iconDescription.setApplicationId("268458321");
+ item.setIconDescription(iconDescription);
+
+ QSharedPointer<CaService> service = CaService::instance();
+ QSharedPointer<CaEntry> resultItem = service->createEntry(item);
+
+ QVERIFY(!resultItem.isNull());
+ // entry from storage
+ QSharedPointer<CaEntry> storageItem1 = service->getEntry(resultItem->id());
+ QCOMPARE(service->lastError(), NoErrorCode);
+ QVERIFY(storageItem1);
+ QCOMPARE(storageItem1->role(), ItemEntryRole);
+ QCOMPARE(QString("testName"),storageItem1->text());
+ QCOMPARE(QString("test"),storageItem1->entryTypeName());
+ QCOMPARE(QString("attrVal1"),storageItem1->attribute("attrName1"));
+ QCOMPARE(item.flags(),storageItem1->flags());
+ QCOMPARE(iconDescription.filename(),storageItem1->iconDescription().filename());
+ QCOMPARE(iconDescription.skinId(),storageItem1->iconDescription().skinId());
+ QCOMPARE(iconDescription.applicationId(),storageItem1->iconDescription().applicationId());
+ QSharedPointer<CaEntry> storageItem2 = service->getEntry(9999);
+ QVERIFY(service->lastError() != NoErrorCode);
+ QVERIFY(!storageItem2);
+
+ //Cleanup
+ service->removeEntry(*resultItem);
+
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByIds()
+{
+ {
+ CaEntry item;
+ item.setText("testName1");
+ item.setAttribute("attrName1", "attrVal1");
+ item.setEntryTypeName("test");
+ item.setFlags(RemovableEntryFlag);
+
+ QSharedPointer<CaService> service = CaService::instance();
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item);
+ item.setText("testName2");
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item);
+ item.setText("testName3");
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item);
+ QVERIFY(!resultItem1.isNull());
+ QVERIFY(!resultItem2.isNull());
+ QVERIFY(!resultItem3.isNull());
+
+ QList<int> ids;
+ ids.append(resultItem1->id());
+ ids.append(resultItem3->id());
+ ids.append(resultItem2->id());
+
+ QList< QSharedPointer<CaEntry> > entries = service->getEntries(ids) ;
+ QCOMPARE(entries.count(), 3);
+ QCOMPARE(service->lastError(), NoErrorCode);
+
+ QVERIFY(entries.at(0));
+ QCOMPARE(entries.at(0)->role(), ItemEntryRole);
+ QCOMPARE(QString("testName1"),entries.at(0)->text());
+ QCOMPARE(QString("test"),entries.at(0)->entryTypeName());
+ QCOMPARE(QString("attrVal1"),entries.at(0)->attribute("attrName1"));
+ QCOMPARE(item.flags(),entries.at(0)->flags());
+ QVERIFY(entries.at(1));
+ QCOMPARE(entries.at(1)->role(), ItemEntryRole);
+ QCOMPARE(QString("testName3"),entries.at(1)->text());
+ QCOMPARE(QString("test"),entries.at(1)->entryTypeName());
+ QCOMPARE(QString("attrVal1"),entries.at(1)->attribute("attrName1"));
+ QCOMPARE(item.flags(),entries.at(1)->flags());
+ QVERIFY(entries.at(2));
+ QCOMPARE(entries.at(2)->role(), ItemEntryRole);
+ QCOMPARE(QString("testName2"),entries.at(2)->text());
+ QCOMPARE(QString("test"),entries.at(2)->entryTypeName());
+ QCOMPARE(QString("attrVal1"),entries.at(2)->attribute("attrName1"));
+ QCOMPARE(item.flags(),entries.at(2)->flags());
+
+ QCOMPARE(entries.at(0)->id(),resultItem1->id());
+ QCOMPARE(entries.at(1)->id(),resultItem3->id());
+ QCOMPARE(entries.at(2)->id(),resultItem2->id());
+
+ QList<int> ids2;
+ ids2.append(resultItem1->id());
+ ids2.append(9999);
+
+ QList< QSharedPointer<CaEntry> > entries2 = service->getEntries(ids2) ;
+ QCOMPARE(entries2.count(), 1);
+ QVERIFY(service->lastError() != NoErrorCode);
+
+ //Cleanup
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByRole()
+{
+ {
+ //CHECK INITIAL STATE IN DB
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query;
+ query.setEntryRoles(ItemEntryRole);
+ QList< QSharedPointer<CaEntry> > items = service->getEntries(query);
+ int itemsCountBefore = items.count();
+ query.setEntryRoles(GroupEntryRole);
+ QList<QSharedPointer<CaEntry> > groups = service->getEntries(query);
+ int groupsCountBefore = groups.count();
+ query.setEntryRoles(ItemEntryRole | GroupEntryRole);
+ QList<QSharedPointer<CaEntry> > itemsOrGroups = service->getEntries(query);
+ int itemsOrGroupsCountBefore = itemsOrGroups.count();
+
+
+ //ADD TO STORAGE
+ CaEntry item;
+ item.setText("testName_item");
+ item.setAttribute("attrName1_item", "attrVal1_item");
+ item.setEntryTypeName("test_item");
+ item.setFlags(RemovableEntryFlag);
+ CaEntry group(GroupEntryRole);
+ group.setText("testName_group");
+ group.setAttribute("attrName1_group", "attrVal1_group");
+ group.setEntryTypeName("test_group");
+ group.setFlags(RemovableEntryFlag);
+
+ QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item);
+ QSharedPointer<CaEntry> resultEntry2 = service->createEntry(group);
+ QVERIFY(!resultEntry1.isNull());
+ QVERIFY(!resultEntry2.isNull());
+
+ //GET RESULTS AFTER ADD
+ query.setEntryRoles(ItemEntryRole);
+ items = service->getEntries(query);
+ QCOMPARE(service->lastError(), NoErrorCode);
+
+ int itemsCountAfter = items.count();
+ query.setEntryRoles(GroupEntryRole);
+ groups = service->getEntries(query);
+ QCOMPARE(service->lastError(), NoErrorCode);
+
+ int groupsCountAfter = groups.count();
+ query.setEntryRoles(ItemEntryRole | GroupEntryRole);
+ itemsOrGroups = service->getEntries(query);
+ QCOMPARE(service->lastError(), NoErrorCode);
+ int itemsOrGroupsCountAfter = itemsOrGroups.count();
+
+ //CHECK RESULTS
+ QCOMPARE(itemsCountAfter, itemsCountBefore+1);
+ QCOMPARE(groupsCountAfter, groupsCountBefore+1);
+ QCOMPARE(itemsOrGroupsCountAfter, itemsOrGroupsCountBefore+2);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultEntry1);
+ service->removeEntry(*resultEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByParent()
+{
+ {
+ //ADD TEST DATA TO THE STORAGE
+ QSharedPointer<CaService> service = CaService::instance();
+ CaEntry group(GroupEntryRole);
+ group.setText("testName_group");
+ group.setAttribute("attrName1_group", "attrVal1_group");
+ group.setEntryTypeName("test_group");
+ group.setFlags(RemovableEntryFlag);
+ QSharedPointer<CaEntry> parentEntry = service->createEntry(group);
+
+ QVERIFY(!parentEntry.isNull());
+ CaEntry item;
+ item.setText("testName_item");
+ item.setAttribute("attrName1_item", "attrVal1_item");
+ item.setEntryTypeName("test_item");
+ item.setFlags(RemovableEntryFlag);
+ QSharedPointer<CaEntry> childEntry = service->createEntry(item);
+
+ QVERIFY(!childEntry.isNull());
+
+ //PREPARE QUERY
+ CaQuery query;
+ query.setParentId(parentEntry->id());
+ QList< QSharedPointer<CaEntry> > entries = service->getEntries(query);
+
+ int countBefore = entries.count();
+
+ //APPEND ENTRY TO THE GROUP
+ service->appendEntryToGroup(parentEntry->id(),childEntry->id());
+ entries = service->getEntries(query);
+ QCOMPARE(service->lastError(), NoErrorCode);
+
+ int countAfter = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(countBefore, 0);
+ QCOMPARE(countAfter, 1);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*parentEntry);
+ service->removeEntry(*childEntry);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByType1()
+{
+ {
+ //CHECK INITIAL STATE IN DB
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query;
+ QStringList strList;
+ strList << QString("WRONGTYPENAME");
+ query.setEntryTypeNames(strList);
+ QList< QSharedPointer<CaEntry> > entriesWrongType = service->getEntries(query);
+ int countWrongBefore = entriesWrongType.count();
+ strList.clear();
+ strList << QString("WRONGTYPENAME");
+ strList << QString("test_item1");
+ strList << QString("test_item2");
+ query.setEntryTypeNames(strList);
+ QList< QSharedPointer<CaEntry> > entriesWrong12 = service->getEntries(query);
+ int countWrong12Before = entriesWrong12.count();
+ strList.clear();
+ strList << QString("test_item1");
+ query.setEntryTypeNames(strList);
+ QList< QSharedPointer<CaEntry> > entries1 = service->getEntries(query);
+ int count1Before = entries1.count();
+ strList.clear();
+ strList << QString("test_item2");
+ query.setEntryTypeNames(strList);
+ QList< QSharedPointer<CaEntry> > entries2 = service->getEntries(query);
+ int count2Before = entries2.count();
+ strList.clear();
+ strList << QString("test_item1");
+ strList << QString("test_item2");
+ query.setEntryTypeNames(strList);
+ QList< QSharedPointer<CaEntry> > entries12 = service->getEntries(query);
+ int count12Before = entries12.count();
+
+ //ADD TEST DATA TO THE STORAGE
+ CaEntry item1;
+ item1.setText("testName_item1");
+ item1.setAttribute("attrName1_item", "attrVal1_item");
+ item1.setEntryTypeName("test_item1");
+ CaEntry item2;
+ item2.setText("testName_item2");
+ item2.setAttribute("attrName2_item", "attrVal2_item");
+ item2.setEntryTypeName("test_item2");
+ QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
+ QVERIFY(!resultEntry1.isNull());
+ QVERIFY(!resultEntry2.isNull());
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ strList.clear();
+ strList << QString("WRONGTYPENAME");
+ query.setEntryTypeNames(strList);
+ query.setEntryTypeNames(strList);
+ entriesWrongType = service->getEntries(query);
+ int countWrongAfter = entriesWrongType.count();
+ strList.clear();
+ strList << QString("WRONGTYPENAME");
+ strList << QString("test_item1");
+ strList << QString("test_item2");
+ query.setEntryTypeNames(strList);
+ entriesWrong12 = service->getEntries(query);
+ QCOMPARE(service->lastError(), NoErrorCode);
+ int countWrong12After = entriesWrong12.count();
+ strList.clear();
+ strList << QString("test_item1");
+ query.setEntryTypeNames(strList);
+ entries1 = service->getEntries(query);
+ QCOMPARE(service->lastError(), NoErrorCode);
+ int count1After = entries1.count();
+ strList.clear();
+ strList << QString("test_item2");
+ query.setEntryTypeNames(strList);
+ entries2 = service->getEntries(query);
+ QCOMPARE(service->lastError(), NoErrorCode);
+ int count2After = entries2.count();
+ strList.clear();
+ strList << QString("test_item1");
+ strList << QString("test_item2");
+ query.setEntryTypeNames(strList);
+ entries12 = service->getEntries(query);
+ QCOMPARE(service->lastError(), NoErrorCode);
+ int count12After = entries12.count();
+
+ //CHECK RESULTS
+ QCOMPARE(countWrongBefore,countWrongAfter);
+ QCOMPARE(countWrong12Before+2,countWrong12After);
+ QCOMPARE(count1Before+1,count1After);
+ QCOMPARE(count2Before+1,count2After);
+ QCOMPARE(count12Before+2,count12After);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultEntry1);
+ service->removeEntry(*resultEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByType2()
+{
+ {
+ //CHECK INITIAL STATE IN DB
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query;
+ QStringList strList;
+ strList << QString("test_item1");
+ query.setEntryTypeNames(strList);
+ query.addEntryTypeName(QString("test_item2"));
+ QList< QSharedPointer<CaEntry> > entries12 = service->getEntries(query);
+ int count12Before = entries12.count();
+
+ //ADD TEST DATA TO THE STORAGE
+ CaEntry item1;
+ item1.setText("testName_item1");
+ item1.setAttribute("attrName1_item", "attrVal1_item");
+ item1.setEntryTypeName("test_item1");
+ CaEntry item2;
+ item2.setText("testName_item2");
+ item2.setAttribute("attrName2_item", "attrVal2_item");
+ item2.setEntryTypeName("test_item2");
+
+ QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
+ QVERIFY(!resultEntry1.isNull());
+ QVERIFY(!resultEntry2.isNull());
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ strList.clear();
+ strList << QString("test_item1");
+ query.setEntryTypeNames(strList);
+ query.addEntryTypeName(QString("test_item2"));
+ entries12 = service->getEntries(query);
+ QCOMPARE(service->lastError(), NoErrorCode);
+ int count12After = entries12.count();
+
+ //CHECK RESULTS
+ QCOMPARE(count12Before+2,count12After);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultEntry1);
+ service->removeEntry(*resultEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByFlagsOn()
+{
+ {
+ //CHECK INITIAL STATE IN DB
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query1;
+ query1.setFlagsOn(UninstallEntryFlag);
+ CaQuery query2;
+ query2.setFlagsOn(RemovableEntryFlag);
+ CaQuery query3;
+ query3.setFlagsOn(UninstallEntryFlag|RemovableEntryFlag);
+ QList< QSharedPointer<CaEntry> > entriesSystem = service->getEntries(query1);
+ int systemCountBefore = entriesSystem.count();
+ QList< QSharedPointer<CaEntry> > entriesRemovable = service->getEntries(query2);
+ int removableCountBefore = entriesRemovable.count();
+ QList< QSharedPointer<CaEntry> > entriesSysRem = service->getEntries(query3);
+ int sysremoveCountBefore = entriesSysRem.count();
+ //ADD TO DB
+ CaEntry item1;
+ item1.setText("testName_item1");
+ item1.setAttribute("attrName1_item", "attrVal1_item");
+ item1.setEntryTypeName("test_item1");
+ item1.setFlags(UninstallEntryFlag);
+ CaEntry item2;
+ item2.setText("testName_item2");
+ item2.setAttribute("attrName2_item", "attrVal2_item");
+ item2.setEntryTypeName("test_item2");
+ item2.setFlags(UninstallEntryFlag | RemovableEntryFlag);
+ QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
+ QVERIFY(!resultEntry1.isNull());
+ QVERIFY(!resultEntry2.isNull());
+ //CHECK STATE IN THE STORAGE AFTER ADD
+ entriesSystem = service->getEntries(query1);
+ int systemCountAfter = entriesSystem.count();
+ QCOMPARE(service->lastError(), NoErrorCode);
+ entriesRemovable = service->getEntries(query2);
+ QCOMPARE(service->lastError(), NoErrorCode);
+ int removableCountAfter = entriesRemovable.count();
+ entriesSysRem = service->getEntries(query3);
+ QCOMPARE(service->lastError(), NoErrorCode);
+ int sysremoveCountAfter = entriesSysRem.count();
+ //CHECK RESULTS
+ QCOMPARE(systemCountBefore+2,systemCountAfter);
+ QCOMPARE(removableCountBefore+1,removableCountAfter);
+ QCOMPARE(sysremoveCountBefore+1,sysremoveCountAfter);
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultEntry1);
+ service->removeEntry(*resultEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByFlagsOff()
+{
+ {
+ //GET INITIAL STATE FROM THE STORAGE
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query1;
+ query1.setFlagsOff(UninstallEntryFlag);
+ CaQuery query2;
+ query2.setFlagsOff(RemovableEntryFlag);
+ CaQuery query3;
+ query3.setFlagsOff(UninstallEntryFlag|RemovableEntryFlag);
+ QList< QSharedPointer<CaEntry> > entriesSystem = service->getEntries(query1);
+ int systemCountBefore = entriesSystem.count();
+ QList< QSharedPointer<CaEntry> > entriesRemovable = service->getEntries(query2);
+ int removableCountBefore = entriesRemovable.count();
+ QList< QSharedPointer<CaEntry> > entriesSysRem = service->getEntries(query3);
+ int sysremoveCountBefore = entriesSysRem.count();
+ //ADD TO DB
+ CaEntry item1;
+ item1.setText("testName_item1");
+ item1.setAttribute("attrName1_item", "attrVal1_item");
+ item1.setEntryTypeName("test_item1");
+ item1.setFlags(UninstallEntryFlag);
+ CaEntry item2;
+ item2.setText("testName_item2");
+ item2.setAttribute("attrName2_item", "attrVal2_item");
+ item2.setEntryTypeName("test_item2");
+ item2.setFlags(RemovableEntryFlag);
+
+ QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
+ QVERIFY(!resultEntry1.isNull());
+ QVERIFY(!resultEntry2.isNull());
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entriesSystem = service->getEntries(query1);
+ int systemCountAfter = entriesSystem.count();
+ entriesRemovable = service->getEntries(query2);
+ int removableCountAfter = entriesRemovable.count();
+ entriesSysRem = service->getEntries(query3);
+ int sysremoveCountAfter = entriesSysRem.count();
+ //CHECK RESULTS
+ QCOMPARE(systemCountBefore+1,systemCountAfter);
+ QCOMPARE(removableCountBefore+1,removableCountAfter);
+ QCOMPARE(sysremoveCountBefore,sysremoveCountAfter);
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultEntry1);
+ service->removeEntry(*resultEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByFlagsOnOff()
+{
+ {
+ //GET INITIAL STATE FROM THE STORAGE
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query1;
+ query1.setFlagsOn(UninstallEntryFlag);
+ query1.setFlagsOff(RemovableEntryFlag);
+ QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
+ int entriesCount1 = entries.count();
+ //ADD TO DB
+ CaEntry item1;
+ item1.setText("testName_item1");
+ item1.setAttribute("attrName1_item", "attrVal1_item");
+ item1.setEntryTypeName("test_item1");
+ item1.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
+ QVERIFY(!resultEntry1.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB
+ CaEntry item2;
+ item2.setText("testName_item1");
+ item2.setAttribute("attrName1_item", "attrVal1_item");
+ item2.setEntryTypeName("test_item1");
+ item2.setFlags(RemovableEntryFlag);
+ QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
+ QVERIFY(!resultEntry2.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB
+ CaEntry item3;
+ item3.setText("testName_item1");
+ item3.setAttribute("attrName1_item", "attrVal1_item");
+ item3.setEntryTypeName("test_item1");
+ item3.setFlags(UninstallEntryFlag|RemovableEntryFlag);
+ QSharedPointer<CaEntry> resultEntry3 = service->createEntry(item3);
+ QVERIFY(!resultEntry3.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount4 = entries.count();
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3,entriesCount4);
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultEntry1);
+ service->removeEntry(*resultEntry2);
+ service->removeEntry(*resultEntry3);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByRoleParent()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //ADD PARENT ENTRY TO THE STORAGE
+ CaEntry parent(GroupEntryRole);
+ CaEntry parent2(GroupEntryRole);
+ parent.setText(QString("text"));
+ parent.setEntryTypeName(QString("type"));
+ parent2.setText(QString("text"));
+ parent2.setEntryTypeName(QString("type"));
+ QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
+ QVERIFY(!parentEntry.isNull());
+ QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
+ QVERIFY(!parentEntry2.isNull());
+
+ //GET INITIAL STATE FROM THE STORAGE
+ CaQuery query1;
+ query1.setEntryRoles(ItemEntryRole);
+ query1.setParentId(parentEntry->id());
+ QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
+ int entriesCount1 = entries.count();
+
+ //ADD TO DB (item, parent2)
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("Type"));
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ service->appendEntryToGroup(parentEntry2->id(),resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB (group, parent2)
+ CaEntry group1(GroupEntryRole);
+ group1.setText(QString("text"));
+ group1.setEntryTypeName(QString("type"));
+ QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
+ QVERIFY(!resultGroup1.isNull());
+ service->appendEntryToGroup(parentEntry2->id(),resultGroup1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB (item, parent1)
+ service->appendEntryToGroup(parentEntry->id(),resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB (group, parent1)
+ service->appendEntryToGroup(parentEntry->id(),resultGroup1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount5 = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3+1, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultGroup1);
+ service->removeEntry(*parentEntry);
+ service->removeEntry(*parentEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByRoleType()
+{
+ {
+ //GET INITIAL STATE FROM THE STORAGE
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query1;
+ query1.setEntryRoles(ItemEntryRole);
+ query1.addEntryTypeName(QString("TestTypeName"));
+ QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
+ int entriesCount1 = entries.count();
+ //ADD TO DB (item, typeOk)
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("TestTypeName"));
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB (item, typeWrong)
+ CaEntry item2;
+ item2.setText(QString("Name"));
+ item2.setEntryTypeName(QString("TestTypeWRONG"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB (group, typeOk)
+ CaEntry group1(GroupEntryRole);
+ group1.setText(QString("text"));
+ group1.setEntryTypeName(QString("TestTypeName"));
+ QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
+ QVERIFY(!resultGroup1.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB (group, typeWrong)
+ CaEntry group2(GroupEntryRole);
+ group2.setText(QString("text"));
+ group2.setEntryTypeName(QString("TestTypeWRONG"));
+ QSharedPointer<CaEntry> resultGroup2 = service->createEntry(group2);
+ QVERIFY(!resultGroup2.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount5 = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultGroup1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultGroup2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByRoleFlags()
+{
+ {
+ //GET INITIAL STATE FROM THE STORAGE
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query1;
+ query1.setEntryRoles(ItemEntryRole);
+ query1.setFlagsOn(UninstallEntryFlag);
+ QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
+ int entriesCount1 = entries.count();
+ //ADD TO DB (item, systemOn)
+ CaEntry item1;
+ item1.setFlags(UninstallEntryFlag);
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("Name"));
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB (item, systemOff)
+ CaEntry item2;
+ item2.setText(QString("Name"));
+ item2.setEntryTypeName(QString("Name"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB(group, systemOn)
+ CaEntry group1(GroupEntryRole);
+ group1.setText(QString("text"));
+ group1.setEntryTypeName(QString("type"));
+ group1.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
+ QVERIFY(!resultGroup1.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB(group, systemoff)
+ CaEntry group2(GroupEntryRole);
+ group2.setText(QString("text"));
+ group2.setEntryTypeName(QString("type"));
+ QSharedPointer<CaEntry> resultGroup2 = service->createEntry(group2);
+ QVERIFY(!resultGroup2.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount5 = entries.count();
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultGroup1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultGroup2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByParentType()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //ADD PARENT TO THE STORAGE
+ CaEntry parent(GroupEntryRole);
+ CaEntry parent2(GroupEntryRole);
+ parent.setText(QString("text"));
+ parent.setEntryTypeName(QString("type"));
+ parent2.setText(QString("text"));
+ parent2.setEntryTypeName(QString("type"));
+ QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
+ QVERIFY(!parentEntry.isNull());
+ QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
+ QVERIFY(!parentEntry2.isNull());
+
+ //GET INITIAL STATE FROM THE STORAGE
+ CaQuery query1;
+ query1.setParentId(parentEntry->id());
+ query1.addEntryTypeName(QString("typeOK"));
+ QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
+ int entriesCount1 = entries.count();
+ //ADD TO DB (parent1, typeok)
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("typeOK"));
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ service->appendEntryToGroup(parentEntry->id(),resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB (parent1, typeWrong)
+ CaEntry item2;
+ item2.setText(QString("Name"));
+ item2.setEntryTypeName(QString("typeWrong"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ service->appendEntryToGroup(parentEntry->id(),resultItem2->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB (parent2, typeOk)
+ service->appendEntryToGroup(parentEntry2->id(),resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB (parent2,typeWrong)
+ service->appendEntryToGroup(parentEntry2->id(),resultItem2->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount5 = entries.count();
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*parentEntry);
+ service->removeEntry(*parentEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByParentFlags()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //ADD PARENT TO THE STORAGE
+ CaEntry parent(GroupEntryRole);
+ CaEntry parent2(GroupEntryRole);
+ parent.setText(QString("text"));
+ parent.setEntryTypeName(QString("type"));
+ parent2.setText(QString("text"));
+ parent2.setEntryTypeName(QString("type"));
+ QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
+ QVERIFY(!parentEntry.isNull());
+ QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
+ QVERIFY(!parentEntry2.isNull());
+
+ //GET INITIAL STATE FROM THE STORAGE
+ CaQuery query1;
+ query1.setParentId(parentEntry->id());
+ query1.setFlagsOn(UninstallEntryFlag);
+ QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
+ int entriesCount1 = entries.count();
+
+ //ADD TO DB (parent1, system)
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("Type"));
+ item1.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ service->appendEntryToGroup(parentEntry->id(),resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB (parent1, not system)
+ CaEntry item2;
+ item2.setText(QString("Name"));
+ item2.setEntryTypeName(QString("Type"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ service->appendEntryToGroup(parentEntry->id(),resultItem2->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB( parent2, system )
+ service->appendEntryToGroup(parentEntry2->id(),resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB (parent2, not system)
+ service->appendEntryToGroup(parentEntry2->id(),resultItem2->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount5 = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*parentEntry);
+ service->removeEntry(*parentEntry2);
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByTypeFlags()
+{
+ {
+ //GET INITIAL STATE FROM THE STORAGE
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query1;
+ query1.addEntryTypeName(QString("TypeOK"));
+ query1.setFlagsOn(UninstallEntryFlag);
+ QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
+ int entriesCount1 = entries.count();
+
+ //ADD TO DB (typeOk, system)
+ CaEntry item1;
+ item1.setFlags(UninstallEntryFlag);
+ item1.setEntryTypeName(QString("TypeOK"));
+ item1.setText(QString("Name"));
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB(typeOk, not system)
+ CaEntry item2;
+ item2.setEntryTypeName(QString("TypeOK"));
+ item2.setText(QString("Name"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB(typeWrong, system)
+ CaEntry item3;
+ item3.setFlags(UninstallEntryFlag);
+ item3.setText(QString("Name"));
+ item3.setEntryTypeName(QString("TypeWrong"));
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item3);
+ QVERIFY(!resultItem3.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB(typeWrong, not system)
+ CaEntry item4;
+ item4.setEntryTypeName(QString("TypeWrong"));
+ item4.setText(QString("Name"));
+
+ QSharedPointer<CaEntry> resultItem4 = service->createEntry(item4);
+ QVERIFY(!resultItem4.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount5 = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+ service->removeEntry(*resultItem4);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByRoleParentType()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //ADD PARENT TO THE STORAGE
+ CaEntry parent(GroupEntryRole);
+ CaEntry parent2(GroupEntryRole);
+ parent.setText(QString("text"));
+ parent.setEntryTypeName(QString("type"));
+ parent2.setText(QString("text"));
+ parent2.setEntryTypeName(QString("type"));
+ QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
+ QVERIFY(!parentEntry.isNull());
+ QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
+ QVERIFY(!parentEntry2.isNull());
+
+ //GET INITIAL STATE FROM THE STORAGE
+ CaQuery query1;
+ query1.setEntryRoles(ItemEntryRole);
+ query1.setParentId(parentEntry->id());
+ query1.addEntryTypeName(QString("TypeOK"));
+ QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
+ int entriesCount1 = entries.count();
+
+ //ADD TO DB ( item, parent1, typeOk)
+ CaEntry item1;
+ item1.setEntryTypeName(QString("TypeOK"));
+ item1.setText(QString("Name"));
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount2= entries.count();
+ //ADD TO DB ( item, parent1, typeWrong)
+ CaEntry item2;
+ item2.setText(QString("Name"));
+ item2.setEntryTypeName(QString("TypeWRONG"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem2->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB ( item, parent2, typeOk)
+ service->appendEntryToGroup(parentEntry2->id(), resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB ( group, parent1, typeOk)
+ CaEntry group1(GroupEntryRole);
+ group1.setText(QString("text"));
+ group1.setEntryTypeName(QString("TypeOK"));
+ QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
+ QVERIFY(!resultGroup1.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultGroup1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount5 = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultGroup1);
+ service->removeEntry(*parentEntry);
+ service->removeEntry(*parentEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByRoleParentFlags()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //ADD PARENT TO THE STORAGE
+ CaEntry parent(GroupEntryRole);
+ CaEntry parent2(GroupEntryRole);
+ parent.setText(QString("text"));
+ parent.setEntryTypeName(QString("type"));
+ parent2.setText(QString("text"));
+ parent2.setEntryTypeName(QString("type"));
+ QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
+ QVERIFY(!parentEntry.isNull());
+ QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
+ QVERIFY(!parentEntry2.isNull());
+
+ //GET INITIAL STATE FROM THE STORAGE
+ CaQuery query1;
+ query1.setEntryRoles(ItemEntryRole);
+ query1.setParentId(parentEntry->id());
+ query1.setFlagsOn(UninstallEntryFlag);
+ QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
+ int entriesCount1 = entries.count();
+
+ //ADD TO DB (item, parent1, system )
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("Type"));
+ item1.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB(item, parent1, not system )
+ CaEntry item2;
+ item2.setText(QString("Name"));
+ item2.setEntryTypeName(QString("Type"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem2->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB(item, parent2 , system )
+ service->appendEntryToGroup(parentEntry2->id(), resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB(group, parent1, system )
+ CaEntry group1(GroupEntryRole);
+ group1.setText(QString("text"));
+ group1.setEntryTypeName(QString("type"));
+ group1.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
+ QVERIFY(!resultGroup1.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultGroup1->id());
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount5 = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*parentEntry);
+ service->removeEntry(*parentEntry2);
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultGroup1);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByParentTypeFlags()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //ADD PARENT TO THE STORAGE
+ CaEntry parent(GroupEntryRole);
+ CaEntry parent2(GroupEntryRole);
+ parent.setText(QString("text"));
+ parent.setEntryTypeName(QString("type"));
+ parent2.setText(QString("text"));
+ parent2.setEntryTypeName(QString("type"));
+ QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
+ QVERIFY(!parentEntry.isNull());
+ QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
+ QVERIFY(!parentEntry2.isNull());
+
+ //GET INITIAL STATE FROM THE STORAGE
+ CaQuery query1;
+ query1.setParentId(parentEntry->id());
+ query1.addEntryTypeName(QString("TypeOK"));
+ query1.setFlagsOn(UninstallEntryFlag);
+ QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
+ int entriesCount1 = entries.count();
+
+ //ADD TO DB (parent1, typeOk, system)
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("TypeOK"));
+ item1.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB(parent1, typeOk, not system)
+ CaEntry item2;
+ item2.setText(QString("Name"));
+ item2.setEntryTypeName(QString("TypeOK"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem2->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB(parent1, typeWRONG, system)
+ CaEntry item3;
+ item3.setText(QString("Name"));
+ item3.setEntryTypeName(QString("TypeWRONG"));
+ item3.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item3);
+ QVERIFY(!resultItem3.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem3->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB(parent2, typeOk, system)
+ service->appendEntryToGroup(parentEntry2->id(), resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount5 = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+ service->removeEntry(*parentEntry);
+ service->removeEntry(*parentEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByRoleParentTypeFlags()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //ADD PARENT TO THE STORAGE
+ CaEntry parent(GroupEntryRole);
+ CaEntry parent2(GroupEntryRole);
+ parent.setText(QString("text"));
+ parent.setEntryTypeName(QString("type"));
+ parent2.setText(QString("text"));
+ parent2.setEntryTypeName(QString("type"));
+ QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
+ QVERIFY(!parentEntry.isNull());
+ QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
+ QVERIFY(!parentEntry2.isNull());
+
+ //GET INITIAL STATE FROM THE STORAGE
+ CaQuery query1;
+ query1.setEntryRoles(ItemEntryRole);
+ query1.setParentId(parentEntry->id());
+ query1.addEntryTypeName(QString("TypeOK"));
+ query1.setFlagsOn(UninstallEntryFlag);
+ QList< QSharedPointer<CaEntry> > entries = service->getEntries(query1);
+ int entriesCount1 = entries.count();
+
+ //ADD TO DB ( item, parent1, typeOK, system )
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("TypeOK"));
+ item1.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB ( item, parent1, typeOK, not system )
+ CaEntry item2;
+ item2.setText(QString("Name"));
+ item2.setEntryTypeName(QString("TypeOK"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem2->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB( item, parent1, typeWRONG, system )
+ CaEntry item3;
+ item3.setText(QString("Name"));
+ item3.setEntryTypeName(QString("TypeWRONG"));
+ item3.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item3);
+ QVERIFY(!resultItem3.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem3->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB( item, parent2, typeOK, system )
+ service->appendEntryToGroup(parentEntry2->id(), resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount5 = entries.count();
+ //ADD TO DB( group, parent1, typeOK, system )
+ CaEntry group1(GroupEntryRole);
+ group1.setText(QString("text"));
+ group1.setEntryTypeName(QString("TypeOK"));
+ group1.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
+ QVERIFY(!resultGroup1.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultGroup1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntries(query1);
+ int entriesCount6 = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+ QCOMPARE(entriesCount5, entriesCount6);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+ service->removeEntry(*resultGroup1);
+ service->removeEntry(*parentEntry);
+ service->removeEntry(*parentEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesCount()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //REMOVE "OLD" ENTRIES FROM STORAGE
+ CaQuery query;
+ query.addEntryTypeName(QString("CountTest"));
+ QList<int> oldIds = service->getEntryIds(query);
+ if (oldIds.count()) {
+ service->removeEntries(oldIds);
+ }
+ //ADD TO DB
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("CountTest"));
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1); //item clone
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1); //item clone
+ //GET STATE FROM THE STORAGE AFTER ADD
+ CaQuery query1;
+ query1.addEntryTypeName(QString("CountTest"));
+ query1.setCount(1);
+ CaQuery query2;
+ query2.addEntryTypeName(QString("CountTest"));
+ query2.setCount(2);
+ CaQuery query3;
+ query3.addEntryTypeName(QString("CountTest"));
+ query3.setCount(3);
+ QList< QSharedPointer<CaEntry> > entries1 = service->getEntries(query1);
+ QList< QSharedPointer<CaEntry> > entries2 = service->getEntries(query2);
+ QList< QSharedPointer<CaEntry> > entries3 = service->getEntries(query3);
+
+ //CHECK RESULTS
+ QCOMPARE(entries1.count(),1);
+ QCOMPARE(entries2.count(),2);
+ QCOMPARE(entries3.count(),3);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesSortCreated()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //REMOVE "OLD" ENTRIES FROM STORAGE
+ CaQuery query;
+ query.addEntryTypeName(QString("Sort1Test"));
+ QList<int> oldIds = service->getEntryIds(query);
+ if (oldIds.count()) {
+ service->removeEntries(oldIds);
+ }
+
+ //ADD TO DB
+ CaEntry item1;
+ item1.setEntryTypeName(QString("Sort1Test"));
+ item1.setText(QString("Name"));
+
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1); //item clone
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1); //item clone
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ CaQuery query1;
+ query1.addEntryTypeName(QString("Sort1Test"));
+ query1.setSort(CreatedTimestampSortAttribute, Qt::AscendingOrder);
+ QList< QSharedPointer<CaEntry> > entriesAsc = service->getEntries(query1);
+ CaQuery query2;
+ query2.addEntryTypeName(QString("Sort1Test"));
+ query2.setSort(CreatedTimestampSortAttribute, Qt::DescendingOrder);
+ QList< QSharedPointer<CaEntry> > entriesDesc = service->getEntries(query2);
+
+ //CHECK RESULTS
+ QCOMPARE(entriesAsc.count(),3);
+ QCOMPARE(entriesDesc.count(),3);
+ QCOMPARE(entriesAsc.at(0)->id(),resultItem1->id());
+ QCOMPARE(entriesAsc.at(1)->id(),resultItem2->id());
+ QCOMPARE(entriesAsc.at(2)->id(),resultItem3->id());
+ QCOMPARE(entriesDesc.at(0)->id(),resultItem3->id());
+ QCOMPARE(entriesDesc.at(1)->id(),resultItem2->id());
+ QCOMPARE(entriesDesc.at(2)->id(),resultItem1->id());
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesSortDefault()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //REMOVE "OLD" ENTRIES FROM STORAGE
+ CaQuery query;
+ query.addEntryTypeName(QString("Sort0Test"));
+ QList<int> oldIds = service->getEntryIds(query);
+ if (oldIds.count()) {
+ service->removeEntries(oldIds);
+ }
+
+ //ADD TO DB
+ CaEntry item1;
+ item1.setEntryTypeName(QString("Sort0Test"));
+ item1.setText(QString("Name"));
+
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1); //item clone
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1); //item clone
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ CaQuery query1;
+ query1.addEntryTypeName(QString("Sort0Test"));
+ query1.setSort(DefaultSortAttribute, Qt::AscendingOrder);
+ QList< QSharedPointer<CaEntry> > entriesAsc = service->getEntries(query1);
+ CaQuery query2;
+ query2.addEntryTypeName(QString("Sort0Test"));
+ query2.setSort(DefaultSortAttribute, Qt::DescendingOrder);
+ QList< QSharedPointer<CaEntry> > entriesDesc = service->getEntries(query2);
+
+ //CHECK RESULTS
+ QCOMPARE(entriesAsc.count(),3);
+ QCOMPARE(entriesDesc.count(),3);
+ QCOMPARE(entriesAsc.at(0)->id(),resultItem1->id());
+ QCOMPARE(entriesAsc.at(1)->id(),resultItem2->id());
+ QCOMPARE(entriesAsc.at(2)->id(),resultItem3->id());
+ QCOMPARE(entriesDesc.at(0)->id(),resultItem3->id());
+ QCOMPARE(entriesDesc.at(1)->id(),resultItem2->id());
+ QCOMPARE(entriesDesc.at(2)->id(),resultItem1->id());
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesSortName()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //REMOVE "OLD" ENTRIES FROM STORAGE
+ CaQuery query;
+ query.addEntryTypeName(QString("Sort2Test"));
+ QList<int> oldIds = service->getEntryIds(query);
+ if (oldIds.count()) {
+ service->removeEntries(oldIds);
+ }
+ //ADD TO DB
+ CaEntry item1;
+ item1.setText(QString("nameB"));
+ item1.setEntryTypeName(QString("Sort2Test"));
+ CaEntry item2;
+ item2.setText(QString("NameA"));
+ item2.setEntryTypeName(QString("Sort2Test"));
+ CaEntry item3;
+ item3.setText(QString("NameC"));
+ item3.setEntryTypeName(QString("Sort2Test"));
+
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item3);
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ CaQuery query1;
+ query1.addEntryTypeName(QString("Sort2Test"));
+ query1.setSort(NameSortAttribute, Qt::AscendingOrder);
+ QList< QSharedPointer<CaEntry> > entriesAsc = service->getEntries(query1);
+ CaQuery query2;
+ query2.addEntryTypeName(QString("Sort2Test"));
+ query2.setSort(NameSortAttribute, Qt::DescendingOrder);
+ QList< QSharedPointer<CaEntry> > entriesDesc = service->getEntries(query2);
+
+ //CHECK RESULTS
+ QCOMPARE(entriesAsc.count(),3);
+ QCOMPARE(entriesDesc.count(),3);
+ QCOMPARE(entriesAsc.at(0)->id(),resultItem2->id());
+ QCOMPARE(entriesAsc.at(1)->id(),resultItem1->id());
+ QCOMPARE(entriesAsc.at(2)->id(),resultItem3->id());
+ QCOMPARE(entriesDesc.at(0)->id(),resultItem3->id());
+ QCOMPARE(entriesDesc.at(1)->id(),resultItem1->id());
+ QCOMPARE(entriesDesc.at(2)->id(),resultItem2->id());
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesSortLast()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //REMOVE "OLD" ENTRIES FROM STORAGE
+ CaQuery query;
+ query.addEntryTypeName(QString("Sort3Test"));
+ QList<int> oldIds = service->getEntryIds(query);
+ if (oldIds.count()) {
+ service->removeEntries(oldIds);
+ }
+ //ADD TO DB
+ CaEntry item1;
+ item1.setEntryTypeName(QString("Sort3Test"));
+ item1.setText(QString("Name"));
+
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1); //item clone
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1); //item clone
+
+ service->touch(*resultItem2);
+ service->touch(*resultItem1);
+ service->touch(*resultItem3);
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ CaQuery query1;
+ query1.addEntryTypeName(QString("Sort3Test"));
+ query1.setSort(LastUsedSortAttribute, Qt::AscendingOrder);
+ QList< QSharedPointer<CaEntry> > entriesAsc = service->getEntries(query1);
+ CaQuery query2;
+ query2.addEntryTypeName(QString("Sort3Test"));
+ query2.setSort(LastUsedSortAttribute, Qt::DescendingOrder);
+ QList< QSharedPointer<CaEntry> > entriesDesc = service->getEntries(query2);
+
+ //CHECK RESULTS
+ QCOMPARE(entriesAsc.count(),3);
+ QCOMPARE(entriesDesc.count(),3);
+ QCOMPARE(entriesAsc.at(0)->id(),resultItem2->id());
+ QCOMPARE(entriesAsc.at(1)->id(),resultItem1->id());
+ QCOMPARE(entriesAsc.at(2)->id(),resultItem3->id());
+ QCOMPARE(entriesDesc.at(0)->id(),resultItem3->id());
+ QCOMPARE(entriesDesc.at(1)->id(),resultItem1->id());
+ QCOMPARE(entriesDesc.at(2)->id(),resultItem2->id());
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesSortMost()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //REMOVE "OLD" ENTRIES FROM STORAGE
+ CaQuery query;
+ query.addEntryTypeName(QString("Sort4Test"));
+ QList<int> oldIds = service->getEntryIds(query);
+ if (oldIds.count()) {
+ service->removeEntries(oldIds);
+ }
+ //ADD TO DB
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("Sort4Test"));
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1); //item clone
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1); //item clone
+
+ service->touch(*resultItem2);
+ service->touch(*resultItem2);
+ service->touch(*resultItem2);
+ service->touch(*resultItem1);
+ service->touch(*resultItem1);
+ service->touch(*resultItem3);
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ CaQuery query1;
+ query1.addEntryTypeName(QString("Sort4Test"));
+ query1.setSort(MostUsedSortAttribute, Qt::AscendingOrder);
+ QList< QSharedPointer<CaEntry> > entriesAsc = service->getEntries(query1);
+ CaQuery query2;
+ query2.addEntryTypeName(QString("Sort4Test"));
+ query2.setSort(MostUsedSortAttribute, Qt::DescendingOrder);
+ QList< QSharedPointer<CaEntry> > entriesDesc = service->getEntries(query2);
+
+ //CHECK RESULTS
+ QCOMPARE(entriesAsc.count(),3);
+ QCOMPARE(entriesDesc.count(),3);
+ QCOMPARE(entriesAsc.at(0)->id(),resultItem3->id());
+ QCOMPARE(entriesAsc.at(1)->id(),resultItem1->id());
+ QCOMPARE(entriesAsc.at(2)->id(),resultItem2->id());
+ QCOMPARE(entriesDesc.at(0)->id(),resultItem2->id());
+ QCOMPARE(entriesDesc.at(1)->id(),resultItem1->id());
+ QCOMPARE(entriesDesc.at(2)->id(),resultItem3->id());
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsByRole()
+{
+ {
+ //CHECK INITIAL STATE IN DB
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query;
+ query.setEntryRoles(ItemEntryRole);
+ QList<int> items = service->getEntryIds(query);
+ int itemsCountBefore = items.count();
+ query.setEntryRoles(GroupEntryRole);
+ QList<int> groups = service->getEntryIds(query);
+ int groupsCountBefore = groups.count();
+ query.setEntryRoles(ItemEntryRole | GroupEntryRole);
+ QList<int> itemsOrGroups = service->getEntryIds(query);
+ int itemsOrGroupsCountBefore = itemsOrGroups.count();
+
+
+ //ADD TO STORAGE
+ CaEntry item;
+ item.setText("testName_item");
+ item.setAttribute("attrName1_item", "attrVal1_item");
+ item.setEntryTypeName("test_item");
+ item.setFlags(RemovableEntryFlag);
+ CaEntry group(GroupEntryRole);
+ group.setText("testName_group");
+ group.setAttribute("attrName1_group", "attrVal1_group");
+ group.setEntryTypeName("test_group");
+ group.setFlags(RemovableEntryFlag);
+
+ QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item);
+ QSharedPointer<CaEntry> resultEntry2 = service->createEntry(group);
+ QVERIFY(!resultEntry1.isNull());
+ QVERIFY(!resultEntry2.isNull());
+
+ //GET RESULTS AFTER ADD
+ query.setEntryRoles(ItemEntryRole);
+ items = service->getEntryIds(query);
+ QCOMPARE(service->lastError(), NoErrorCode);
+ int itemsCountAfter = items.count();
+ query.setEntryRoles(GroupEntryRole);
+ groups = service->getEntryIds(query);
+ QCOMPARE(service->lastError(), NoErrorCode);
+ int groupsCountAfter = groups.count();
+ query.setEntryRoles(ItemEntryRole | GroupEntryRole);
+ itemsOrGroups = service->getEntryIds(query);
+ QCOMPARE(service->lastError(), NoErrorCode);
+ int itemsOrGroupsCountAfter = itemsOrGroups.count();
+
+ //CHECK RESULTS
+ QCOMPARE(itemsCountAfter, itemsCountBefore+1);
+ QCOMPARE(groupsCountAfter, groupsCountBefore+1);
+ QCOMPARE(itemsOrGroupsCountAfter, itemsOrGroupsCountBefore+2);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultEntry1);
+ service->removeEntry(*resultEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsByParent()
+{
+ {
+ //ADD TEST DATA TO THE STORAGE
+ QSharedPointer<CaService> service = CaService::instance();
+ CaEntry group(GroupEntryRole);
+ group.setText("testName_group");
+ group.setAttribute("attrName1_group", "attrVal1_group");
+ group.setEntryTypeName("test_group");
+ group.setFlags(RemovableEntryFlag);
+ QSharedPointer<CaEntry> parentEntry = service->createEntry(group);
+ QVERIFY(!parentEntry.isNull());
+ CaEntry item;
+ item.setText("testName_item");
+ item.setAttribute("attrName1_item", "attrVal1_item");
+ item.setEntryTypeName("test_item");
+ item.setFlags(RemovableEntryFlag);
+ QSharedPointer<CaEntry> childEntry = service->createEntry(item);
+ QVERIFY(!childEntry.isNull());
+
+ //PREPARE QUERY
+ CaQuery query;
+ query.setParentId(parentEntry->id());
+ QList<int> entries = service->getEntryIds(query);
+ int countBefore = entries.count();
+
+ //APPEND ENTRY TO THE GROUP
+ service->appendEntryToGroup(parentEntry->id(),childEntry->id());
+ entries = service->getEntryIds(query);
+ int countAfter = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(countBefore, 0);
+ QCOMPARE(countAfter, 1);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*childEntry);
+ service->removeEntry(*parentEntry);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsByType1()
+{
+ {
+ //CHECK INITIAL STATE IN DB
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query;
+ QStringList strList;
+ strList << QString("WRONGTYPENAME");
+ query.setEntryTypeNames(strList);
+ QList<int> entriesWrongType = service->getEntryIds(query);
+ int countWrongBefore = entriesWrongType.count();
+ strList.clear();
+ strList << QString("WRONGTYPENAME");
+ strList << QString("test_item1");
+ strList << QString("test_item2");
+ query.setEntryTypeNames(strList);
+ QList<int> entriesWrong12 = service->getEntryIds(query);
+ int countWrong12Before = entriesWrong12.count();
+ strList.clear();
+ strList << QString("test_item1");
+ query.setEntryTypeNames(strList);
+ QList<int> entries1 = service->getEntryIds(query);
+ int count1Before = entries1.count();
+ strList.clear();
+ strList << QString("test_item2");
+ query.setEntryTypeNames(strList);
+ QList<int> entries2 = service->getEntryIds(query);
+ int count2Before = entries2.count();
+ strList.clear();
+ strList << QString("test_item1");
+ strList << QString("test_item2");
+ query.setEntryTypeNames(strList);
+ QList<int> entries12 = service->getEntryIds(query);
+ int count12Before = entries12.count();
+
+ //ADD TEST DATA TO THE STORAGE
+ CaEntry item1;
+ item1.setText("testName_item1");
+ item1.setAttribute("attrName1_item", "attrVal1_item");
+ item1.setEntryTypeName("test_item1");
+ CaEntry item2;
+ item2.setText("testName_item2");
+ item2.setAttribute("attrName2_item", "attrVal2_item");
+ item2.setEntryTypeName("test_item2");
+ QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
+ QVERIFY(!resultEntry1.isNull());
+ QVERIFY(!resultEntry2.isNull());
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ strList.clear();
+ strList << QString("WRONGTYPENAME");
+ query.setEntryTypeNames(strList);
+ query.setEntryTypeNames(strList);
+ entriesWrongType = service->getEntryIds(query);
+ int countWrongAfter = entriesWrongType.count();
+ strList.clear();
+ strList << QString("WRONGTYPENAME");
+ strList << QString("test_item1");
+ strList << QString("test_item2");
+ query.setEntryTypeNames(strList);
+ entriesWrong12 = service->getEntryIds(query);
+ int countWrong12After = entriesWrong12.count();
+ strList.clear();
+ strList << QString("test_item1");
+ query.setEntryTypeNames(strList);
+ entries1 = service->getEntryIds(query);
+ int count1After = entries1.count();
+ strList.clear();
+ strList << QString("test_item2");
+ query.setEntryTypeNames(strList);
+ entries2 = service->getEntryIds(query);
+ int count2After = entries2.count();
+ strList.clear();
+ strList << QString("test_item1");
+ strList << QString("test_item2");
+ query.setEntryTypeNames(strList);
+ entries12 = service->getEntryIds(query);
+ int count12After = entries12.count();
+
+ //CHECK RESULTS
+ QCOMPARE(countWrongBefore,countWrongAfter);
+ QCOMPARE(countWrong12Before+2,countWrong12After);
+ QCOMPARE(count1Before+1,count1After);
+ QCOMPARE(count2Before+1,count2After);
+ QCOMPARE(count12Before+2,count12After);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultEntry1);
+ service->removeEntry(*resultEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsByType2()
+{
+ {
+ //CHECK INITIAL STATE IN DB
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query;
+ QStringList strList;
+ strList << QString("test_item1");
+ query.setEntryTypeNames(strList);
+ query.addEntryTypeName(QString("test_item2"));
+ QList<int> entries12 = service->getEntryIds(query);
+ int count12Before = entries12.count();
+
+ //ADD TEST DATA TO THE STORAGE
+ CaEntry item1;
+ item1.setText("testName_item1");
+ item1.setAttribute("attrName1_item", "attrVal1_item");
+ item1.setEntryTypeName("test_item1");
+ CaEntry item2;
+ item2.setText("testName_item2");
+ item2.setAttribute("attrName2_item", "attrVal2_item");
+ item2.setEntryTypeName("test_item2");
+
+ QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
+ QVERIFY(!resultEntry1.isNull());
+ QVERIFY(!resultEntry2.isNull());
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ strList.clear();
+ strList << QString("test_item1");
+ query.setEntryTypeNames(strList);
+ query.addEntryTypeName(QString("test_item2"));
+ entries12 = service->getEntryIds(query);
+ int count12After = entries12.count();
+
+ //CHECK RESULTS
+ QCOMPARE(count12Before+2,count12After);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultEntry1);
+ service->removeEntry(*resultEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsByFlagsOn()
+{
+ {
+ //CHECK INITIAL STATE IN DB
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query1;
+ query1.setFlagsOn(UninstallEntryFlag);
+ CaQuery query2;
+ query2.setFlagsOn(RemovableEntryFlag);
+ CaQuery query3;
+ query3.setFlagsOn(UninstallEntryFlag|RemovableEntryFlag);
+ QList<int> entriesSystem = service->getEntryIds(query1);
+ int systemCountBefore = entriesSystem.count();
+ QList<int> entriesRemovable = service->getEntryIds(query2);
+ int removableCountBefore = entriesRemovable.count();
+ QList<int> entriesSysRem = service->getEntryIds(query3);
+ int sysremoveCountBefore = entriesSysRem.count();
+ //ADD TO DB
+ CaEntry item1;
+ item1.setText("testName_item1");
+ item1.setAttribute("attrName1_item", "attrVal1_item");
+ item1.setEntryTypeName("test_item1");
+ item1.setFlags(UninstallEntryFlag);
+ CaEntry item2;
+ item2.setText("testName_item2");
+ item2.setAttribute("attrName2_item", "attrVal2_item");
+ item2.setEntryTypeName("test_item2");
+ item2.setFlags(UninstallEntryFlag | RemovableEntryFlag);
+ QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
+ QVERIFY(!resultEntry1.isNull());
+ QVERIFY(!resultEntry2.isNull());
+ //CHECK STATE IN THE STORAGE AFTER ADD
+ entriesSystem = service->getEntryIds(query1);
+ int systemCountAfter = entriesSystem.count();
+ entriesRemovable = service->getEntryIds(query2);
+ int removableCountAfter = entriesRemovable.count();
+ entriesSysRem = service->getEntryIds(query3);
+ int sysremoveCountAfter = entriesSysRem.count();
+ //CHECK RESULTS
+ QCOMPARE(systemCountBefore+2,systemCountAfter);
+ QCOMPARE(removableCountBefore+1,removableCountAfter);
+ QCOMPARE(sysremoveCountBefore+1,sysremoveCountAfter);
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultEntry1);
+ service->removeEntry(*resultEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsByFlagsOff()
+{
+ {
+ //GET INITIAL STATE FROM THE STORAGE
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query1;
+ query1.setFlagsOff(UninstallEntryFlag);
+ CaQuery query2;
+ query2.setFlagsOff(RemovableEntryFlag);
+ CaQuery query3;
+ query3.setFlagsOff(UninstallEntryFlag|RemovableEntryFlag);
+ QList<int> entriesSystem = service->getEntryIds(query1);
+ int systemCountBefore = entriesSystem.count();
+ QList<int> entriesRemovable = service->getEntryIds(query2);
+ int removableCountBefore = entriesRemovable.count();
+ QList<int> entriesSysRem = service->getEntryIds(query3);
+ int sysremoveCountBefore = entriesSysRem.count();
+ //ADD TO DB
+ CaEntry item1;
+ item1.setText("testName_item1");
+ item1.setAttribute("attrName1_item", "attrVal1_item");
+ item1.setEntryTypeName("test_item1");
+ item1.setFlags(UninstallEntryFlag);
+ CaEntry item2;
+ item2.setText("testName_item2");
+ item2.setAttribute("attrName2_item", "attrVal2_item");
+ item2.setEntryTypeName("test_item2");
+ item2.setFlags(RemovableEntryFlag);
+
+ QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
+ QVERIFY(!resultEntry1.isNull());
+ QVERIFY(!resultEntry2.isNull());
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entriesSystem = service->getEntryIds(query1);
+ int systemCountAfter = entriesSystem.count();
+ entriesRemovable = service->getEntryIds(query2);
+ int removableCountAfter = entriesRemovable.count();
+ entriesSysRem = service->getEntryIds(query3);
+ int sysremoveCountAfter = entriesSysRem.count();
+ //CHECK RESULTS
+ QCOMPARE(systemCountBefore+1,systemCountAfter);
+ QCOMPARE(removableCountBefore+1,removableCountAfter);
+ QCOMPARE(sysremoveCountBefore,sysremoveCountAfter);
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultEntry1);
+ service->removeEntry(*resultEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsByFlagsOnOff()
+{
+ {
+ //GET INITIAL STATE FROM THE STORAGE
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query1;
+ query1.setFlagsOn(UninstallEntryFlag);
+ query1.setFlagsOff(RemovableEntryFlag);
+ QList<int> entries = service->getEntryIds(query1);
+ int entriesCount1 = entries.count();
+ //ADD TO DB
+ CaEntry item1;
+ item1.setText("testName_item1");
+ item1.setAttribute("attrName1_item", "attrVal1_item");
+ item1.setEntryTypeName("test_item1");
+ item1.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultEntry1 = service->createEntry(item1);
+ QVERIFY(!resultEntry1.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB
+ CaEntry item2;
+ item2.setText("testName_item1");
+ item2.setAttribute("attrName1_item", "attrVal1_item");
+ item2.setEntryTypeName("test_item1");
+ item2.setFlags(RemovableEntryFlag);
+ QSharedPointer<CaEntry> resultEntry2 = service->createEntry(item2);
+ QVERIFY(!resultEntry2.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB
+ CaEntry item3;
+ item3.setText("testName_item1");
+ item3.setAttribute("attrName1_item", "attrVal1_item");
+ item3.setEntryTypeName("test_item1");
+ item3.setFlags(UninstallEntryFlag|RemovableEntryFlag);
+ QSharedPointer<CaEntry> resultEntry3 = service->createEntry(item3);
+ QVERIFY(!resultEntry3.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount4 = entries.count();
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3,entriesCount4);
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultEntry1);
+ service->removeEntry(*resultEntry2);
+ service->removeEntry(*resultEntry3);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsByRoleParent()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //ADD PARENT ENTRY TO THE STORAGE
+ CaEntry parent(GroupEntryRole);
+ CaEntry parent2(GroupEntryRole);
+ parent.setText(QString("text"));
+ parent.setEntryTypeName(QString("TypeOK"));
+ parent2.setText(QString("text"));
+ parent2.setEntryTypeName(QString("TypeOK"));
+
+ QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
+ QVERIFY(!parentEntry.isNull());
+ QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
+ QVERIFY(!parentEntry2.isNull());
+
+ //GET INITIAL STATE FROM THE STORAGE
+ CaQuery query1;
+ query1.setEntryRoles(ItemEntryRole);
+ query1.setParentId(parentEntry->id());
+ QList<int> entries = service->getEntryIds(query1);
+ int entriesCount1 = entries.count();
+
+ //ADD TO DB (item, parent2)
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("Type"));
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ service->appendEntryToGroup(parentEntry2->id(),resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB (group, parent2)
+ CaEntry group1(GroupEntryRole);
+ group1.setText(QString("text"));
+ group1.setEntryTypeName(QString("TypeOK"));
+ QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
+ QVERIFY(!resultGroup1.isNull());
+ service->appendEntryToGroup(parentEntry2->id(),resultGroup1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB (item, parent1)
+ service->appendEntryToGroup(parentEntry->id(),resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB (group, parent1)
+ service->appendEntryToGroup(parentEntry->id(),resultGroup1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount5 = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3+1, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultGroup1);
+ service->removeEntry(*parentEntry);
+ service->removeEntry(*parentEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsByRoleType()
+{
+ {
+ //GET INITIAL STATE FROM THE STORAGE
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query1;
+ query1.setEntryRoles(ItemEntryRole);
+ query1.addEntryTypeName(QString("TestTypeName"));
+ QList<int> entries = service->getEntryIds(query1);
+ int entriesCount1 = entries.count();
+ //ADD TO DB (item, typeOk)
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("TestTypeName"));
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB (item, typeWrong)
+ CaEntry item2;
+ item2.setText(QString("Name"));
+ item2.setEntryTypeName(QString("TestTypeWRONG"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB (group, typeOk)
+ CaEntry group1(GroupEntryRole);
+ group1.setText(QString("text"));
+ group1.setEntryTypeName(QString("TestTypeName"));
+ QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
+ QVERIFY(!resultGroup1.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB (group, typeWrong)
+ CaEntry group2(GroupEntryRole);
+ group2.setText(QString("text"));
+ group2.setEntryTypeName(QString("TestTypeWRONG"));
+ QSharedPointer<CaEntry> resultGroup2 = service->createEntry(group2);
+ QVERIFY(!resultGroup2.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount5 = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultGroup1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultGroup2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsByRoleFlags()
+{
+ {
+ //GET INITIAL STATE FROM THE STORAGE
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query1;
+ query1.setEntryRoles(ItemEntryRole);
+ query1.setFlagsOn(UninstallEntryFlag);
+ QList<int> entries = service->getEntryIds(query1);
+ int entriesCount1 = entries.count();
+ //ADD TO DB (item, systemOn)
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("Type"));
+ item1.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB (item, systemOff)
+ CaEntry item2;
+ item2.setText(QString("Name"));
+ item2.setEntryTypeName(QString("Type"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB(group, systemOn)
+ CaEntry group1(GroupEntryRole);
+ group1.setText(QString("text"));
+ group1.setEntryTypeName(QString("type"));
+ group1.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
+ QVERIFY(!resultGroup1.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB(group, systemoff)
+ CaEntry group2(GroupEntryRole);
+ group2.setText(QString("text"));
+ group2.setEntryTypeName(QString("type"));
+ QSharedPointer<CaEntry> resultGroup2 = service->createEntry(group2);
+ QVERIFY(!resultGroup2.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount5 = entries.count();
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultGroup1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultGroup2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsByParentType()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //ADD PARENT TO THE STORAGE
+ CaEntry parent(GroupEntryRole);
+ CaEntry parent2(GroupEntryRole);
+ parent.setText(QString("text"));
+ parent.setEntryTypeName(QString("type"));
+ parent2.setText(QString("text"));
+ parent2.setEntryTypeName(QString("type"));
+
+ QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
+ QVERIFY(!parentEntry.isNull());
+ QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
+ QVERIFY(!parentEntry2.isNull());
+
+ //GET INITIAL STATE FROM THE STORAGE
+ CaQuery query1;
+ query1.setParentId(parentEntry->id());
+ query1.addEntryTypeName(QString("typeOK"));
+ QList<int> entries = service->getEntryIds(query1);
+ int entriesCount1 = entries.count();
+ //ADD TO DB (parent1, typeok)
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("typeOK"));
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ service->appendEntryToGroup(parentEntry->id(),resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB (parent1, typeWrong)
+ CaEntry item2;
+ item2.setText(QString("Name"));
+ item2.setEntryTypeName(QString("typeWrong"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ service->appendEntryToGroup(parentEntry->id(),resultItem2->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB (parent2, typeOk)
+ service->appendEntryToGroup(parentEntry2->id(),resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB (parent2,typeWrong)
+ service->appendEntryToGroup(parentEntry2->id(),resultItem2->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount5 = entries.count();
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*parentEntry);
+ service->removeEntry(*parentEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsByParentFlags()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //ADD PARENT TO THE STORAGE
+ CaEntry parent(GroupEntryRole);
+ CaEntry parent2(GroupEntryRole);
+ parent.setText(QString("text"));
+ parent.setEntryTypeName(QString("type"));
+ parent2.setText(QString("text"));
+ parent2.setEntryTypeName(QString("type"));
+ QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
+ QVERIFY(!parentEntry.isNull());
+ QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
+ QVERIFY(!parentEntry2.isNull());
+
+ //GET INITIAL STATE FROM THE STORAGE
+ CaQuery query1;
+ query1.setParentId(parentEntry->id());
+ query1.setFlagsOn(UninstallEntryFlag);
+ QList<int> entries = service->getEntryIds(query1);
+ int entriesCount1 = entries.count();
+
+ //ADD TO DB (parent1, system)
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("Type"));
+ item1.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ service->appendEntryToGroup(parentEntry->id(),resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB (parent1, not system)
+ CaEntry item2;
+ item2.setText(QString("Name"));
+ item2.setEntryTypeName(QString("Type"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ service->appendEntryToGroup(parentEntry->id(),resultItem2->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB( parent2, system )
+ service->appendEntryToGroup(parentEntry2->id(),resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB (parent2, not system)
+ service->appendEntryToGroup(parentEntry2->id(),resultItem2->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount5 = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*parentEntry);
+ service->removeEntry(*parentEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsByTypeFlags()
+{
+ {
+ //GET INITIAL STATE FROM THE STORAGE
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query1;
+ query1.addEntryTypeName(QString("TypeOK"));
+ query1.setFlagsOn(UninstallEntryFlag);
+ QList<int> entries = service->getEntryIds(query1);
+ int entriesCount1 = entries.count();
+
+ //ADD TO DB (typeOk, system)
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setFlags(UninstallEntryFlag);
+ item1.setEntryTypeName(QString("TypeOK"));
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB(typeOk, not system)
+ CaEntry item2;
+ item2.setText(QString("Name"));
+ item2.setEntryTypeName(QString("TypeOK"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB(typeWrong, system)
+ CaEntry item3;
+ item3.setText(QString("Name"));
+ item3.setFlags(UninstallEntryFlag);
+ item3.setEntryTypeName(QString("TypeWrong"));
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item3);
+ QVERIFY(!resultItem3.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB(typeWrong, not system)
+ CaEntry item4;
+ item4.setText(QString("Name"));
+ item4.setEntryTypeName(QString("TypeWrong"));
+ QSharedPointer<CaEntry> resultItem4 = service->createEntry(item4);
+ QVERIFY(!resultItem4.isNull());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount5 = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+ service->removeEntry(*resultItem4);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsByRoleParentType()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //ADD PARENT TO THE STORAGE
+ CaEntry parent(GroupEntryRole);
+ CaEntry parent2(GroupEntryRole);
+ parent.setText(QString("text"));
+ parent.setEntryTypeName(QString("type"));
+ parent2.setText(QString("text"));
+ parent2.setEntryTypeName(QString("type"));
+ QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
+ QVERIFY(!parentEntry.isNull());
+ QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
+ QVERIFY(!parentEntry2.isNull());
+
+ //GET INITIAL STATE FROM THE STORAGE
+ CaQuery query1;
+ query1.setEntryRoles(ItemEntryRole);
+ query1.setParentId(parentEntry->id());
+ query1.addEntryTypeName(QString("TypeOK"));
+ QList<int> entries = service->getEntryIds(query1);
+ int entriesCount1 = entries.count();
+
+ //ADD TO DB ( item, parent1, typeOk)
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("TypeOK"));
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount2= entries.count();
+ //ADD TO DB ( item, parent1, typeWrong)
+ CaEntry item2;
+ item2.setText(QString("Name"));
+ item2.setEntryTypeName(QString("TypeWRONG"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem2->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB ( item, parent2, typeOk)
+ service->appendEntryToGroup(parentEntry2->id(), resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB ( group, parent1, typeOk)
+ CaEntry group1(GroupEntryRole);
+ group1.setText(QString("text"));
+ group1.setEntryTypeName(QString("TypeOK"));
+ QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
+ QVERIFY(!resultGroup1.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultGroup1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount5 = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultGroup1);
+ service->removeEntry(*parentEntry);
+ service->removeEntry(*parentEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsByRoleParentFlags()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //ADD PARENT TO THE STORAGE
+ CaEntry parent(GroupEntryRole);
+ CaEntry parent2(GroupEntryRole);
+ parent.setText(QString("text"));
+ parent.setEntryTypeName(QString("Type"));
+ parent2.setText(QString("text"));
+ parent2.setEntryTypeName(QString("Type"));
+ QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
+ QVERIFY(!parentEntry.isNull());
+ QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
+ QVERIFY(!parentEntry2.isNull());
+
+ //GET INITIAL STATE FROM THE STORAGE
+ CaQuery query1;
+ query1.setEntryRoles(ItemEntryRole);
+ query1.setParentId(parentEntry->id());
+ query1.setFlagsOn(UninstallEntryFlag);
+ QList<int> entries = service->getEntryIds(query1);
+ int entriesCount1 = entries.count();
+
+ //ADD TO DB (item, parent1, system )
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("Type"));
+ item1.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB(item, parent1, not system )
+ CaEntry item2;
+ item2.setText(QString("Name"));
+ item2.setEntryTypeName(QString("Type"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem2->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB(item, parent2 , system )
+ service->appendEntryToGroup(parentEntry2->id(), resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB(group, parent1, system )
+ CaEntry group1(GroupEntryRole);
+ group1.setText(QString("text"));
+ group1.setEntryTypeName(QString("Type"));
+ group1.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
+ QVERIFY(!resultGroup1.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultGroup1->id());
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount5 = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultGroup1);
+ service->removeEntry(*parentEntry);
+ service->removeEntry(*parentEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsByParentTypeFlags()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //ADD PARENT TO THE STORAGE
+ CaEntry parent(GroupEntryRole);
+ CaEntry parent2(GroupEntryRole);
+ parent.setText(QString("text"));
+ parent.setEntryTypeName(QString("Type"));
+ parent2.setText(QString("text"));
+ parent2.setEntryTypeName(QString("Type"));
+ QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
+ QVERIFY(!parentEntry.isNull());
+ QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
+ QVERIFY(!parentEntry2.isNull());
+
+ //GET INITIAL STATE FROM THE STORAGE
+ CaQuery query1;
+ query1.setParentId(parentEntry->id());
+ query1.addEntryTypeName(QString("TypeOK"));
+ query1.setFlagsOn(UninstallEntryFlag);
+ QList<int> entries = service->getEntryIds(query1);
+ int entriesCount1 = entries.count();
+
+ //ADD TO DB (parent1, typeOk, system)
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("TypeOK"));
+ item1.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB(parent1, typeOk, not system)
+ CaEntry item2;
+ item2.setText(QString("Name"));
+ item2.setEntryTypeName(QString("TypeOK"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem2->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB(parent1, typeWRONG, system)
+ CaEntry item3;
+ item3.setText(QString("Name"));
+ item3.setEntryTypeName(QString("TypeWRONG"));
+ item3.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item3);
+ QVERIFY(!resultItem3.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem3->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB(parent2, typeOk, system)
+ service->appendEntryToGroup(parentEntry2->id(), resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount5 = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+ service->removeEntry(*parentEntry);
+ service->removeEntry(*parentEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsByRoleParentTypeFlags()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //ADD PARENT TO THE STORAGE
+ CaEntry parent(GroupEntryRole);
+ CaEntry parent2(GroupEntryRole);
+ parent.setText(QString("text"));
+ parent.setEntryTypeName(QString("Type"));
+ parent2.setText(QString("text"));
+ parent2.setEntryTypeName(QString("Type"));
+ QSharedPointer<CaEntry> parentEntry = service->createEntry(parent);
+ QVERIFY(!parentEntry.isNull());
+ QSharedPointer<CaEntry> parentEntry2 = service->createEntry(parent2);
+ QVERIFY(!parentEntry2.isNull());
+
+ //GET INITIAL STATE FROM THE STORAGE
+ CaQuery query1;
+ query1.setEntryRoles(ItemEntryRole);
+ query1.setParentId(parentEntry->id());
+ query1.addEntryTypeName(QString("TypeOK"));
+ query1.setFlagsOn(UninstallEntryFlag);
+ QList<int> entries = service->getEntryIds(query1);
+ int entriesCount1 = entries.count();
+
+ //ADD TO DB ( item, parent1, typeOK, system )
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("TypeOK"));
+ item1.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QVERIFY(!resultItem1.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount2 = entries.count();
+ //ADD TO DB ( item, parent1, typeOK, not system )
+ CaEntry item2;
+ item2.setText(QString("Name"));
+ item2.setEntryTypeName(QString("TypeOK"));
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QVERIFY(!resultItem2.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem2->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount3 = entries.count();
+ //ADD TO DB( item, parent1, typeWRONG, system )
+ CaEntry item3;
+ item3.setText(QString("Name"));
+ item3.setEntryTypeName(QString("TypeWRONG"));
+ item3.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item3);
+ QVERIFY(!resultItem3.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultItem3->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount4 = entries.count();
+ //ADD TO DB( item, parent2, typeOK, system )
+ service->appendEntryToGroup(parentEntry2->id(), resultItem1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount5 = entries.count();
+ //ADD TO DB( group, parent1, typeOK, system )
+ CaEntry group1(GroupEntryRole);
+ group1.setText(QString("text"));
+ group1.setEntryTypeName(QString("TypeOK"));
+ group1.setFlags(UninstallEntryFlag);
+ QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group1);
+ QVERIFY(!resultGroup1.isNull());
+ service->appendEntryToGroup(parentEntry->id(), resultGroup1->id());
+ //GET STATE FROM THE STORAGE AFTER ADD
+ entries = service->getEntryIds(query1);
+ int entriesCount6 = entries.count();
+
+ //CHECK RESULTS
+ QCOMPARE(entriesCount1+1,entriesCount2);
+ QCOMPARE(entriesCount2,entriesCount3);
+ QCOMPARE(entriesCount3, entriesCount4);
+ QCOMPARE(entriesCount4, entriesCount5);
+ QCOMPARE(entriesCount5, entriesCount6);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+ service->removeEntry(*resultGroup1);
+ service->removeEntry(*parentEntry);
+ service->removeEntry(*parentEntry2);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsCount()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //REMOVE "OLD" ENTRIES FROM STORAGE
+ CaQuery query;
+ query.addEntryTypeName(QString("CountTest2"));
+ QList<int> oldIds = service->getEntryIds(query);
+ if (oldIds.count()) {
+ service->removeEntries(oldIds);
+ }
+ //ADD TO DB
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("CountTest2"));
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1); //item clone
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1); //item clone
+ //GET STATE FROM THE STORAGE AFTER ADD
+ CaQuery query1;
+ query1.addEntryTypeName(QString("CountTest2"));
+ query1.setCount(1);
+ CaQuery query2;
+ query2.addEntryTypeName(QString("CountTest2"));
+ query2.setCount(2);
+ CaQuery query3;
+ query3.addEntryTypeName(QString("CountTest2"));
+ query3.setCount(3);
+ QList<int> entries1 = service->getEntryIds(query1);
+ QList<int> entries2 = service->getEntryIds(query2);
+ QList<int> entries3 = service->getEntryIds(query3);
+
+ //CHECK RESULTS
+ QCOMPARE(entries1.count(),1);
+ QCOMPARE(entries2.count(),2);
+ QCOMPARE(entries3.count(),3);
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsSortDefault()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //REMOVE "OLD" ENTRIES FROM STORAGE
+ CaQuery query;
+ query.addEntryTypeName(QString("Sort9Test"));
+ QList<int> oldIds = service->getEntryIds(query);
+ if (oldIds.count()) {
+ service->removeEntries(oldIds);
+ }
+
+ //ADD TO DB
+ CaEntry item1;
+ item1.setEntryTypeName(QString("Sort9Test"));
+ item1.setText(QString("Name"));
+
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1); //item clone
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1); //item clone
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ CaQuery query1;
+ query1.addEntryTypeName(QString("Sort9Test"));
+ query1.setSort(DefaultSortAttribute, Qt::AscendingOrder);
+ QList<int> entriesAsc = service->getEntryIds(query1);
+ CaQuery query2;
+ query2.addEntryTypeName(QString("Sort9Test"));
+ query2.setSort(DefaultSortAttribute, Qt::DescendingOrder);
+ QList<int> entriesDesc = service->getEntryIds(query2);
+
+ //CHECK RESULTS
+ QCOMPARE(entriesAsc.count(),3);
+ QCOMPARE(entriesDesc.count(),3);
+ QCOMPARE(entriesAsc.at(0),resultItem1->id());
+ QCOMPARE(entriesAsc.at(1),resultItem2->id());
+ QCOMPARE(entriesAsc.at(2),resultItem3->id());
+ QCOMPARE(entriesDesc.at(0),resultItem3->id());
+ QCOMPARE(entriesDesc.at(1),resultItem2->id());
+ QCOMPARE(entriesDesc.at(2),resultItem1->id());
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsSortCreated()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //REMOVE "OLD" ENTRIES FROM STORAGE
+ CaQuery query;
+ query.addEntryTypeName(QString("Sort5Test"));
+ QList<int> oldIds = service->getEntryIds(query);
+ if (oldIds.count()) {
+ service->removeEntries(oldIds);
+ }
+ //ADD TO DB
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("Sort5Test"));
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1); //item clone
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1); //item clone
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ CaQuery query1;
+ query1.addEntryTypeName(QString("Sort5Test"));
+ query1.setSort(CreatedTimestampSortAttribute, Qt::AscendingOrder);
+ QList<int> entriesAsc = service->getEntryIds(query1);
+ CaQuery query2;
+ query2.addEntryTypeName(QString("Sort5Test"));
+ query2.setSort(CreatedTimestampSortAttribute, Qt::DescendingOrder);
+ QList<int> entriesDesc = service->getEntryIds(query2);
+
+ //CHECK RESULTS
+ QCOMPARE(entriesAsc.count(),3);
+ QCOMPARE(entriesDesc.count(),3);
+ QCOMPARE(entriesAsc.at(0),resultItem1->id());
+ QCOMPARE(entriesAsc.at(1),resultItem2->id());
+ QCOMPARE(entriesAsc.at(2),resultItem3->id());
+ QCOMPARE(entriesDesc.at(0),resultItem3->id());
+ QCOMPARE(entriesDesc.at(1),resultItem2->id());
+ QCOMPARE(entriesDesc.at(2),resultItem1->id());
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsSortName()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //REMOVE "OLD" ENTRIES FROM STORAGE
+ CaQuery query;
+ query.addEntryTypeName(QString("Sort6Test"));
+ QList<int> oldIds = service->getEntryIds(query);
+ if (oldIds.count()) {
+ service->removeEntries(oldIds);
+ }
+ //ADD TO DB
+ CaEntry item1;
+ item1.setText(QString("NameB"));
+ item1.setEntryTypeName(QString("Sort6Test"));
+ CaEntry item2;
+ item2.setText(QString("NameA"));
+ item2.setEntryTypeName(QString("Sort6Test"));
+ CaEntry item3;
+ item3.setText(QString("NameC"));
+ item3.setEntryTypeName(QString("Sort6Test"));
+
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item2);
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item3);
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ CaQuery query1;
+ query1.addEntryTypeName(QString("Sort6Test"));
+ query1.setSort(NameSortAttribute, Qt::AscendingOrder);
+ QList<int> entriesAsc = service->getEntryIds(query1);
+ CaQuery query2;
+ query2.addEntryTypeName(QString("Sort6Test"));
+ query2.setSort(NameSortAttribute, Qt::DescendingOrder);
+ QList<int> entriesDesc = service->getEntryIds(query2);
+
+ //CHECK RESULTS
+ QCOMPARE(entriesAsc.count(),3);
+ QCOMPARE(entriesDesc.count(),3);
+ QCOMPARE(entriesAsc.at(0),resultItem2->id());
+ QCOMPARE(entriesAsc.at(1),resultItem1->id());
+ QCOMPARE(entriesAsc.at(2),resultItem3->id());
+ QCOMPARE(entriesDesc.at(0),resultItem3->id());
+ QCOMPARE(entriesDesc.at(1),resultItem1->id());
+ QCOMPARE(entriesDesc.at(2),resultItem2->id());
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsSortLast()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //REMOVE "OLD" ENTRIES FROM STORAGE
+ CaQuery query;
+ query.addEntryTypeName(QString("Sort7Test"));
+ QList<int> oldIds = service->getEntryIds(query);
+ if (oldIds.count()) {
+ service->removeEntries(oldIds);
+ }
+ //ADD TO DB
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("Sort7Test"));
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1); //item clone
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1); //item clone
+
+ service->touch(*resultItem2);
+ service->touch(*resultItem1);
+ service->touch(*resultItem3);
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ CaQuery query1;
+ query1.addEntryTypeName(QString("Sort7Test"));
+ query1.setSort(LastUsedSortAttribute, Qt::AscendingOrder);
+ QList<int> entriesAsc = service->getEntryIds(query1);
+ CaQuery query2;
+ query2.addEntryTypeName(QString("Sort7Test"));
+ query2.setSort(LastUsedSortAttribute, Qt::DescendingOrder);
+ QList<int> entriesDesc = service->getEntryIds(query2);
+
+ //CHECK RESULTS
+ QCOMPARE(entriesAsc.count(),3);
+ QCOMPARE(entriesDesc.count(),3);
+ QCOMPARE(entriesAsc.at(0),resultItem2->id());
+ QCOMPARE(entriesAsc.at(1),resultItem1->id());
+ QCOMPARE(entriesAsc.at(2),resultItem3->id());
+ QCOMPARE(entriesDesc.at(0),resultItem3->id());
+ QCOMPARE(entriesDesc.at(1),resultItem1->id());
+ QCOMPARE(entriesDesc.at(2),resultItem2->id());
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesIdsSortMost()
+{
+ {
+ QSharedPointer<CaService> service = CaService::instance();
+ //REMOVE "OLD" ENTRIES FROM STORAGE
+ CaQuery query;
+ query.addEntryTypeName(QString("Sort8Test"));
+ QList<int> oldIds = service->getEntryIds(query);
+ if (oldIds.count()) {
+ service->removeEntries(oldIds);
+ }
+ //ADD TO DB
+ CaEntry item1;
+ item1.setText(QString("Name"));
+ item1.setEntryTypeName(QString("Sort8Test"));
+ QSharedPointer<CaEntry> resultItem1 = service->createEntry(item1);
+ QSharedPointer<CaEntry> resultItem2 = service->createEntry(item1); //item clone
+ QSharedPointer<CaEntry> resultItem3 = service->createEntry(item1); //item clone
+
+ service->touch(*resultItem2);
+ service->touch(*resultItem2);
+ service->touch(*resultItem2);
+ service->touch(*resultItem1);
+ service->touch(*resultItem1);
+ service->touch(*resultItem3);
+
+ //GET STATE FROM THE STORAGE AFTER ADD
+ CaQuery query1;
+ query1.addEntryTypeName(QString("Sort8Test"));
+ query1.setSort(MostUsedSortAttribute, Qt::AscendingOrder);
+ QList<int> entriesAsc = service->getEntryIds(query1);
+ CaQuery query2;
+ query2.addEntryTypeName(QString("Sort8Test"));
+ query2.setSort(MostUsedSortAttribute, Qt::DescendingOrder);
+ QList<int> entriesDesc = service->getEntryIds(query2);
+
+ //CHECK RESULTS
+ QCOMPARE(entriesAsc.count(),3);
+ QCOMPARE(entriesDesc.count(),3);
+ QCOMPARE(entriesAsc.at(0),resultItem3->id());
+ QCOMPARE(entriesAsc.at(1),resultItem1->id());
+ QCOMPARE(entriesAsc.at(2),resultItem2->id());
+ QCOMPARE(entriesDesc.at(0),resultItem2->id());
+ QCOMPARE(entriesDesc.at(1),resultItem1->id());
+ QCOMPARE(entriesDesc.at(2),resultItem3->id());
+
+ //CLEANUP THE STORAGE AFTER THE TEST
+ service->removeEntry(*resultItem1);
+ service->removeEntry(*resultItem2);
+ service->removeEntry(*resultItem3);
+
+ }
+}
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void TestCaClient::TestGetEntriesByAttributes()
+{
+ {
+ CaEntry item;
+ item.setText("testName");
+ item.setAttribute("attrName1", "attrVal1");
+ item.setEntryTypeName("test");
+ item.setFlags(RemovableEntryFlag);
+
+ CaIconDescription iconDescription;
+ iconDescription.setFilename("iconFileName");
+ iconDescription.setSkinId("iconSkinId");
+ iconDescription.setApplicationId("268458321");
+ item.setIconDescription(iconDescription);
+
+ QSharedPointer<CaService> service = CaService::instance();
+ QSharedPointer<CaEntry> resultItem = service->createEntry(item);
+
+ QVERIFY(!resultItem.isNull());
+ // entry from storage
+ QSharedPointer<CaEntry> storageItem1 = service->getEntry(resultItem->id());
+ QCOMPARE(service->lastError(), NoErrorCode);
+ QVERIFY(storageItem1);
+ QCOMPARE(storageItem1->role(), ItemEntryRole);
+ QCOMPARE(QString("testName"),storageItem1->text());
+ QCOMPARE(QString("test"),storageItem1->entryTypeName());
+ QCOMPARE(QString("attrVal1"),storageItem1->attribute("attrName1"));
+ QCOMPARE(item.flags(),storageItem1->flags());
+ QCOMPARE(iconDescription.filename(),storageItem1->iconDescription().filename());
+ QCOMPARE(iconDescription.skinId(),storageItem1->iconDescription().skinId());
+ QCOMPARE(iconDescription.applicationId(),storageItem1->iconDescription().applicationId());
+
+ CaQuery query;
+ query.setEntryRoles(ItemEntryRole);
+ query.setAttribute(QString("attrName1"),QString("attrVal1"));
+ QVERIFY(query.attributes().contains(QString("attrName1")));
+ QCOMPARE(query.attribute(QString("attrName1")),QString("attrVal1"));
+ QList<int> entries = service->getEntryIds(query);
+ int entriesCount1 = entries.count();
+ QSharedPointer<CaEntry> afterGetItem = service->getEntry(entries.first());
+
+ QCOMPARE(afterGetItem->id(),storageItem1->id());
+ //Cleanup
+ service->removeEntry(*resultItem);
+ }
+}