Warning, file /frameworks/kcalendarcore/autotests/testduration.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 This file is part of the kcalcore library. 0003 0004 SPDX-FileCopyrightText: 2006 Allen Winter <winter@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.0-or-later 0007 */ 0008 0009 #include "testduration.h" 0010 #include "duration.h" 0011 0012 #include <QDateTime> 0013 0014 #include <QTest> 0015 QTEST_MAIN(DurationTest) 0016 0017 using namespace KCalendarCore; 0018 0019 void DurationTest::testValidity() 0020 { 0021 const QDateTime firstDateTime(QDate(2006, 8, 3), QTime(7, 0, 0), Qt::UTC); 0022 0023 Duration d(firstDateTime, QDateTime(QDate(2006, 8, 3), QTime(8, 0, 0), Qt::UTC)); 0024 0025 QCOMPARE(d.asSeconds(), 1 * 60 * 60); 0026 } 0027 0028 void DurationTest::testCompare() 0029 { 0030 const QDateTime firstDateTime(QDate(2006, 8, 3), QTime(7, 0, 0), Qt::UTC); 0031 0032 Duration d1(firstDateTime, QDateTime(QDate(2006, 8, 3), QTime(8, 0, 0), Qt::UTC)); 0033 // d1 has 1hr duration 0034 0035 Duration d2(2 * 60 * 60); // 2hr duration 0036 0037 Duration d1copy {d1}; // test copy constructor 0038 Duration d1assign; 0039 d1assign = d1; // test operator= 0040 0041 QVERIFY(d1 < d2); 0042 QVERIFY(d1 != d2); 0043 QVERIFY(d1copy == d1); 0044 QVERIFY(d1assign == d1); 0045 0046 Duration d3(7, Duration::Days); 0047 Duration d4(7 * 24 * 60 * 60, Duration::Seconds); 0048 QVERIFY(d3 != d4); // cannot compare days durations with seconds durations 0049 0050 QVERIFY(d3 > d2); 0051 QVERIFY(-d3 < d2); 0052 0053 Duration d5 = d1; 0054 d5 += d2; // should be 3hrs 0055 QVERIFY(d5 > d2); 0056 QVERIFY(d2 < d5); 0057 Duration d6(3 * 60 * 60); 0058 QVERIFY(d6 == d5); 0059 QVERIFY((d6 -= (2 * 60 * 60)) == d1); 0060 } 0061 0062 void DurationTest::testSerializer_data() 0063 { 0064 QTest::addColumn<KCalendarCore::Duration>("duration"); 0065 0066 Duration duration1; 0067 Duration duration2(7, Duration::Days); 0068 Duration duration3(7 * 24 * 60 * 60, Duration::Seconds); 0069 0070 const QDateTime firstDateTime(QDate(2006, 8, 3), QTime(7, 0, 0), Qt::UTC); 0071 Duration duration4(firstDateTime, QDateTime(QDate(2006, 8, 3), QTime(8, 0, 0), Qt::UTC)); 0072 0073 QTest::newRow("duration1") << duration1; 0074 QTest::newRow("duration2") << duration2; 0075 QTest::newRow("duration3") << duration3; 0076 QTest::newRow("duration4") << duration4; 0077 } 0078 0079 void DurationTest::testSerializer() 0080 { 0081 QFETCH(KCalendarCore::Duration, duration); 0082 0083 QByteArray array; 0084 QDataStream stream(&array, QIODevice::WriteOnly); 0085 stream << duration; // Serialize 0086 0087 Duration duration2; 0088 QDataStream stream2(&array, QIODevice::ReadOnly); 0089 stream2 >> duration2; // deserialize 0090 QVERIFY(duration == duration2); 0091 } 0092 0093 void DurationTest::testIsNull() 0094 { 0095 Duration d; 0096 QVERIFY(d.isNull()); 0097 0098 Duration d2(7, Duration::Days); 0099 QVERIFY(!d2.isNull()); 0100 } 0101 0102 #include "moc_testduration.cpp"