File indexing completed on 2024-04-21 03:52:41

0001 /*
0002   This file is part of the kcalcore library.
0003 
0004   SPDX-FileCopyrightText: 2006-2009 Allen Winter <winter@kde.org>
0005   SPDX-FileCopyrightText: 2010 Casey Link <unnamedrambler@gmail.com>
0006   SPDX-FileCopyrightText: 2009-2010 Klaralvdalens Datakonsult AB, a KDAB Group company <info@kdab.net>
0007 
0008   SPDX-License-Identifier: LGPL-2.0-or-later
0009 */
0010 
0011 #include "testperson.h"
0012 #include "person.h"
0013 
0014 #include <QDataStream>
0015 #include <QTest>
0016 
0017 QTEST_MAIN(PersonTest)
0018 
0019 using namespace KCalendarCore;
0020 
0021 void PersonTest::testValidity()
0022 {
0023     Person person(QStringLiteral("fred"), QStringLiteral("fred@flintstone.com"));
0024     QVERIFY(person.name() == QLatin1String("fred"));
0025 }
0026 
0027 void PersonTest::testCompare()
0028 {
0029     Person person1(QStringLiteral("fred"), QStringLiteral("fred@flintstone.com"));
0030     Person person2(QStringLiteral("wilma"), QStringLiteral("wilma@flintstone.com"));
0031     Person person3 = Person::fromFullName(QStringLiteral("fred <fred@flintstone.com>"));
0032     Person person1copy {person1}; // test copy constructor
0033     Person person1assign;
0034     person1assign = person1; // test operator=
0035 
0036     QVERIFY(!(person1 == person2));
0037     QVERIFY(person1 == person3);
0038     QVERIFY(person1 == person1copy);
0039     QVERIFY(person1 == person1assign);
0040     QVERIFY(person1.name() == QLatin1String("fred"));
0041     QVERIFY(person2.email() == QLatin1String("wilma@flintstone.com"));
0042     QVERIFY(person3.name() == QLatin1String("fred"));
0043     QVERIFY(person3.email() == QLatin1String("fred@flintstone.com"));
0044 }
0045 
0046 void PersonTest::testStringify()
0047 {
0048     Person person1(QStringLiteral("fred"), QStringLiteral("fred@flintstone.com"));
0049     Person person2(QStringLiteral("wilma"), QStringLiteral("wilma@flintstone.com"));
0050     QVERIFY(person1.fullName() == QLatin1String("fred <fred@flintstone.com>"));
0051     QVERIFY(person2.fullName() == QLatin1String("wilma <wilma@flintstone.com>"));
0052 
0053     person1.setName(QLatin1String(""));
0054     QVERIFY(person1.fullName() == QLatin1String("fred@flintstone.com"));
0055     person1.setEmail(QString());
0056     QVERIFY(person1.fullName().isEmpty());
0057 }
0058 
0059 void PersonTest::testDataStreamIn()
0060 {
0061     Person person1(QStringLiteral("fred"), QStringLiteral("fred@flintstone.com"));
0062 
0063     QByteArray byteArray;
0064     QDataStream out_stream(&byteArray, QIODevice::WriteOnly);
0065 
0066     out_stream << person1;
0067 
0068     QDataStream in_stream(&byteArray, QIODevice::ReadOnly);
0069 
0070     QString name;
0071     QString email;
0072     int count;
0073 
0074     in_stream >> name;
0075     QVERIFY(name == QLatin1String("fred"));
0076 
0077     in_stream >> email;
0078     QVERIFY(email == QLatin1String("fred@flintstone.com"));
0079 
0080     in_stream >> count;
0081     QCOMPARE(count, 0);
0082 }
0083 
0084 void PersonTest::testDataStreamOut()
0085 {
0086     Person person1(QStringLiteral("fred"), QStringLiteral("fred@flintstone.com"));
0087 
0088     QByteArray byteArray;
0089     QDataStream out_stream(&byteArray, QIODevice::WriteOnly);
0090 
0091     out_stream << person1;
0092 
0093     QDataStream in_stream(&byteArray, QIODevice::ReadOnly);
0094     Person person2;
0095 
0096     in_stream >> person2;
0097 
0098     QVERIFY(person2.name() == person1.name());
0099     QVERIFY(person2.email() == person1.email());
0100 }
0101 
0102 #include "moc_testperson.cpp"