File indexing completed on 2024-05-12 05:10:40

0001 /*
0002     SPDX-FileCopyrightText: 2013 Sérgio Martins <iamsergio@gmail.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <Akonadi/Collection>
0010 #include <Akonadi/Item>
0011 #include <KCalendarCore/Calendar>
0012 
0013 #include <QObject>
0014 #include <QString>
0015 
0016 namespace Akonadi
0017 {
0018 class IncidenceChanger;
0019 }
0020 
0021 class UnitTestBase : public QObject
0022 {
0023     Q_OBJECT
0024 public:
0025     UnitTestBase();
0026     void waitForIt(); // Waits 10 seconds for signals
0027     void stopWaiting();
0028     void createIncidence(const QString &uid);
0029     void createIncidence(const Akonadi::Item &item);
0030 
0031     void verifyExists(const QString &uid, bool exists);
0032     Akonadi::Item::List calendarItems();
0033 
0034 public Q_SLOTS:
0035     void onLoadFinished(bool success, const QString &errorMessage);
0036 
0037 protected:
0038     void compareCalendars(const KCalendarCore::Calendar::Ptr &expectedCalendar);
0039     static QByteArray readFile(const QString &filename);
0040     static Akonadi::Item generateIncidence(const QString &uid, const QString &organizer = QString());
0041 
0042     Akonadi::Collection mCollection;
0043     Akonadi::IncidenceChanger *mChanger = nullptr;
0044 };