File indexing completed on 2024-04-28 15:18:53
0001 /* 0002 This file is part of the kcalcore library. 0003 0004 SPDX-FileCopyrightText: 2010 Casey Link <unnamedrambler@gmail.com> 0005 SPDX-FileCopyrightText: 2009-2010 Klaralvdalens Datakonsult AB, a KDAB Group company <info@kdab.net> 0006 0007 SPDX-License-Identifier: LGPL-2.0-or-later 0008 */ 0009 0010 #include "testfreebusyperiod.h" 0011 #include "freebusyperiod.h" 0012 0013 #include <QTest> 0014 QTEST_MAIN(FreeBusyPeriodTest) 0015 0016 using namespace KCalendarCore; 0017 0018 void FreeBusyPeriodTest::testValidity() 0019 { 0020 const QDateTime p1DateTime(QDate(2006, 8, 30), QTime(7, 0, 0), Qt::UTC); 0021 FreeBusyPeriod p1(p1DateTime, Duration(60)); 0022 0023 QString summary = QStringLiteral("I can haz summary?"); 0024 QString location = QStringLiteral("The Moon"); 0025 p1.setSummary(summary); 0026 p1.setLocation(location); 0027 0028 QVERIFY(p1.hasDuration()); 0029 QCOMPARE(p1.duration().asSeconds(), 60); 0030 QVERIFY(p1.start() == QDateTime(QDate(2006, 8, 30), QTime(7, 0, 0), Qt::UTC)); 0031 0032 QCOMPARE(p1.summary(), summary); 0033 QCOMPARE(p1.location(), location); 0034 } 0035 0036 void FreeBusyPeriodTest::testAssign() 0037 { 0038 const QDateTime p1DateTime(QDate(2006, 8, 30), QTime(7, 0, 0), Qt::UTC); 0039 FreeBusyPeriod p1(p1DateTime, Duration(60)); 0040 FreeBusyPeriod p2; 0041 0042 QString summary = QStringLiteral("I can haz summary?"); 0043 QString location = QStringLiteral("The Moon"); 0044 p1.setSummary(summary); 0045 p1.setLocation(location); 0046 0047 p2 = p1; 0048 0049 QVERIFY(p2.hasDuration()); 0050 QVERIFY(p2.duration().asSeconds() == 60); 0051 QVERIFY(p2.start() == p1DateTime); 0052 QCOMPARE(p1.summary(), summary); 0053 QCOMPARE(p1.location(), location); 0054 } 0055 0056 void FreeBusyPeriodTest::testCopyConstructor() 0057 { 0058 const QDateTime p1DateTime(QDate(2006, 8, 30), QTime(7, 0, 0), Qt::UTC); 0059 FreeBusyPeriod p1(p1DateTime, Duration(60)); 0060 QString summary = QStringLiteral("I can haz summary?"); 0061 QString location = QStringLiteral("The Moon"); 0062 p1.setSummary(summary); 0063 p1.setLocation(location); 0064 0065 FreeBusyPeriod p2 {p1}; 0066 0067 QVERIFY(p2.hasDuration()); 0068 QVERIFY(p2.duration().asSeconds() == 60); 0069 QVERIFY(p2.start() == p1DateTime); 0070 QCOMPARE(p1.summary(), summary); 0071 QCOMPARE(p1.location(), location); 0072 } 0073 0074 0075 void FreeBusyPeriodTest::testDataStreamOut() 0076 { 0077 const QDateTime p1DateTime(QDate(2006, 8, 30), QTime(7, 0, 0), Qt::UTC); 0078 FreeBusyPeriod p1(p1DateTime, Duration(60)); 0079 0080 p1.setSummary(QStringLiteral("I can haz summary?")); 0081 p1.setLocation(QStringLiteral("The Moon")); 0082 0083 QByteArray byteArray; 0084 QDataStream out_stream(&byteArray, QIODevice::WriteOnly); 0085 0086 out_stream << p1; 0087 0088 QDataStream in_stream(&byteArray, QIODevice::ReadOnly); 0089 0090 Period p2; 0091 Period periodParent = static_cast<Period>(p1); 0092 in_stream >> p2; 0093 QVERIFY(periodParent == p2); 0094 0095 QString summary; 0096 in_stream >> summary; 0097 QCOMPARE(summary, p1.summary()); 0098 0099 QString location; 0100 in_stream >> location; 0101 QCOMPARE(location, p1.location()); 0102 } 0103 0104 void FreeBusyPeriodTest::testDataStreamIn() 0105 { 0106 const QDateTime p1DateTime = QDate(2006, 8, 30).startOfDay(); 0107 const Duration duration(24 * 60 * 60); 0108 FreeBusyPeriod p1(p1DateTime, duration); 0109 p1.setSummary(QStringLiteral("I can haz summary?")); 0110 p1.setLocation(QStringLiteral("The Moon")); 0111 0112 QByteArray byteArray; 0113 QDataStream out_stream(&byteArray, QIODevice::WriteOnly); 0114 0115 out_stream << p1; 0116 0117 QDataStream in_stream(&byteArray, QIODevice::ReadOnly); 0118 0119 FreeBusyPeriod p2; 0120 in_stream >> p2; 0121 0122 QCOMPARE(p2, p1); 0123 } 0124 0125 #include "moc_testfreebusyperiod.cpp"