File indexing completed on 2024-05-19 16:38:19

0001 /*
0002     SPDX-FileCopyrightText: 2013 Ivan Cukic <ivan.cukic(at)kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef RESULTSET_QUICKCHECK_TEST_H
0008 #define RESULTSET_QUICKCHECK_TEST_H
0009 
0010 #include <common/test.h>
0011 
0012 #include <KActivities/Controller>
0013 #include <memory>
0014 
0015 #include <set>
0016 
0017 #include "quickcheck/tables/ResourceInfo.h"
0018 #include "quickcheck/tables/ResourceLink.h"
0019 #include "quickcheck/tables/ResourceScoreCache.h"
0020 
0021 class ResultSetQuickCheckTest : public Test
0022 {
0023     Q_OBJECT
0024 public:
0025     ResultSetQuickCheckTest(QObject *parent = nullptr);
0026 
0027 private Q_SLOTS:
0028     void initTestCase();
0029 
0030     void testUsedResourcesForAgents();
0031     void testUsedResourcesForActivities();
0032 
0033     void testLinkedResourcesForAgents();
0034 
0035     void cleanupTestCase();
0036 
0037 public:
0038     std::unique_ptr<KActivities::Consumer> activities;
0039 
0040     struct PrimaryKeyOrder {
0041         template<typename T>
0042         bool operator()(const T &left, const T &right) const
0043         {
0044             return left.primaryKey() < right.primaryKey();
0045         }
0046     };
0047 
0048     TABLE(ResourceScoreCache) resourceScoreCaches;
0049     TABLE(ResourceInfo) resourceInfos;
0050     TABLE(ResourceLink) resourceLinks;
0051 
0052     QString randItem(const QStringList &choices) const;
0053 
0054     QStringList activitiesList;
0055     QStringList agentsList;
0056     QStringList typesList;
0057     QStringList resourcesList;
0058 
0059     void generateActivitiesList();
0060     void generateAgentsList();
0061     void generateTypesList();
0062     void generateResourcesList();
0063 
0064     void generateResourceInfos();
0065     void generateResourceScoreCaches();
0066     void generateResourceLinks();
0067 
0068     void pushToDatabase();
0069     void pullFromDatabase();
0070 };
0071 
0072 #endif /* RESULTSET_QUICKCHECK_TEST_H */