File indexing completed on 2024-05-12 05:22:08
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 #include <QObject> 0008 #include <QTest> 0009 0010 #include "fakenetworkaccessmanagerfactory.h" 0011 #include "taskstestutils.h" 0012 #include "testutils.h" 0013 0014 #include "account.h" 0015 #include "tasklist.h" 0016 #include "tasklistcreatejob.h" 0017 #include "types.h" 0018 0019 using namespace KGAPI2; 0020 0021 Q_DECLARE_METATYPE(QList<FakeNetworkAccessManager::Scenario>) 0022 Q_DECLARE_METATYPE(KGAPI2::TaskListsList) 0023 0024 class TaskListCreateJobTest : public QObject 0025 { 0026 Q_OBJECT 0027 private Q_SLOTS: 0028 void initTestCase() 0029 { 0030 NetworkAccessManagerFactory::setFactory(new FakeNetworkAccessManagerFactory); 0031 } 0032 0033 void testCreate_data() 0034 { 0035 QTest::addColumn<QList<FakeNetworkAccessManager::Scenario>>("scenarios"); 0036 QTest::addColumn<TaskListsList>("taskLists"); 0037 QTest::addColumn<TaskListsList>("expectedTaskLists"); 0038 0039 auto taskList1 = taskListFromFile(QFINDTESTDATA("data/tasklist1.json")); 0040 taskList1->setUid({}); 0041 QTest::newRow("simple tasklist") << QList<FakeNetworkAccessManager::Scenario>{scenarioFromFile(QFINDTESTDATA("data/tasklist1_create_request.txt"), 0042 QFINDTESTDATA("data/tasklist1_create_response.txt"))} 0043 << TaskListsList{taskList1} << TaskListsList{taskListFromFile(QFINDTESTDATA("data/tasklist1.json"))}; 0044 0045 auto taskList2 = taskListFromFile(QFINDTESTDATA("data/tasklist2.json")); 0046 taskList2->setUid({}); 0047 QTest::newRow("batch create") << QList<FakeNetworkAccessManager::Scenario>{scenarioFromFile(QFINDTESTDATA("data/tasklist1_create_request.txt"), 0048 QFINDTESTDATA("data/tasklist1_create_response.txt")), 0049 scenarioFromFile(QFINDTESTDATA("data/tasklist2_create_request.txt"), 0050 QFINDTESTDATA("data/tasklist2_create_response.txt"))} 0051 << TaskListsList{taskList1, taskList2} 0052 << TaskListsList{taskListFromFile(QFINDTESTDATA("data/tasklist1.json")), 0053 taskListFromFile(QFINDTESTDATA("data/tasklist2.json"))}; 0054 } 0055 0056 void testCreate() 0057 { 0058 QFETCH(QList<FakeNetworkAccessManager::Scenario>, scenarios); 0059 QFETCH(TaskListsList, taskLists); 0060 QFETCH(TaskListsList, expectedTaskLists); 0061 0062 FakeNetworkAccessManagerFactory::get()->setScenarios(scenarios); 0063 0064 auto account = AccountPtr::create(QStringLiteral("MockAccount"), QStringLiteral("MockToken")); 0065 TaskListCreateJob *job = nullptr; 0066 if (taskLists.count() == 1) { 0067 job = new TaskListCreateJob(taskLists.at(0), account); 0068 } else { 0069 job = new TaskListCreateJob(taskLists, account); 0070 } 0071 QVERIFY(execJob(job)); 0072 const auto items = job->items(); 0073 QCOMPARE(items.count(), expectedTaskLists.count()); 0074 for (int i = 0; i < expectedTaskLists.count(); ++i) { 0075 const auto returnedList = items.at(i).dynamicCast<TaskList>(); 0076 QVERIFY(returnedList); 0077 QCOMPARE(*returnedList, *expectedTaskLists.at(i)); 0078 } 0079 } 0080 }; 0081 0082 QTEST_GUILESS_MAIN(TaskListCreateJobTest) 0083 0084 #include "tasklistcreatejobtest.moc"