File indexing completed on 2024-05-12 05:52:48

0001 /*
0002  * SPDX-License-Identifier: GPL-3.0-or-later
0003  * SPDX-FileCopyrightText: 2020 Johan Ouwerkerk <jm.ouwerkerk@gmail.com>
0004  */
0005 #include "account/validation.h"
0006 
0007 #include <QObject>
0008 #include <QTest>
0009 
0010 class AccountValidationTest: public QObject
0011 {
0012     Q_OBJECT
0013 private Q_SLOTS:
0014     void checkId(void);
0015     void checkId_data(void);
0016     void checkName(void);
0017     void checkName_data(void);
0018     void checkSecret(void);
0019     void checkSecret_data(void);
0020     void checkTokenLength(void);
0021     void checkTokenLength_data(void);
0022     void checkTimeStep(void);
0023     void checkTimeStep_data(void);
0024 };
0025 
0026 void AccountValidationTest::checkId(void)
0027 {
0028     QFETCH(QUuid, id);
0029     QTEST(accounts::checkId(id), "expected");
0030 }
0031 
0032 void AccountValidationTest::checkName(void)
0033 {
0034     QFETCH(QString, name);
0035     QTEST(accounts::checkName(name), "expected");
0036 }
0037 
0038 void AccountValidationTest::checkSecret(void)
0039 {
0040     QFETCH(QString, secret);
0041     QTEST(accounts::checkSecret(secret), "expected");
0042 }
0043 
0044 void AccountValidationTest::checkTokenLength(void)
0045 {
0046     QFETCH(int, tokenLength);
0047     QTEST(accounts::checkTokenLength(tokenLength), "expected");
0048 }
0049 
0050 void AccountValidationTest::checkTimeStep(void)
0051 {
0052     QFETCH(uint, timeStep);
0053     QTEST(accounts::checkTimeStep(timeStep), "expected");
0054 }
0055 
0056 void AccountValidationTest::checkId_data()
0057 {
0058     QTest::addColumn<QUuid>("id");
0059     QTest::addColumn<bool>("expected");
0060 
0061     QTest::newRow("implicit null uuid") << QUuid() << false;
0062     QTest::newRow("explicit null uuid") << QUuid(QLatin1String("00000000-0000-0000-0000-000000000000")) << false;
0063     QTest::newRow("valid uuid") << QUuid(QLatin1String("52c32412-8472-4fdc-8fad-2d53ecffd391")) << true;
0064 }
0065 
0066 void AccountValidationTest::checkName_data()
0067 {
0068     QTest::addColumn<QString>("name");
0069     QTest::addColumn<bool>("expected");
0070 
0071     QTest::newRow("null value") << QString() << false;
0072     QTest::newRow("empty name") << QString(QLatin1String("")) << false;
0073     QTest::newRow("valid name") << QString(QLatin1String("something")) << true;
0074 }
0075 
0076 void AccountValidationTest::checkSecret_data()
0077 {
0078     QTest::addColumn<QString>("secret");
0079     QTest::addColumn<bool>("expected");
0080 
0081     QTest::newRow("null value") << QString() << false;
0082     QTest::newRow("empty secret") << QString(QLatin1String("")) << false;
0083     QTest::newRow("valid secret") << QString(QLatin1String("ONSWG4TFOQ======")) << true;
0084 }
0085 
0086 void AccountValidationTest::checkTokenLength_data()
0087 {
0088     QTest::addColumn<int>("tokenLength");
0089     QTest::addColumn<bool>("expected");
0090 
0091     QTest::newRow("too small") << 5 << false;
0092     QTest::newRow("too large") << 11 << false;
0093     QTest::newRow("minimum") << 6 << true;
0094     QTest::newRow("maximum") << 8 << true;
0095 }
0096 
0097 void AccountValidationTest::checkTimeStep_data()
0098 {
0099     QTest::addColumn<uint>("timeStep");
0100     QTest::addColumn<bool>("expected");
0101 
0102     QTest::newRow("too small") << 0U << false;
0103     QTest::newRow("minimum") << 1U << true;
0104     QTest::newRow("default") << 30U << true;
0105 }
0106 
0107 QTEST_APPLESS_MAIN(AccountValidationTest)
0108 
0109 #include "account-validation.moc"