File indexing completed on 2024-04-14 03:50:35

0001 /*
0002   This file is part of the kcalcore library.
0003   SPDX-FileCopyrightText: 2006, 2008 Allen Winter <winter@kde.org>
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 "testattendee.h"
0011 #include "attendee.h"
0012 #include "person.h"
0013 
0014 #include <QDataStream>
0015 #include <QTest>
0016 
0017 QTEST_MAIN(AttendeeTest)
0018 
0019 using namespace KCalendarCore;
0020 
0021 void AttendeeTest::testValidity()
0022 {
0023     Attendee attendee(QStringLiteral("fred"), QStringLiteral("fred@flintstone.com"));
0024     attendee.setRole(Attendee::Chair);
0025     QVERIFY(attendee.role() == Attendee::Chair);
0026 }
0027 
0028 void AttendeeTest::testType()
0029 {
0030     Attendee attendee(QStringLiteral("fred"), QStringLiteral("fred@flintstone.com"));
0031     QCOMPARE(attendee.cuType(), Attendee::Individual);
0032     QCOMPARE(attendee.cuTypeStr(), QLatin1String("INDIVIDUAL"));
0033 
0034     attendee.setCuType(attendee.cuTypeStr());
0035     QCOMPARE(attendee.cuType(), Attendee::Individual);
0036 
0037     attendee.setCuType(QStringLiteral("INVALID"));
0038     QCOMPARE(attendee.cuType(), Attendee::Unknown);
0039     QCOMPARE(attendee.cuTypeStr(), QLatin1String("UNKNOWN"));
0040 
0041     attendee.setCuType(QStringLiteral("group"));
0042     QCOMPARE(attendee.cuType(), Attendee::Group);
0043     QCOMPARE(attendee.cuTypeStr(), QLatin1String("GROUP"));
0044 
0045     attendee.setCuType(QStringLiteral("resource"));
0046     QCOMPARE(attendee.cuType(), Attendee::Resource);
0047     QCOMPARE(attendee.cuTypeStr(), QLatin1String("RESOURCE"));
0048 
0049     attendee.setCuType(QStringLiteral("ROOM"));
0050     QCOMPARE(attendee.cuType(), Attendee::Room);
0051     QCOMPARE(attendee.cuTypeStr(), QLatin1String("ROOM"));
0052 
0053     attendee.setCuType(QStringLiteral("UNKNOWN"));
0054     QCOMPARE(attendee.cuType(), Attendee::Unknown);
0055     QCOMPARE(attendee.cuTypeStr(), QLatin1String("UNKNOWN"));
0056 
0057     attendee.setCuType(QStringLiteral("X-test"));
0058     QCOMPARE(attendee.cuType(), Attendee::Unknown);
0059     QCOMPARE(attendee.cuTypeStr(), QLatin1String("X-TEST"));
0060 
0061     attendee.setCuType(QStringLiteral("IANA-TEST"));
0062     QCOMPARE(attendee.cuType(), Attendee::Unknown);
0063     QCOMPARE(attendee.cuTypeStr(), QLatin1String("IANA-TEST"));
0064 
0065     attendee.setCuType(Attendee::Individual);
0066     QCOMPARE(attendee.cuType(), Attendee::Individual);
0067 
0068     attendee.setCuType(Attendee::Group);
0069     QCOMPARE(attendee.cuType(), Attendee::Group);
0070 
0071     attendee.setCuType(Attendee::Resource);
0072     QCOMPARE(attendee.cuType(), Attendee::Resource);
0073 
0074     attendee.setCuType(Attendee::Room);
0075     QCOMPARE(attendee.cuType(), Attendee::Room);
0076 
0077     attendee.setCuType(Attendee::Unknown);
0078     QCOMPARE(attendee.cuType(), Attendee::Unknown);
0079 }
0080 
0081 void AttendeeTest::testCompare()
0082 {
0083     Attendee attendee1(QStringLiteral("fred"), QStringLiteral("fred@flintstone.com"));
0084     Attendee attendee2(QStringLiteral("wilma"), QStringLiteral("wilma@flintstone.com"));
0085     attendee1.setRole(Attendee::ReqParticipant);
0086     attendee2.setRole(Attendee::Chair);
0087     QVERIFY(!(attendee1 == attendee2));
0088     attendee2.setRole(Attendee::ReqParticipant);
0089     QVERIFY(!(attendee1 == attendee2));
0090     QVERIFY(attendee1.name() == QLatin1String("fred"));
0091 }
0092 
0093 void AttendeeTest::testCompareType()
0094 {
0095     Attendee attendee1(QStringLiteral("fred"), QStringLiteral("fred@flintstone.com"));
0096     attendee1.setCuType(Attendee::Resource);
0097     Attendee attendee2 = attendee1;
0098 
0099     QCOMPARE(attendee2.cuType(), Attendee::Resource);
0100     QVERIFY(attendee1 == attendee2);
0101 
0102     attendee2.setCuType(Attendee::Individual);
0103     QVERIFY(!(attendee1 == attendee2));
0104 }
0105 
0106 void AttendeeTest::testAssign()
0107 {
0108     Attendee attendee1(QStringLiteral("fred"), QStringLiteral("fred@flintstone.com"));
0109     Attendee attendee2;
0110     attendee2 = attendee1;
0111     QVERIFY(attendee1 == attendee2);
0112 
0113     attendee2.setRole(Attendee::NonParticipant);
0114     QVERIFY(!(attendee1 == attendee2));
0115 }
0116 
0117 void AttendeeTest::testCopyConstructor()
0118 {
0119     Attendee attendee1(QStringLiteral("fred"), QStringLiteral("fred@flintstone.com"));
0120     Attendee attendee3(attendee1);
0121     QVERIFY(attendee3 == attendee1);
0122 }
0123 
0124 void AttendeeTest::testDataStreamOut()
0125 {
0126     Attendee attendee1(QStringLiteral("fred"), QStringLiteral("fred@flintstone.com"));
0127     attendee1.setRSVP(true);
0128     attendee1.setRole(Attendee::Chair);
0129     attendee1.setUid(QStringLiteral("Shooby Doo Bop"));
0130     attendee1.setDelegate(QStringLiteral("I AM THE Delegate"));
0131     attendee1.setDelegator(QStringLiteral("AND I AM THE Delegator"));
0132     attendee1.setCuType(QStringLiteral("X-SPECIAL"));
0133     attendee1.setCustomProperty("name", QStringLiteral("value"));
0134     attendee1.setCustomProperty("foo", QStringLiteral("bar"));
0135 
0136     QByteArray byteArray;
0137     QDataStream out_stream(&byteArray, QIODevice::WriteOnly);
0138 
0139     out_stream << attendee1;
0140 
0141     QDataStream in_stream(&byteArray, QIODevice::ReadOnly);
0142 
0143     Person person;
0144     bool rsvp;
0145     QString delegate;
0146     QString delegator;
0147     QString cuType;
0148     QString uid;
0149     CustomProperties customProperties;
0150     Attendee::Role role;
0151     Attendee::PartStat status;
0152     uint role_int;
0153     uint status_int;
0154 
0155     in_stream >> person;
0156     QVERIFY(person.name() == attendee1.name());
0157     QVERIFY(person.email() == attendee1.email());
0158 
0159     in_stream >> rsvp;
0160     QVERIFY(rsvp == attendee1.RSVP());
0161 
0162     in_stream >> role_int;
0163     role = Attendee::Role(role_int);
0164     QVERIFY(role == attendee1.role());
0165 
0166     in_stream >> status_int;
0167     status = Attendee::PartStat(status_int);
0168     QVERIFY(status == attendee1.status());
0169 
0170     in_stream >> uid;
0171     QVERIFY(uid == attendee1.uid());
0172 
0173     in_stream >> delegate;
0174     QVERIFY(delegate == attendee1.delegate());
0175 
0176     in_stream >> delegator;
0177     QVERIFY(delegator == attendee1.delegator());
0178 
0179     in_stream >> cuType;
0180     QVERIFY(cuType == attendee1.cuTypeStr());
0181 
0182     in_stream >> customProperties;
0183     QVERIFY(customProperties == attendee1.customProperties());
0184 }
0185 
0186 void AttendeeTest::testDataStreamIn()
0187 {
0188     Attendee attendee1(QStringLiteral("fred"), QStringLiteral("fred@flintstone.com"));
0189     attendee1.setRSVP(true);
0190     attendee1.setRole(Attendee::Chair);
0191     attendee1.setCuType(QStringLiteral("IANA-FOO"));
0192     attendee1.setUid(QStringLiteral("Shooby Doo Bop"));
0193     attendee1.setDelegate(QStringLiteral("I AM THE Delegate"));
0194     attendee1.setDelegator(QStringLiteral("AND I AM THE Delegator"));
0195     attendee1.setCustomProperty("name", QStringLiteral("value"));
0196     attendee1.setCustomProperty("foo", QStringLiteral("bar"));
0197     QVERIFY(!attendee1.isNull());
0198 
0199     QByteArray byteArray;
0200     QDataStream out_stream(&byteArray, QIODevice::WriteOnly);
0201 
0202     out_stream << attendee1;
0203 
0204     Attendee attendee2;
0205     QDataStream in_stream(&byteArray, QIODevice::ReadOnly);
0206 
0207     in_stream >> attendee2;
0208 
0209     QVERIFY(!attendee2.isNull());
0210     QVERIFY(attendee2.uid() == attendee1.uid());
0211     QVERIFY(attendee2.RSVP() == attendee1.RSVP());
0212     QVERIFY(attendee2.role() == attendee1.role());
0213     QVERIFY(attendee2.cuTypeStr() == attendee1.cuTypeStr());
0214     QVERIFY(attendee2.status() == attendee1.status());
0215     QVERIFY(attendee2.delegate() == attendee1.delegate());
0216     QVERIFY(attendee2.delegator() == attendee1.delegator());
0217     QVERIFY(attendee2.customProperties() == attendee1.customProperties());
0218     QVERIFY(attendee1 == attendee2);
0219 }
0220 
0221 void AttendeeTest::testUid()
0222 {
0223     Attendee a(QStringLiteral("me"), QStringLiteral("test@dev.null"));
0224     QVERIFY(!a.uid().isEmpty());
0225     a.setUid(QStringLiteral("42"));
0226     QCOMPARE(a.uid(), QLatin1String("42"));
0227     a.setUid({});
0228     QVERIFY(!a.uid().isEmpty());
0229 }
0230 
0231 #include "moc_testattendee.cpp"