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 "test-util.h"
0007 
0008 #include "validators/datetimevalidator.h"
0009 
0010 using namespace validators::test;
0011 
0012 static void define_valid_table(void)
0013 {
0014     define_test_case(QLatin1String("1970-01-01T00:00:00Z"), QLatin1String("1970-01-01T00:00:00Z"), QValidator::Acceptable);
0015     define_test_case(QLatin1String("1970-01-01T00:00:00.500Z"), QLatin1String("1970-01-01T00:00:00.500Z"), QValidator::Acceptable);
0016     define_test_case(QLatin1String("1969-12-31T23:05:00-01:00"), QLatin1String("1969-12-31T23:05:00-01:00"), QValidator::Acceptable);
0017     define_test_case(QLatin1String("1970-01-01T01:05:00+01:00"), QLatin1String("1970-01-01T01:05:00+01:00"), QValidator::Acceptable);
0018 }
0019 
0020 static void define_invalid_table(void)
0021 {
0022     define_test_case(QLatin1String("Not a datetime"), QLatin1String("Not a datetime"), QValidator::Intermediate);
0023     define_test_case(QLatin1String("1980-01-01T00:00:00Z"), QLatin1String("1980-01-01T00:00:00Z"), QValidator::Invalid);
0024     define_test_case(QLatin1String("1969-12-31T23:05:00.001-01:00"), QLatin1String("1969-12-31T23:05:00.001-01:00"), QValidator::Invalid);
0025     define_test_case(QLatin1String("1970-01-01T01:05:00.001+01:00"), QLatin1String("1970-01-01T01:05:00.001+01:00"), QValidator::Invalid);
0026 }
0027 
0028 static void define_empty_table(void)
0029 {
0030     define_test_case(QLatin1String(""), QLatin1String(""), QValidator::Intermediate);
0031     define_test_case(QLatin1String("  "), QLatin1String(""), QValidator::Intermediate);
0032     define_test_case(QLatin1String("\t"), QLatin1String(""), QValidator::Intermediate);
0033     define_test_case(QLatin1String("\r\n"), QLatin1String(""), QValidator::Intermediate);
0034 }
0035 
0036 static void define_data(void)
0037 {
0038     define_empty_table();
0039     define_valid_table();
0040     define_invalid_table();
0041 }
0042 
0043 static qint64 fake_clock(void)
0044 {
0045     return 300'000LL;
0046 }
0047 
0048 DEFINE_VALIDATOR_TEST(EpochValidatorTest, validators::EpochValidator, define_data, fake_clock);
0049 
0050 QTEST_APPLESS_MAIN(EpochValidatorTest)
0051 
0052 #include "epoch-validator.moc"