1 /*
2    SPDX-FileCopyrightText: 2019-2021 Laurent Montel <montel@kde.org>
3 
4    SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #include "queryparameterstest.h"
8 #include "restapiabstractjob.h"
9 #include <QTest>
10 #include <QUrlQuery>
QTEST_GUILESS_MAIN(QueryParametersTest)11 QTEST_GUILESS_MAIN(QueryParametersTest)
12 
13 QueryParametersTest::QueryParametersTest(QObject *parent)
14     : QObject(parent)
15 {
16 }
17 
shouldHaveDefaultValue()18 void QueryParametersTest::shouldHaveDefaultValue()
19 {
20     RocketChatRestApi::QueryParameters query;
21     QCOMPARE(query.count(), -1);
22     QCOMPARE(query.offset(), -1);
23     QVERIFY(!query.isValid());
24     QVERIFY(query.sorting().isEmpty());
25     QVERIFY(query.custom().isEmpty());
26     QVERIFY(query.searchString().isEmpty());
27 }
28 
shouldQueryIsValid()29 void QueryParametersTest::shouldQueryIsValid()
30 {
31     RocketChatRestApi::QueryParameters query;
32     QVERIFY(!query.isValid());
33     query.setCount(4);
34     QVERIFY(query.isValid());
35 }
36 
shouldGenerateQuery()37 void QueryParametersTest::shouldGenerateQuery()
38 {
39     {
40         RocketChatRestApi::QueryParameters query;
41         QVERIFY(!query.isValid());
42         query.setCount(4);
43         QUrlQuery urlQuery;
44         RocketChatRestApi::QueryParameters::generateQueryParameter(query, urlQuery);
45         QCOMPARE(urlQuery.toString(), QStringLiteral("count=4"));
46     }
47     {
48         RocketChatRestApi::QueryParameters query;
49         QVERIFY(!query.isValid());
50         QMap<QString, QString> custom;
51         custom.insert(QStringLiteral("bla"), QStringLiteral("foo"));
52         query.setCustom(custom);
53         QVERIFY(query.isValid());
54         QUrlQuery urlQuery;
55         RocketChatRestApi::QueryParameters::generateQueryParameter(query, urlQuery);
56         QCOMPARE(urlQuery.toString(), QStringLiteral("query=%7B%22bla%22:%22foo%22%7D"));
57     }
58     {
59         RocketChatRestApi::QueryParameters query;
60         QVERIFY(!query.isValid());
61         QMap<QString, QString> custom;
62         custom.insert(QStringLiteral("text"), QStringLiteral("gene"));
63         custom.insert(QStringLiteral("type"), QStringLiteral("channels"));
64         query.setCustom(custom);
65         QVERIFY(query.isValid());
66         QUrlQuery urlQuery;
67         RocketChatRestApi::QueryParameters::generateQueryParameter(query, urlQuery);
68         QCOMPARE(urlQuery.toString(), QStringLiteral("query=%7B%22text%22:%22gene%22,%22type%22:%22channels%22%7D"));
69     }
70     {
71         RocketChatRestApi::QueryParameters query;
72         QVERIFY(!query.isValid());
73         query.setSearchString(QStringLiteral("blabla"));
74         QVERIFY(query.isValid());
75         QUrlQuery urlQuery;
76         RocketChatRestApi::QueryParameters::generateQueryParameter(query, urlQuery);
77         QCOMPARE(urlQuery.toString(), QStringLiteral("query=%7B%22name%22:%7B%22$regex%22:%22blabla%22,%22$options%22:%22i%22%7D%7D"));
78     }
79 }
80