File indexing completed on 2024-05-19 04:01:09
0001 /* 0002 SPDX-FileCopyrightText: 2016 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: MIT 0005 */ 0006 0007 #include <core/aggregation.h> 0008 #include <core/product.h> 0009 #include <core/schemaentry.h> 0010 #include <core/schemaentryelement.h> 0011 #include <core/schemaentrytemplates.h> 0012 0013 #include <QDebug> 0014 #include <QtTest/qtest.h> 0015 #include <QObject> 0016 #include <QStandardPaths> 0017 0018 using namespace KUserFeedback::Console; 0019 0020 class SchemaTemplateTest : public QObject 0021 { 0022 Q_OBJECT 0023 private Q_SLOTS: 0024 void initTestCase() 0025 { 0026 Q_INIT_RESOURCE(schematemplates); 0027 QStandardPaths::setTestModeEnabled(true); 0028 } 0029 0030 void testTemplateLoading() 0031 { 0032 QVERIFY(SchemaEntryTemplates::availableTemplates().size() > 5); 0033 0034 for (const auto &t : SchemaEntryTemplates::availableTemplates()) { 0035 qDebug() << t.name(); 0036 QVERIFY(!t.name().isEmpty()); 0037 QVERIFY(!t.schema().isEmpty()); 0038 for (const auto &entry : t.schema()) { 0039 QVERIFY(!entry.name().isEmpty()); 0040 QVERIFY(!entry.elements().isEmpty()); 0041 for (const auto &elem : entry.elements()) { 0042 QVERIFY(!elem.name().isEmpty()); 0043 } 0044 } 0045 QVERIFY(!t.aggregations().isEmpty()); 0046 for (const auto &aggr : t.aggregations()) { 0047 QVERIFY(!aggr.elements().isEmpty()); 0048 for (const auto &elem : aggr.elements()) { 0049 QVERIFY(!elem.schemaEntry().name().isEmpty()); 0050 if (elem.type() == AggregationElement::Value) 0051 QVERIFY(!elem.schemaEntryElement().name().isEmpty()); 0052 } 0053 } 0054 } 0055 } 0056 }; 0057 0058 QTEST_MAIN(SchemaTemplateTest) 0059 0060 #include "schematemplatetest.moc"