File indexing completed on 2024-04-28 05:19:53
0001 /* 0002 * SPDX-FileCopyrightText: 2018 Daniel Vrátil <dvratil@kde.org> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #pragma once 0008 0009 #include "fakenetworkaccessmanager.h" 0010 0011 #include <QTest> 0012 0013 #define VERIFY2_RET(cond, msg, ret) \ 0014 do { \ 0015 if (cond) { \ 0016 if (!QTest::qVerify(true, #cond, (msg), __FILE__, __LINE__)) \ 0017 return ret; \ 0018 } else { \ 0019 if (!QTest::qVerify(false, #cond, (msg), __FILE__, __LINE__)) \ 0020 return ret; \ 0021 } \ 0022 } while (false) 0023 0024 #define VERIFY_RET(cond, ret) VERIFY2_RET(cond, #cond, ret) 0025 0026 #define COMPARE_RET(actual, expected, ret) \ 0027 do { \ 0028 if (!QTest::qCompare(actual, expected, #actual, #expected, __FILE__, __LINE__)) \ 0029 return ret; \ 0030 } while (false) 0031 0032 #define FAIL_RET(msg, ret) \ 0033 do { \ 0034 QTest::qFail(msg, __FILE__, __LINE__); \ 0035 return ret; \ 0036 } while (false) 0037 0038 namespace KGAPI2 0039 { 0040 class Job; 0041 } 0042 0043 bool execJob(KGAPI2::Job *job); 0044 0045 FakeNetworkAccessManager::Scenario scenarioFromFile(const QString &request, const QString &response, bool needsAuth = true); 0046 0047 QByteArray reformatJSON(const QByteArray &json); 0048 QByteArray reformatXML(const QByteArray &xml); 0049 QByteArray diffData(const QByteArray &actual, const QByteArray &expected); 0050 0051 template<typename T> 0052 QStringList elementsToIds(const QList<T> &elems) 0053 { 0054 QStringList ids; 0055 ids.reserve(elems.size()); 0056 for (const auto &elem : elems) { 0057 ids.push_back(elem->id()); 0058 } 0059 return ids; 0060 } 0061 0062 template<typename T> 0063 QStringList elementsToUids(const QList<T> &elems) 0064 { 0065 QStringList uids; 0066 uids.reserve(elems.size()); 0067 for (const auto &elem : elems) { 0068 uids.push_back(elem->uid()); 0069 } 0070 return uids; 0071 }