File indexing completed on 2024-04-28 05:50:05
0001 /* 0002 * SPDX-License-Identifier: GPL-3.0-or-later 0003 * SPDX-FileCopyrightText: 2020 Johan Ouwerkerk <jm.ouwerkerk@gmail.com> 0004 */ 0005 0006 #include "validators/datetimevalidator.h" 0007 0008 #include <QDateTime> 0009 #include <QObject> 0010 #include <QTest> 0011 #include <QValidator> 0012 #include <QtDebug> 0013 0014 Q_DECLARE_METATYPE(std::optional<QDateTime>); 0015 0016 class DateTimeParsingSamplesTest: public QObject 0017 { 0018 Q_OBJECT 0019 private Q_SLOTS: 0020 void testParseDateTime(void); 0021 void testParseDateTime_data(void); 0022 }; 0023 0024 0025 void DateTimeParsingSamplesTest::testParseDateTime(void) 0026 { 0027 QFETCH(QString, input); 0028 QTEST(validators::parseDateTime(input), "result"); 0029 } 0030 0031 static void define_test_case(const QString &input, const std::optional<QDateTime> &result) 0032 { 0033 QTest::newRow(qPrintable(input)) << input << result; 0034 } 0035 0036 void DateTimeParsingSamplesTest::testParseDateTime_data(void) 0037 { 0038 QTest::addColumn<QString>("input"); 0039 QTest::addColumn<std::optional<QDateTime>>("result"); 0040 0041 0042 define_test_case(QLatin1String("1970-01-01T00:00:00Z"), std::optional<QDateTime>(QDateTime::fromMSecsSinceEpoch(0))); 0043 define_test_case(QLatin1String("1970-01-01T00:00:00.500Z"), std::optional<QDateTime>(QDateTime::fromMSecsSinceEpoch(500LL))); 0044 define_test_case(QLatin1String("01-01-1970 01:00"), std::nullopt); 0045 } 0046 0047 QTEST_APPLESS_MAIN(DateTimeParsingSamplesTest) 0048 0049 #include "datetime-parsing.moc"