contentstorage/caclient/tsrc/t_caclient/src/t_caclient_remove.cpp
author Jaakko Haukipuro (Nokia-MS/Oulu) <Jaakko.Haukipuro@nokia.com>
Thu, 16 Sep 2010 12:11:40 +0100
changeset 117 c63ee96dbe5f
permissions -rw-r--r--
Missing activityfw and taskswitcher components - fix for Bug 3670

/*
* 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::TestRemoveItem()
{
    {
        CaEntry item;
        item.setText("testName");
        item.setAttribute("attrName1", "attrVal1");
        item.setEntryTypeName("test");
        item.setFlags(RemovableEntryFlag);

        QSharedPointer<CaService> service = CaService::instance();
        QSharedPointer<CaEntry> resultItem1 = service->createEntry(item);
        QVERIFY(!resultItem1.isNull());
        QVERIFY(!service->removeEntry(9999));
        QVERIFY(service->removeEntry(resultItem1->id()));
        QCOMPARE(service->lastError() , NoErrorCode);

        QSharedPointer<CaEntry> storageItem1 = service->getEntry(resultItem1->id());
        QVERIFY(storageItem1.isNull());  // entry not present in the storage
        QVERIFY(!service->removeEntry(resultItem1->id()));
        QVERIFY(service->lastError() != NoErrorCode);

        QSharedPointer<CaEntry> resultItem2 = service->createEntry(item);
        QVERIFY(!resultItem2.isNull());

        QVERIFY(service->removeEntry(*resultItem2));
        QSharedPointer<CaEntry> storageItem2 = service->getEntry(resultItem2->id());
        QVERIFY(storageItem2.isNull());  // entry not present in the storage
        QVERIFY(!service->removeEntry(*resultItem2));

        //cleanup
        service->removeEntry(*resultItem1);
        service->removeEntry(*resultItem2);
    }
}

// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestRemoveGroup()
{
    {
        CaEntry group(GroupEntryRole);
        group.setText("testName");
        group.setAttribute("attrName1", "attrVal1");
        group.setEntryTypeName("test");
        group.setFlags(RemovableEntryFlag);

        QSharedPointer<CaService> service = CaService::instance();
        QSharedPointer<CaEntry> resultgroup1 = service->createEntry(group);
        QVERIFY(!resultgroup1.isNull());

        QVERIFY(service->removeEntry(resultgroup1->id()));
        QSharedPointer<CaEntry> storagegroup1 = service->getEntry(resultgroup1->id());
        QVERIFY(!storagegroup1);  // entry not present in the storage
        QVERIFY(!service->removeEntry(resultgroup1->id()));

        QSharedPointer<CaEntry> resultgroup2 = service->createEntry(group);
        QVERIFY(!resultgroup2.isNull());

        QVERIFY(service->removeEntry(*resultgroup2));
        QSharedPointer<CaEntry> storagegroup2 = service->getEntry(resultgroup2->id());
        QVERIFY(!storagegroup2);  // entry not present in the storage
        QVERIFY(!service->removeEntry(*resultgroup2));

        //cleanup
        service->removeEntry(*resultgroup1);
        service->removeEntry(*resultgroup2);
    }
}

// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestRemoveItems()
{
    {
        CaEntry item;
        item.setText("testName");
        item.setAttribute("attrName1", "attrVal1");
        item.setEntryTypeName("test");
        item.setFlags(RemovableEntryFlag);

        QSharedPointer<CaService> service = CaService::instance();
        QSharedPointer<CaEntry> resultItem1 = service->createEntry(item);
        QSharedPointer<CaEntry> resultItem2 = service->createEntry(item);
        QVERIFY(!resultItem1.isNull());
        QVERIFY(!resultItem2.isNull());

        QList<int> ids;
        ids.append(resultItem1->id());
        ids.append(resultItem2->id());
        QVERIFY(service->removeEntries(ids));
        QSharedPointer<CaEntry> storageItem1 = service->getEntry(resultItem1->id());
        QSharedPointer<CaEntry> storageItem2 = service->getEntry(resultItem2->id());
        QVERIFY(storageItem1.isNull());  // entry not present in the storage
        QVERIFY(storageItem2.isNull());  // entry not present in the storage

        QSharedPointer<CaEntry> resultItem3 = service->createEntry(item);
        QSharedPointer<CaEntry> resultItem4 = service->createEntry(item);
        QVERIFY(!resultItem3.isNull());
        QVERIFY(!resultItem4.isNull());

        QList<QSharedPointer<CaEntry> > entries;
        entries.append(resultItem3);
        entries.append(resultItem4);

        QVERIFY(service->removeEntries(entries));
        QSharedPointer<CaEntry> storageItem3 = service->getEntry(resultItem3->id());
        QSharedPointer<CaEntry> storageItem4 = service->getEntry(resultItem4->id());
        QVERIFY(storageItem3.isNull());  // entry not present in the storage
        QVERIFY(storageItem4.isNull());  // entry not present in the storage

        //cleanup
        service->removeEntry(*resultItem1);
        service->removeEntry(*resultItem2);
        service->removeEntry(*resultItem3);
        service->removeEntry(*resultItem4);
    }
}

// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestRemoveItemsFail()
{
    {
        QSharedPointer<CaEntry> item (new CaEntry());
        item->setText("testName");
        item->setAttribute("attrName1", "attrVal1");
        item->setEntryTypeName("test");
        item->setFlags(RemovableEntryFlag);

        QSharedPointer<CaService> service = CaService::instance();
        QSharedPointer<CaEntry> resultItem1 = service->createEntry(*item);
        QVERIFY(!resultItem1.isNull());

        QList<int> ids;
        ids.append(resultItem1->id());
        ids.append(9999);// not present in the storage
        QVERIFY(!service->removeEntries(ids));
        QSharedPointer<CaEntry> storageItem1 = service->getEntry(resultItem1->id());
        QVERIFY(!storageItem1.isNull());  // entry present in the storage

        QSharedPointer<CaEntry> resultItem2 = service->createEntry(*item);
        QVERIFY(!resultItem2.isNull());

        QList<QSharedPointer<CaEntry> > entries;
        entries.append(resultItem2);
        entries.append(item);//id not specified

        QVERIFY(!service->removeEntries(entries));
        QSharedPointer<CaEntry> storageItem2 = service->getEntry(resultItem2->id());
        QVERIFY(storageItem2);  // entry present in the storage

        //cleanup
        service->removeEntry(*resultItem1);
        service->removeEntry(*resultItem2);

    }
}

// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestRemoveGroups()
{
    {
        CaEntry group(GroupEntryRole);
        group.setText("testName");
        group.setAttribute("attrName1", "attrVal1");
        group.setEntryTypeName("test");
        group.setFlags(RemovableEntryFlag);

        QSharedPointer<CaService> service = CaService::instance();
        QSharedPointer<CaEntry> resultGroup1 = service->createEntry(group);
        QSharedPointer<CaEntry> resultGroup2 = service->createEntry(group);
        QVERIFY(!resultGroup1.isNull());
        QVERIFY(!resultGroup2.isNull());

        QList<int> ids;
        ids.append(resultGroup1->id());
        ids.append(resultGroup2->id());
        QVERIFY(service->removeEntries(ids));
        QSharedPointer<CaEntry> storageGroup1 = service->getEntry(resultGroup1->id());
        QSharedPointer<CaEntry> storageGroup2 = service->getEntry(resultGroup2->id());
        QVERIFY(storageGroup1.isNull());  // entry not present in the storage
        QVERIFY(storageGroup2.isNull());  // entry not present in the storage

        QSharedPointer<CaEntry> resultGroup3 = service->createEntry(group);
        QSharedPointer<CaEntry> resultGroup4 = service->createEntry(group);
        QVERIFY(!resultGroup3.isNull());
        QVERIFY(!resultGroup4.isNull());

        QList<QSharedPointer<CaEntry> > entries;
        entries.append(resultGroup3);
        entries.append(resultGroup4);

        QVERIFY(service->removeEntries(entries));
        QSharedPointer<CaEntry> storageGroup3 = service->getEntry(resultGroup3->id());
        QSharedPointer<CaEntry> storageGroup4 = service->getEntry(resultGroup4->id());
        QVERIFY(storageGroup3.isNull());  // entry not present in the storage
        QVERIFY(storageGroup4.isNull());  // entry not present in the storage

        //cleanup
        service->removeEntry(*resultGroup1);
        service->removeEntry(*resultGroup2);
        service->removeEntry(*resultGroup3);
        service->removeEntry(*resultGroup4);
    }
}

// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestRemoveGroupsFail()
{
    {
        QSharedPointer<CaEntry> group(new CaEntry(GroupEntryRole));
        group->setText("testName");
        group->setAttribute("attrName1", "attrVal1");
        group->setEntryTypeName("test");
        group->setFlags(RemovableEntryFlag);

        QSharedPointer<CaService> service = CaService::instance();
        QSharedPointer<CaEntry> resultGroup1 = service->createEntry(*group);
        QVERIFY(!resultGroup1.isNull());

        QList<int> ids;
        ids.append(resultGroup1->id());
        ids.append(9999);// not present in the storage
        QVERIFY(!service->removeEntries(ids));
        QSharedPointer<CaEntry> storageGroup1 = service->getEntry(resultGroup1->id());
        QVERIFY(!storageGroup1.isNull());  // entry present in the storage

        QSharedPointer<CaEntry> resultGroup2 = service->createEntry(*group);
        QVERIFY(!resultGroup2.isNull());

        QList< QSharedPointer<CaEntry> > entries;
        entries.append(resultGroup2);
        entries.append(group);//id not specified

        QVERIFY(!service->removeEntries(entries));
        QSharedPointer<CaEntry> storageGroup2 = service->getEntry(resultGroup2->id());
        QVERIFY(!storageGroup2.isNull());  // entry present in the storage

        //cleanup
        service->removeEntry(*resultGroup1);
        service->removeEntry(*resultGroup2);
    }
}