File indexing completed on 2024-04-28 11:33:58
0001 /* 0002 * SPDX-FileCopyrightText: 2022 Glen Ditchfield <GJDitchfield@acm.org> 0003 * SPDX-License-Identifier: LGPL-2.0-or-later 0004 */ 0005 0006 #include "incidencebase.h" 0007 0008 #include <QTest> 0009 #include <QTimeZone> 0010 0011 using namespace KCalendarCore; 0012 0013 class TestIdentical: public QObject 0014 { 0015 Q_OBJECT 0016 private Q_SLOTS: 0017 0018 void testTrue() 0019 { 0020 QVERIFY( 0021 identical(QDateTime(QDate(2022, 02, 22), QTime(22, 22, 22), Qt::LocalTime), 0022 QDateTime(QDate(2022, 02, 22), QTime(22, 22, 22), Qt::LocalTime))); 0023 0024 QVERIFY( 0025 identical(QDateTime(QDate(2022, 02, 22), QTime(22, 22, 22), QTimeZone("Atlantic/Azores")), 0026 QDateTime(QDate(2022, 02, 22), QTime(22, 22, 22), QTimeZone("Atlantic/Azores")))); 0027 0028 QVERIFY(identical(QDateTime(), QDateTime())); 0029 } 0030 0031 void testFalse_data() 0032 { 0033 QTest::addColumn<QDateTime>("dt1"); 0034 QTest::addColumn<QDateTime>("dt2"); 0035 0036 QTest::newRow("date") 0037 << QDateTime(QDate(2022, 02, 22), QTime(22, 22, 22), Qt::LocalTime) 0038 << QDateTime(QDate(2022, 02, 23), QTime(22, 22, 22), Qt::LocalTime); 0039 QTest::newRow("time") 0040 << QDateTime(QDate(2022, 02, 22), QTime(22, 22, 22), Qt::LocalTime) 0041 << QDateTime(QDate(2022, 02, 22), QTime(22, 22, 23), Qt::LocalTime); 0042 0043 // Note: Qt::LocalTime is used for "floating" date-times; "this time 0044 // in the current system time zone". 0045 QTest::newRow("timeSpec") 0046 << QDateTime(QDate(2022, 02, 22), QTime(22, 22, 22), Qt::LocalTime) 0047 << QDateTime(QDate(2022, 02, 22), QTime(22, 22, 22), QTimeZone::systemTimeZone()); 0048 0049 // Both zones are UTC+0. 0050 QTest::newRow("timeZone") 0051 << QDateTime(QDate(2022, 02, 22), QTime(22, 22, 22), QTimeZone("Africa/Abidjan")) 0052 << QDateTime(QDate(2022, 02, 22), QTime(22, 22, 22), QTimeZone("Africa/Accra")); 0053 0054 QTest::newRow("invalid timeSpec") 0055 << QDateTime(QDate(2022, 02, 22), QTime(22, 22, 22), QDateTime().timeSpec()) 0056 << QDateTime(); 0057 QTest::newRow("invalid timeZone") 0058 << QDateTime(QDate(2022, 02, 22), QTime(22, 22, 22), QDateTime().timeZone()) 0059 << QDateTime(); 0060 } 0061 0062 void testFalse() 0063 { 0064 QFETCH(QDateTime, dt1); 0065 QFETCH(QDateTime, dt2); 0066 QVERIFY(!identical(dt1, dt2)); 0067 } 0068 }; 0069 0070 QTEST_MAIN(TestIdentical) 0071 #include "testidentical.moc"