/*
* 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);
}
}