File indexing completed on 2024-04-28 11:33:58

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"