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"