diff -r 3ab5c078b490 -r c63ee96dbe5f contentstorage/caclient/tsrc/t_caclient/src/t_caclient_organize.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentstorage/caclient/tsrc/t_caclient/src/t_caclient_organize.cpp Thu Sep 16 12:11:40 2010 +0100 @@ -0,0 +1,1028 @@ +/* +* 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::TestAppendEntryIntoGroup1() +{ + { + CaEntry itemEntry; + itemEntry.setText("item"); + itemEntry.setEntryTypeName("typeok"); + CaEntry groupEntry(GroupEntryRole); + groupEntry.setText("group"); + groupEntry.setEntryTypeName("typeok"); + QSharedPointer service = CaService::instance(); + + QSharedPointer entry1 = service->createEntry(itemEntry); + QSharedPointer entry2 = service->createEntry(itemEntry); + QSharedPointer group = service->createEntry(groupEntry); + + CaQuery query; + query.setParentId(group->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + + QVERIFY(!service->appendEntryToGroup(9999, entry1->id())); + QVERIFY(service->lastError() != NoErrorCode); + + QVERIFY(!service->appendEntryToGroup(group->id(), 9999)); + QVERIFY(service->lastError() != NoErrorCode); + + QVERIFY(service->appendEntryToGroup(group->id(), entry1->id())); + QCOMPARE(service->lastError() , NoErrorCode); + + QList entries = service->getEntryIds(query); + QCOMPARE(entries.count(),1); + QVERIFY(service->appendEntryToGroup(group->id(), entry2->id())); + entries = service->getEntryIds(query); + QCOMPARE(entries.count(),2); + QCOMPARE(entries.at(0),entry1->id()); + QCOMPARE(entries.at(1),entry2->id()); + + //Cleanup + service->removeEntry(*entry1); + service->removeEntry(*entry2); + service->removeEntry(*group); + } +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestAppendEntryIntoGroup2() +{ + { + CaEntry itemEntry; + itemEntry.setText("item"); + itemEntry.setEntryTypeName("typeok"); + CaEntry groupEntry(GroupEntryRole); + groupEntry.setText("group"); + groupEntry.setEntryTypeName("typeok"); + QSharedPointer service = CaService::instance(); + + QSharedPointer entry1 = service->createEntry(itemEntry); + QSharedPointer entry2 = service->createEntry(itemEntry); + QSharedPointer group = service->createEntry(groupEntry); + + CaQuery query; + query.setParentId(group->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + + QVERIFY(!service->appendEntryToGroup(groupEntry, *entry1)); + QVERIFY(!service->appendEntryToGroup(*group , itemEntry)); + QVERIFY(service->appendEntryToGroup(*group , *entry1)); + QList entries = service->getEntryIds(query); + QCOMPARE(entries.count(),1); + QVERIFY(service->appendEntryToGroup(*group, *entry2)); + entries = service->getEntryIds(query); + QCOMPARE(entries.count(),2); + QCOMPARE(entries.at(0),entry1->id()); + QCOMPARE(entries.at(1),entry2->id()); + + //Cleanup + service->removeEntry(*entry1); + service->removeEntry(*entry2); + service->removeEntry(*group); + } +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestAppendEntriesIntoGroup1() +{ + { + CaEntry itemEntry; + itemEntry.setText("item"); + itemEntry.setEntryTypeName("typeok"); + CaEntry groupEntry(GroupEntryRole); + groupEntry.setText("group"); + groupEntry.setEntryTypeName("typeok"); + QSharedPointer service = CaService::instance(); + + QSharedPointer entry1 = service->createEntry(itemEntry); + QSharedPointer entry2 = service->createEntry(itemEntry); + QSharedPointer entry3 = service->createEntry(itemEntry); + QSharedPointer entry4 = service->createEntry(itemEntry); + QSharedPointer group = service->createEntry(groupEntry); + + QList entries1; + entries1.append(entry1->id()); + entries1.append(entry2->id()); + QList entries2; + entries2.append(entry3->id()); + entries2.append(entry4->id()); + QList wrongEntries1; + wrongEntries1.append(entry1->id()); + wrongEntries1.append(9999); + + + CaQuery query; + query.setParentId(group->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + + QVERIFY(!service->appendEntriesToGroup(9999, entries1)); + QVERIFY(!service->appendEntriesToGroup(group->id(), wrongEntries1)); + QList entries = service->getEntryIds(query); + QCOMPARE(entries.count(),0); + + QVERIFY(service->appendEntriesToGroup(group->id(), entries1)); + entries = service->getEntryIds(query); + QCOMPARE(entries.count(),2); + QVERIFY(service->appendEntriesToGroup(group->id(), entries2)); + entries = service->getEntryIds(query); + QCOMPARE(entries.count(),4); + + QCOMPARE(entries.at(0),entry1->id()); + QCOMPARE(entries.at(1),entry2->id()); + QCOMPARE(entries.at(2),entry3->id()); + QCOMPARE(entries.at(3),entry4->id()); + + //Cleanup + service->removeEntry(*entry1); + service->removeEntry(*entry2); + service->removeEntry(*entry3); + service->removeEntry(*entry4); + service->removeEntry(*group); + } +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestAppendEntriesIntoGroup2() +{ + { + QSharedPointer itemEntry (new CaEntry()); + itemEntry->setText("item"); + itemEntry->setEntryTypeName("typeok"); + CaEntry groupEntry(GroupEntryRole); + groupEntry.setText("group"); + groupEntry.setEntryTypeName("typeok"); + QSharedPointer service = CaService::instance(); + + QSharedPointer entry1 = service->createEntry(*itemEntry); + QSharedPointer entry2 = service->createEntry(*itemEntry); + QSharedPointer entry3 = service->createEntry(*itemEntry); + QSharedPointer entry4 = service->createEntry(*itemEntry); + QSharedPointer group = service->createEntry(groupEntry); + + QList< QSharedPointer > entries1; + entries1.append(entry1); + entries1.append(entry2); + QList< QSharedPointer > entries2; + entries2.append(entry3); + entries2.append(entry4); + QList > wrongEntries1; + wrongEntries1.append(entry1); + wrongEntries1.append(itemEntry); //this item has unspecified id + + CaQuery query; + query.setParentId(group->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + + QVERIFY(!service->appendEntriesToGroup(groupEntry, entries1)); + QVERIFY(!service->appendEntriesToGroup(*group, wrongEntries1)); + QList entries = service->getEntryIds(query); + QCOMPARE(entries.count(),0); + QVERIFY(service->appendEntriesToGroup(*group, entries1)); + entries = service->getEntryIds(query); + QCOMPARE(entries.count(),2); + QVERIFY(service->appendEntriesToGroup(*group, entries2)); + entries = service->getEntryIds(query); + QCOMPARE(entries.count(),4); + + QCOMPARE(entries.at(0),entry1->id()); + QCOMPARE(entries.at(1),entry2->id()); + QCOMPARE(entries.at(2),entry3->id()); + QCOMPARE(entries.at(3),entry4->id()); + + //Cleanup + service->removeEntry(*entry1); + service->removeEntry(*entry2); + service->removeEntry(*entry3); + service->removeEntry(*entry4); + service->removeEntry(*group); + } +} + + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestPrependEntryIntoGroup1() +{ + { + CaEntry itemEntry; + itemEntry.setText("item"); + itemEntry.setEntryTypeName("typeok"); + CaEntry groupEntry(GroupEntryRole); + groupEntry.setText("group"); + groupEntry.setEntryTypeName("typeok"); + QSharedPointer service = CaService::instance(); + + QSharedPointer entry1 = service->createEntry(itemEntry); + QSharedPointer entry2 = service->createEntry(itemEntry); + QSharedPointer group = service->createEntry(groupEntry); + + CaQuery query; + query.setParentId(group->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + + QVERIFY(!service->prependEntryToGroup(9999, entry1->id())); + QVERIFY(service->lastError() != NoErrorCode); + QVERIFY(!service->prependEntryToGroup(group->id(), 9999)); + QVERIFY(service->lastError() != NoErrorCode); + QVERIFY(service->prependEntryToGroup(group->id(), entry1->id())); + QCOMPARE(service->lastError() , NoErrorCode); + + QList entries = service->getEntryIds(query); + QCOMPARE(entries.count(),1); + QVERIFY(service->prependEntryToGroup(group->id(), entry2->id())); + entries = service->getEntryIds(query); + + QCOMPARE(entries.count(),2); + QCOMPARE(entries.at(0),entry2->id()); + QCOMPARE(entries.at(1),entry1->id()); + + //Cleanup + service->removeEntry(*entry1); + service->removeEntry(*entry2); + service->removeEntry(*group); + } +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestPrependEntryIntoGroup2() +{ + { + CaEntry itemEntry; + itemEntry.setText("item"); + itemEntry.setEntryTypeName("typeok"); + CaEntry groupEntry(GroupEntryRole); + groupEntry.setText("group"); + groupEntry.setEntryTypeName("typeok"); + QSharedPointer service = CaService::instance(); + + QSharedPointer entry1 = service->createEntry(itemEntry); + QSharedPointer entry2 = service->createEntry(itemEntry); + QSharedPointer group = service->createEntry(groupEntry); + + CaQuery query; + query.setParentId(group->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + + QVERIFY(!service->prependEntryToGroup(groupEntry, *entry1)); + QVERIFY(!service->prependEntryToGroup(*group , itemEntry)); + QVERIFY(service->prependEntryToGroup(*group , *entry1)); + QList entries = service->getEntryIds(query); + QCOMPARE(entries.count(),1); + QVERIFY(service->prependEntryToGroup(*group, *entry2)); + entries = service->getEntryIds(query); + QCOMPARE(entries.count(),2); + QCOMPARE(entries.at(0),entry2->id()); + QCOMPARE(entries.at(1),entry1->id()); + + //Cleanup + service->removeEntry(*entry1); + service->removeEntry(*entry2); + service->removeEntry(*group); + } +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestPrependEntriesIntoGroup1() +{ + { + CaEntry itemEntry; + itemEntry.setText("item"); + itemEntry.setEntryTypeName("typeok"); + CaEntry groupEntry(GroupEntryRole); + groupEntry.setText("group"); + groupEntry.setEntryTypeName("typeok"); + QSharedPointer service = CaService::instance(); + + QSharedPointer entry1 = service->createEntry(itemEntry); + QSharedPointer entry2 = service->createEntry(itemEntry); + QSharedPointer entry3 = service->createEntry(itemEntry); + QSharedPointer entry4 = service->createEntry(itemEntry); + QSharedPointer group = service->createEntry(groupEntry); + + QList entries1; + entries1.append(entry1->id()); + entries1.append(entry2->id()); + QList entries2; + entries2.append(entry3->id()); + entries2.append(entry4->id()); + QList wrongEntries1; + wrongEntries1.append(entry1->id()); + wrongEntries1.append(9999); + + + CaQuery query; + query.setParentId(group->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + + QVERIFY(!service->prependEntriesToGroup(9999, entries1)); + QVERIFY(!service->prependEntriesToGroup(group->id(), wrongEntries1)); + QList entries = service->getEntryIds(query); + QCOMPARE(entries.count(),0); + + QVERIFY(service->prependEntriesToGroup(group->id(), entries1)); + entries = service->getEntryIds(query); + QCOMPARE(entries.count(),2); + QVERIFY(service->prependEntriesToGroup(group->id(), entries2)); + entries = service->getEntryIds(query); + QCOMPARE(entries.count(),4); + + QCOMPARE(entries.at(0),entry3->id()); + QCOMPARE(entries.at(1),entry4->id()); + QCOMPARE(entries.at(2),entry1->id()); + QCOMPARE(entries.at(3),entry2->id()); + + //Cleanup + service->removeEntry(*entry1); + service->removeEntry(*entry2); + service->removeEntry(*entry3); + service->removeEntry(*entry4); + service->removeEntry(*group); + } +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestPrependEntriesIntoGroup2() +{ + { + QSharedPointer itemEntry (new CaEntry()); + itemEntry->setText("item"); + itemEntry->setEntryTypeName("typeok"); + CaEntry groupEntry(GroupEntryRole); + groupEntry.setText("group"); + groupEntry.setEntryTypeName("typeok"); + QSharedPointer service = CaService::instance(); + + QSharedPointer entry1 = service->createEntry(*itemEntry); + QSharedPointer entry2 = service->createEntry(*itemEntry); + QSharedPointer entry3 = service->createEntry(*itemEntry); + QSharedPointer entry4 = service->createEntry(*itemEntry); + QSharedPointer group = service->createEntry(groupEntry); + + QList< QSharedPointer > entries1; + entries1.append(entry1); + entries1.append(entry2); + QList< QSharedPointer > entries2; + entries2.append(entry3); + entries2.append(entry4); + QList< QSharedPointer > wrongEntries1; + wrongEntries1.append(entry1); + wrongEntries1.append(itemEntry); //this item has unspecified id + + CaQuery query; + query.setParentId(group->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + + QVERIFY(!service->prependEntriesToGroup(groupEntry, entries1)); + QVERIFY(!service->prependEntriesToGroup(*group, wrongEntries1)); + QList entries = service->getEntryIds(query); + QCOMPARE(entries.count(),0); + QVERIFY(service->prependEntriesToGroup(*group, entries1)); + entries = service->getEntryIds(query); + QCOMPARE(entries.count(),2); + QVERIFY(service->prependEntriesToGroup(*group, entries2)); + entries = service->getEntryIds(query); + QCOMPARE(entries.count(),4); + + QCOMPARE(entries.at(0),entry3->id()); + QCOMPARE(entries.at(1),entry4->id()); + QCOMPARE(entries.at(2),entry1->id()); + QCOMPARE(entries.at(3),entry2->id()); + + //Cleanup + service->removeEntry(*entry1); + service->removeEntry(*entry2); + service->removeEntry(*entry3); + service->removeEntry(*entry4); + service->removeEntry(*group); + } +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestInsertEntryIntoGroup1() +{ + { + CaEntry itemEntry; + itemEntry.setText("item"); + itemEntry.setEntryTypeName("typeok"); + CaEntry groupEntry(GroupEntryRole); + groupEntry.setText("group"); + groupEntry.setEntryTypeName("typeok"); + QSharedPointer service = CaService::instance(); + + QSharedPointer entry1 = service->createEntry(itemEntry); + QSharedPointer entry2 = service->createEntry(itemEntry); + QSharedPointer group = service->createEntry(groupEntry); + + CaQuery query; + query.setParentId(group->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + + QVERIFY(service->prependEntryToGroup(group->id(), entry1->id())); + + QVERIFY(!service->insertEntryIntoGroup(9999, entry2->id(), entry1->id())); + QVERIFY(service->lastError() != NoErrorCode); + + QVERIFY(!service->insertEntryIntoGroup(group->id(), 9999, entry1->id())); + QVERIFY(service->lastError() != NoErrorCode); + + QVERIFY(!service->insertEntryIntoGroup(group->id(), entry2->id(), 9999)); + QVERIFY(service->lastError() != NoErrorCode); + + QVERIFY(service->insertEntryIntoGroup(group->id(), entry2->id(), entry1->id())); + QCOMPARE(service->lastError() , NoErrorCode); + + QList entries = service->getEntryIds(query); + QCOMPARE(entries.count(),2); + QCOMPARE(entries.at(0),entry2->id()); + QCOMPARE(entries.at(1),entry1->id()); + + //Cleanup + service->removeEntry(*entry1); + service->removeEntry(*entry2); + service->removeEntry(*group); + } +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestInsertEntryIntoGroup2() +{ + { + CaEntry itemEntry; + itemEntry.setText("item"); + itemEntry.setEntryTypeName("typeok"); + CaEntry groupEntry(GroupEntryRole); + groupEntry.setText("group"); + groupEntry.setEntryTypeName("typeok"); + QSharedPointer service = CaService::instance(); + + QSharedPointer entry1 = service->createEntry(itemEntry); + QSharedPointer entry2 = service->createEntry(itemEntry); + QSharedPointer group = service->createEntry(groupEntry); + + CaQuery query; + query.setParentId(group->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + + QVERIFY(service->prependEntryToGroup(*group, *entry1)); + + QVERIFY(!service->insertEntryIntoGroup(groupEntry, *entry2, entry1->id())); + QVERIFY(!service->insertEntryIntoGroup(*group, itemEntry, entry1->id())); + QVERIFY(!service->insertEntryIntoGroup(*group, *entry2, 9999)); + + QVERIFY(service->insertEntryIntoGroup(*group, *entry2, entry1->id())); + + QList entries = service->getEntryIds(query); + QCOMPARE(entries.count(),2); + QCOMPARE(entries.at(0),entry2->id()); + QCOMPARE(entries.at(1),entry1->id()); + + //Cleanup + service->removeEntry(*entry1); + service->removeEntry(*entry2); + service->removeEntry(*group); + } +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestInsertEntriesIntoGroup1() +{ + { + CaEntry itemEntry; + itemEntry.setText("item"); + itemEntry.setEntryTypeName("typeok"); + CaEntry groupEntry(GroupEntryRole); + groupEntry.setText("group"); + groupEntry.setEntryTypeName("typeok"); + QSharedPointer service = CaService::instance(); + + QSharedPointer entry1 = service->createEntry(itemEntry); + QSharedPointer entry3 = service->createEntry(itemEntry); + QSharedPointer entry4 = service->createEntry(itemEntry); + QSharedPointer group = service->createEntry(groupEntry); + + QList entries2; + entries2.append(entry3->id()); + entries2.append(entry4->id()); + QList wrongEntries1; + wrongEntries1.append(entry1->id()); + wrongEntries1.append(9999); + + + CaQuery query; + query.setParentId(group->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + + QVERIFY(service->prependEntryToGroup(group->id(), entry1->id())); + + QVERIFY(!service->insertEntriesIntoGroup(9999, entries2, entry1->id())); + QVERIFY(!service->insertEntriesIntoGroup(group->id(), wrongEntries1, entry1->id())); + QVERIFY(!service->insertEntriesIntoGroup(group->id(), entries2, 9999)); + + QVERIFY(service->insertEntriesIntoGroup(group->id(), entries2, entry1->id())); + QList entries = service->getEntryIds(query); + QCOMPARE(entries.count(),3); + + QCOMPARE(entries.at(0),entry3->id()); + QCOMPARE(entries.at(1),entry4->id()); + QCOMPARE(entries.at(2),entry1->id()); + + //Cleanup + service->removeEntry(*entry1); + service->removeEntry(*entry3); + service->removeEntry(*entry4); + service->removeEntry(*group); + } +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestInsertEntriesIntoGroup2() +{ + { + QSharedPointer itemEntry (new CaEntry()); + itemEntry->setText("item"); + itemEntry->setEntryTypeName("typeok"); + CaEntry groupEntry(GroupEntryRole); + groupEntry.setText("group"); + groupEntry.setEntryTypeName("typeok"); + QSharedPointer service = CaService::instance(); + + QSharedPointer entry1 = service->createEntry(*itemEntry); + QSharedPointer entry3 = service->createEntry(*itemEntry); + QSharedPointer entry4 = service->createEntry(*itemEntry); + QSharedPointer group = service->createEntry(groupEntry); + + QList< QSharedPointer > entries2; + entries2.append(entry3); + entries2.append(entry4); + QList< QSharedPointer > wrongEntries1; + wrongEntries1.append(entry1); + wrongEntries1.append(itemEntry); //this item has unspecified id + + CaQuery query; + query.setParentId(group->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + + QVERIFY(service->prependEntryToGroup(group->id(), entry1->id())); + + QVERIFY(!service->insertEntriesIntoGroup(groupEntry, entries2, entry1->id())); + QVERIFY(!service->insertEntriesIntoGroup(*group, wrongEntries1, entry1->id())); + QVERIFY(!service->insertEntriesIntoGroup(*group, entries2, 9999)); + + QVERIFY(service->insertEntriesIntoGroup(*group, entries2, entry1->id())); + + QList entries = service->getEntryIds(query); + QCOMPARE(entries.count(),3); + + QCOMPARE(entries.at(0),entry3->id()); + QCOMPARE(entries.at(1),entry4->id()); + QCOMPARE(entries.at(2),entry1->id()); + + //Cleanup + service->removeEntry(*entry1); + service->removeEntry(*entry3); + service->removeEntry(*entry4); + service->removeEntry(*group); + } +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestRemoveEntryFromGroup1() +{ + { + CaEntry itemEntry; + itemEntry.setText("item"); + itemEntry.setEntryTypeName("typeok"); + CaEntry groupEntry(GroupEntryRole); + groupEntry.setText("group"); + groupEntry.setEntryTypeName("typeok"); + QSharedPointer service = CaService::instance(); + + QSharedPointer entry1 = service->createEntry(itemEntry); + QSharedPointer group = service->createEntry(groupEntry); + + CaQuery query; + query.setParentId(group->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + + QVERIFY(!service->removeEntryFromGroup(9999, entry1->id())); + QVERIFY(service->lastError() != NoErrorCode); + + QVERIFY(!service->removeEntryFromGroup(group->id(), 9999)); + QVERIFY(service->lastError() != NoErrorCode); + + QVERIFY(service->prependEntryToGroup(group->id(), entry1->id())); + QList entries = service->getEntryIds(query); + QCOMPARE(entries.count(),1); + QVERIFY(service->removeEntryFromGroup(group->id(), entry1->id())); + QCOMPARE(service->lastError() , NoErrorCode); + + + entries = service->getEntryIds(query); + QCOMPARE(entries.count(),0); + + //Cleanup + service->removeEntry(*entry1); + service->removeEntry(*group); + } +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestRemoveEntryFromGroup2() +{ + { + CaEntry itemEntry; + itemEntry.setText("item"); + itemEntry.setEntryTypeName("typeok"); + CaEntry groupEntry(GroupEntryRole); + groupEntry.setText("group"); + groupEntry.setEntryTypeName("typeok"); + QSharedPointer service = CaService::instance(); + + QSharedPointer entry1 = service->createEntry(itemEntry); + QSharedPointer group = service->createEntry(groupEntry); + + CaQuery query; + query.setParentId(group->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + + QVERIFY(!service->removeEntryFromGroup(groupEntry, *entry1)); + QVERIFY(!service->removeEntryFromGroup(*group, itemEntry)); + + QVERIFY(service->prependEntryToGroup(group->id(), entry1->id())); + QList entries = service->getEntryIds(query); + QCOMPARE(entries.count(),1); + QVERIFY(service->removeEntryFromGroup(*group, *entry1)); + + entries = service->getEntryIds(query); + QCOMPARE(entries.count(),0); + + //Cleanup + service->removeEntry(*entry1); + service->removeEntry(*group); + } +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestRemoveEntriesFromGroup1() +{ + { + CaEntry itemEntry; + itemEntry.setText("item"); + itemEntry.setEntryTypeName("typeok"); + CaEntry groupEntry(GroupEntryRole); + groupEntry.setText("group"); + groupEntry.setEntryTypeName("typeok"); + QSharedPointer service = CaService::instance(); + + QSharedPointer entry1 = service->createEntry(itemEntry); + QSharedPointer entry2 = service->createEntry(itemEntry); + QSharedPointer group = service->createEntry(groupEntry); + + QList entries1; + entries1.append(entry1->id()); + entries1.append(entry2->id()); + QList wrongEntries1; + wrongEntries1.append(entry1->id()); + wrongEntries1.append(9999); + + CaQuery query; + query.setParentId(group->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + + QVERIFY(service->prependEntriesToGroup(group->id(), entries1)); + QList entries = service->getEntryIds(query); + QCOMPARE(entries.count(),2); + QVERIFY(!service->removeEntriesFromGroup(9999, entries1)); + QVERIFY(!service->removeEntriesFromGroup(group->id(), wrongEntries1)); + entries = service->getEntryIds(query); + QCOMPARE(entries.count(),2); + + QVERIFY(service->removeEntriesFromGroup(group->id(), entries1)); + entries = service->getEntryIds(query); + QCOMPARE(entries.count(),0); + + //Cleanup + service->removeEntry(*entry1); + service->removeEntry(*entry2); + service->removeEntry(*group); + } +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestRemoveEntriesFromGroup2() +{ + { + QSharedPointer itemEntry (new CaEntry); + itemEntry->setText("item"); + itemEntry->setEntryTypeName("typeok"); + CaEntry groupEntry(GroupEntryRole); + groupEntry.setText("group"); + groupEntry.setEntryTypeName("typeok"); + QSharedPointer service = CaService::instance(); + + QSharedPointer entry1 = service->createEntry(*itemEntry); + QSharedPointer entry2 = service->createEntry(*itemEntry); + QSharedPointer group = service->createEntry(groupEntry); + + QList > entries1; + entries1.append(entry1); + entries1.append(entry2); + QList > wrongEntries1; + wrongEntries1.append(entry1); + wrongEntries1.append(itemEntry); //this item has unspecified id + + CaQuery query; + query.setParentId(group->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + + QVERIFY(service->prependEntriesToGroup(*group, entries1)); + QList entries = service->getEntryIds(query); + QCOMPARE(entries.count(),2); + + QVERIFY(!service->removeEntriesFromGroup(groupEntry, entries1)); + QVERIFY(!service->removeEntriesFromGroup(*group, wrongEntries1)); + entries = service->getEntryIds(query); + QCOMPARE(entries.count(),2); + + QVERIFY(service->removeEntriesFromGroup(*group, entries1)); + entries = service->getEntryIds(query); + QCOMPARE(entries.count(),0); + + //Cleanup + service->removeEntry(*entry1); + service->removeEntry(*entry2); + service->removeEntry(*group); + + } +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestCustomSortArrange() +{ + QSharedPointer service = CaService::instance(); + CaEntry itemEntry_1; + itemEntry_1.setText("item_1"); + itemEntry_1.setEntryTypeName("collection"); + CaEntry groupEntry_1(GroupEntryRole); + groupEntry_1.setText("group_1"); + groupEntry_1.setEntryTypeName("collection"); + + QSharedPointer entry_1 = service->createEntry(itemEntry_1); + QSharedPointer entry_2 = service->createEntry(itemEntry_1); + QSharedPointer entry_3 = service->createEntry(itemEntry_1); + QSharedPointer entry_4 = service->createEntry(itemEntry_1); + QSharedPointer group_1 = service->createEntry(groupEntry_1); + + QList entriesIds; + entriesIds << entry_1->id() << entry_2->id() + << entry_3->id() << entry_4->id(); + service->appendEntriesToGroup(group_1->id(), entriesIds); + + CaQuery query; + query.setParentId(group_1->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + QList entriesIdsBefore = service->getEntryIds(query); + QVERIFY(entriesIds == entriesIdsBefore); + + entriesIds.clear(); + for (int i(entriesIdsBefore.count()-1); i >= 0; i--) { + entriesIds.append(entriesIdsBefore.at(i)); + } + + QVERIFY(service->customSort(group_1->id(), entriesIds)); + QTest::qWait(500); + QList entriesIdsAfter = service->getEntryIds(query); + + QVERIFY(entriesIds != entriesIdsBefore); + QVERIFY(entriesIds == entriesIdsAfter); + + // cleanup + service->removeEntries(entriesIdsAfter << group_1->id()); +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestCustomSortGroups() +{ + QSharedPointer service = CaService::instance(); + CaEntry itemEntry_1; + itemEntry_1.setText("item_1"); + itemEntry_1.setEntryTypeName("collection"); + CaEntry groupEntry_1(GroupEntryRole); + groupEntry_1.setText("group_1"); + groupEntry_1.setEntryTypeName("collection"); + + QSharedPointer entry_1 = service->createEntry(itemEntry_1); + QSharedPointer entry_2 = service->createEntry(itemEntry_1); + QSharedPointer entry_3 = service->createEntry(itemEntry_1); + QSharedPointer entry_4 = service->createEntry(itemEntry_1); + QSharedPointer group_1 = service->createEntry(groupEntry_1); + + CaEntry itemEntry_2; + itemEntry_2.setText("item_2"); + itemEntry_2.setEntryTypeName("collection"); + CaEntry groupEntry_2(GroupEntryRole); + groupEntry_2.setText("group_2"); + groupEntry_2.setEntryTypeName("collection"); + + QSharedPointer entry_5 = service->createEntry(itemEntry_2); + QSharedPointer entry_6 = service->createEntry(itemEntry_2); + QSharedPointer entry_7 = service->createEntry(itemEntry_2); + QSharedPointer entry_8 = service->createEntry(itemEntry_2); + QSharedPointer group_2 = service->createEntry(groupEntry_2); + + QList entriesIds; + entriesIds << entry_1->id() << entry_2->id() + << entry_3->id() << entry_4->id(); + service->appendEntriesToGroup(group_1->id(), entriesIds); + + entriesIds.clear(); + entriesIds << entry_5->id() << entry_6->id() + << entry_7->id() << entry_8->id(); + service->appendEntriesToGroup(group_2->id(), entriesIds); + + CaQuery query; + query.setParentId(group_1->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + QList entriesIdsBefore_1 = service->getEntryIds(query); + + query.setParentId(group_2->id()); + QList entriesIdsBefore_2 = service->getEntryIds(query); + QVERIFY(entriesIdsBefore_1 != entriesIdsBefore_2); + + entriesIds.clear(); + for (int i(entriesIdsBefore_1.count()-1); i >= 0; i--) { + entriesIds.append(entriesIdsBefore_1.at(i)); + } + + QVERIFY(service->customSort(group_1->id(), entriesIds)); + QTest::qWait(500); + query.setParentId(group_1->id()); + QList entriesIdsAfter_1 = service->getEntryIds(query); + query.setParentId(group_2->id()); + QList entriesIdsAfter_2 = service->getEntryIds(query); + + QVERIFY(entriesIds != entriesIdsBefore_1); + QVERIFY(entriesIds == entriesIdsAfter_1); + QVERIFY(entriesIds != entriesIdsBefore_2); + QVERIFY(entriesIdsBefore_2 == entriesIdsAfter_2); + + entriesIds.clear(); + for (int i(entriesIdsBefore_2.count()-1); i >= 0; i--) { + entriesIds.append(entriesIdsBefore_2.at(i)); + } + + QVERIFY(service->customSort(group_2->id(), entriesIds)); + QTest::qWait(500); + query.setParentId(group_1->id()); + entriesIdsBefore_1 = service->getEntryIds(query); + query.setParentId(group_2->id()); + entriesIdsAfter_2 = service->getEntryIds(query); + + QVERIFY(entriesIds != entriesIdsBefore_2); + QVERIFY(entriesIds == entriesIdsAfter_2); + QVERIFY(entriesIds != entriesIdsBefore_1); + QVERIFY(entriesIdsBefore_1 == entriesIdsAfter_1); + QVERIFY(entriesIdsBefore_2 != entriesIdsAfter_2); + + // cleanup + service->removeEntries(entriesIdsAfter_1 << group_1->id()); + service->removeEntries(entriesIdsAfter_2 << group_2->id()); +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestCustomSortFake() +{ + QSharedPointer service = CaService::instance(); + CaEntry itemEntry_1; + itemEntry_1.setText("item_1"); + itemEntry_1.setEntryTypeName("collection"); + CaEntry groupEntry_1(GroupEntryRole); + groupEntry_1.setText("group_1"); + groupEntry_1.setEntryTypeName("collection"); + + QSharedPointer entry_1 = service->createEntry(itemEntry_1); + QSharedPointer entry_2 = service->createEntry(itemEntry_1); + QSharedPointer entry_3 = service->createEntry(itemEntry_1); + QSharedPointer entry_4 = service->createEntry(itemEntry_1); + QSharedPointer group_1 = service->createEntry(groupEntry_1); + + QList entriesIds; + entriesIds << entry_1->id() << entry_2->id() + << entry_3->id() << entry_4->id(); + service->appendEntriesToGroup(group_1->id(), entriesIds); + + CaQuery query; + query.setParentId(group_1->id()); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + QList entriesIdsBefore = service->getEntryIds(query); + QVERIFY(entriesIds == entriesIdsBefore); + + entriesIds.clear(); + // fake list, not fulfilled correctly + for (int i(entriesIdsBefore.count()-1); i >= 0; i--) { + if (i%2) { + entriesIds.append(entriesIdsBefore.at(i)); + } + } + + QVERIFY(service->customSort(group_1->id(), entriesIds)); + QTest::qWait(500); + QList entriesIdsAfter = service->getEntryIds(query); + + QVERIFY(entriesIdsBefore != entriesIdsAfter); + QVERIFY(entriesIds != entriesIdsAfter); + + // cleanup + service->removeEntries(entriesIdsAfter << group_1->id()); +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void TestCaClient::TestCustomSort() +{ + CaQuery collectionQuery; + collectionQuery.addEntryTypeName("collection"); + QSharedPointer service = CaService::instance(); + QList collectionIds = service->getEntryIds(collectionQuery); + QVERIFY(collectionIds.count()); + + const int groupId = collectionIds.at(0); + + CaQuery query; + query.setParentId(groupId); + query.setSort(DefaultSortAttribute, Qt::AscendingOrder); + + QList idsBefore = service->getEntryIds(query); + QVERIFY(idsBefore.count()); + + int first = idsBefore.takeFirst(); + idsBefore.append(first); + + // sort entries is group in custom order + QVERIFY(service->customSort(groupId, idsBefore)); + + // check results + QList idsAfter = service->getEntryIds(query); + QVERIFY(idsAfter.count()); + + QCOMPARE(idsAfter.count(),idsBefore.count()); + QCOMPARE(idsAfter, idsBefore); +}