File indexing completed on 2024-04-28 11:33:57
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"