File indexing completed on 2024-04-14 04:36:18

0001 /*
0002     SPDX-FileCopyrightText: 2019 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include <kgraphqlminimizer_p.h>
0008 
0009 #include <QObject>
0010 #include <QTest>
0011 
0012 #define B(x) QByteArray(x)
0013 
0014 class KGraphQLMinimizerTest : public QObject
0015 {
0016     Q_OBJECT
0017 private Q_SLOTS:
0018     void testMinimize_data()
0019     {
0020         QTest::addColumn<QByteArray>("in");
0021         QTest::addColumn<QByteArray>("out");
0022 
0023         QTest::newRow("empty") << B("") << B("");
0024         QTest::newRow("leading comment") << B("# bla\nquery") << B("query");
0025         QTest::newRow("inline comment") << B("query # comment\n{}") << B("query{}");
0026         QTest::newRow("indent") << B("{\n  __schema {\n    types {\n   name\n   }\n}") << B("{__schema{types{name}}");
0027         QTest::newRow("optional comma") <<  B("plan (\n  from: $fromArg\nto: $toArg,\n  date: $dateArg\n)") << B("plan(from:$fromArg\nto:$toArg,date:$dateArg)");
0028     }
0029 
0030     void testMinimize()
0031     {
0032         QFETCH(QByteArray, in);
0033         QFETCH(QByteArray, out);
0034 
0035         KGraphQLMinimizer m;
0036         QCOMPARE(m.minimizeQuery(in), out);
0037     }
0038 };
0039 
0040 QTEST_GUILESS_MAIN(KGraphQLMinimizerTest)
0041 
0042 #include "kgraphqlminimizertest.moc"