File indexing completed on 2024-05-12 04:38:21
0001 /* 0002 SPDX-FileCopyrightText: 2015 Laszlo Kis-Adam <laszlo.kis-adam@kdemail.net> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include <QTest> 0008 #include <QStandardPaths> 0009 #include <shell/problemstorenode.h> 0010 #include <shell/problem.h> 0011 0012 using namespace KDevelop; 0013 0014 class TestProblemStoreNode : public QObject 0015 { 0016 Q_OBJECT 0017 private Q_SLOTS: 0018 void initTestCase(); 0019 void cleanupTestCase(); 0020 0021 void testRootNode(); 0022 void testChildren(); 0023 void testLabelNode(); 0024 void testProblemNode(); 0025 0026 private: 0027 QScopedPointer<ProblemStoreNode> m_root; 0028 }; 0029 0030 0031 void TestProblemStoreNode::initTestCase() 0032 { 0033 QStandardPaths::setTestModeEnabled(true); 0034 m_root.reset(new ProblemStoreNode()); 0035 } 0036 0037 void TestProblemStoreNode::cleanupTestCase() 0038 { 0039 } 0040 0041 void TestProblemStoreNode::testRootNode() 0042 { 0043 QVERIFY(m_root->isRoot()); 0044 QVERIFY(m_root->parent() == nullptr); 0045 QCOMPARE(m_root->index(), -1); 0046 QCOMPARE(m_root->count(), 0); 0047 QCOMPARE(m_root->children().count(), 0); 0048 QVERIFY(m_root->label().isEmpty()); 0049 QVERIFY(m_root->problem().constData() == nullptr); 0050 } 0051 0052 void TestProblemStoreNode::testChildren() 0053 { 0054 QVector<ProblemStoreNode*> nodes; 0055 nodes.push_back(new ProblemStoreNode()); 0056 nodes.push_back(new ProblemStoreNode()); 0057 nodes.push_back(new ProblemStoreNode()); 0058 0059 int c = 0; 0060 for (ProblemStoreNode* node : qAsConst(nodes)) { 0061 m_root->addChild(node); 0062 0063 c++; 0064 QCOMPARE(m_root->count(), c); 0065 QCOMPARE(m_root->children().count(), c); 0066 QVERIFY(node->parent() == m_root.data()); 0067 QVERIFY(!node->isRoot()); 0068 } 0069 0070 for (int i = 0; i < c; i++) { 0071 ProblemStoreNode *node = m_root->child(i); 0072 0073 QVERIFY(node); 0074 QVERIFY(node == nodes[i]); 0075 QCOMPARE(node->index(), i); 0076 } 0077 0078 nodes.clear(); 0079 m_root->clear(); 0080 QCOMPARE(m_root->count(), 0); 0081 } 0082 0083 void TestProblemStoreNode::testLabelNode() 0084 { 0085 QString s1 = QStringLiteral("TEST1"); 0086 QString s2 = QStringLiteral("TEST2"); 0087 0088 auto node = LabelNode(nullptr, s1); 0089 QCOMPARE(node.label(), s1); 0090 0091 node.setLabel(s2); 0092 QCOMPARE(node.label(), s2); 0093 } 0094 0095 void TestProblemStoreNode::testProblemNode() 0096 { 0097 IProblem::Ptr p1(new DetectedProblem()); 0098 IProblem::Ptr p2(new DetectedProblem()); 0099 0100 QString s1 = QStringLiteral("PROBLEM1"); 0101 QString s2 = QStringLiteral("PROBLEM2"); 0102 0103 p1->setDescription(s1); 0104 p2->setDescription(s2); 0105 0106 QScopedPointer<ProblemNode> node; 0107 node.reset(new ProblemNode(nullptr, p1)); 0108 0109 QCOMPARE(node->problem()->description(), p1->description()); 0110 0111 node->setProblem(p2); 0112 QCOMPARE(node->problem()->description(), p2->description()); 0113 } 0114 0115 QTEST_MAIN(TestProblemStoreNode) 0116 0117 #include "test_problemstorenode.moc" 0118