File indexing completed on 2025-03-09 04:57:05
0001 /* 0002 * SPDX-FileCopyrightText: 2015 Kevin Ottens <ervin@kde.org> 0003 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0004 */ 0005 0006 0007 #include "testlib/gentodo.h" 0008 0009 #include <KCalendarCore/Todo> 0010 0011 #include <testlib/qtest_zanshin.h> 0012 #include <akonadi/akonadiserializer.h> 0013 0014 using namespace Testlib; 0015 using Akonadi::Serializer; 0016 0017 class GenTodoTest : public QObject 0018 { 0019 Q_OBJECT 0020 private slots: 0021 void shouldImplicitlyConvertBackToItem() 0022 { 0023 // GIVEN 0024 auto item = Akonadi::Item(42); 0025 auto gen = GenTodo(item); 0026 0027 // WHEN 0028 Akonadi::Item newItem = gen; 0029 0030 // THEN 0031 QCOMPARE(newItem, item); 0032 QCOMPARE(newItem.mimeType(), KCalendarCore::Todo::todoMimeType()); 0033 QVERIFY(newItem.hasPayload<KCalendarCore::Todo::Ptr>()); 0034 } 0035 0036 void shouldAllowToSetId() 0037 { 0038 // GIVEN 0039 Akonadi::Item item = GenTodo().withId(42); 0040 0041 // THEN 0042 QCOMPARE(item.id(), 42LL); 0043 } 0044 0045 void shouldAllowToSetParent() 0046 { 0047 // GIVEN 0048 Akonadi::Item item = GenTodo().withParent(42); 0049 0050 // THEN 0051 QCOMPARE(item.parentCollection().id(), 42LL); 0052 } 0053 0054 void shouldAllowToSetContexts() 0055 { 0056 // GIVEN 0057 Akonadi::Item item = GenTodo().withContexts({"42", "43", "44"}); 0058 0059 // THEN 0060 auto todo = item.payload<KCalendarCore::Todo::Ptr>(); 0061 QStringList contextUids = todo->customProperty(Serializer::customPropertyAppName(), Serializer::customPropertyContextList()).split(','); 0062 QCOMPARE(contextUids.size(), 3); 0063 QCOMPARE(contextUids.at(0), "42"); 0064 QCOMPARE(contextUids.at(1), "43"); 0065 QCOMPARE(contextUids.at(2), "44"); 0066 } 0067 0068 void shouldAllowToSetProjectType() 0069 { 0070 // GIVEN 0071 Akonadi::Item item = GenTodo().asProject(); 0072 0073 // THEN 0074 QVERIFY(!item.payload<KCalendarCore::Todo::Ptr>()->customProperty(Serializer::customPropertyAppName(), Serializer::customPropertyIsProject()).isEmpty()); 0075 0076 // WHEN 0077 item = GenTodo(item).asProject(false); 0078 0079 // THEN 0080 QVERIFY(item.payload<KCalendarCore::Todo::Ptr>()->customProperty(Serializer::customPropertyAppName(), Serializer::customPropertyIsProject()).isEmpty()); 0081 } 0082 0083 void shouldAllowToSetContextType() 0084 { 0085 // GIVEN 0086 Akonadi::Item item = GenTodo().asContext(); 0087 0088 // THEN 0089 QVERIFY(!item.payload<KCalendarCore::Todo::Ptr>()->customProperty(Serializer::customPropertyAppName(), Serializer::customPropertyIsContext()).isEmpty()); 0090 0091 // WHEN 0092 item = GenTodo(item).asContext(false); 0093 0094 // THEN 0095 QVERIFY(item.payload<KCalendarCore::Todo::Ptr>()->customProperty(Serializer::customPropertyAppName(), Serializer::customPropertyIsContext()).isEmpty()); 0096 } 0097 0098 void shouldAllowToSetUid() 0099 { 0100 // GIVEN 0101 Akonadi::Item item = GenTodo().withUid(QStringLiteral("42")); 0102 0103 // THEN 0104 QCOMPARE(item.payload<KCalendarCore::Todo::Ptr>()->uid(), QStringLiteral("42")); 0105 } 0106 0107 void shouldAllowToSetParentUid() 0108 { 0109 // GIVEN 0110 Akonadi::Item item = GenTodo().withParentUid(QStringLiteral("42")); 0111 0112 // THEN 0113 QCOMPARE(item.payload<KCalendarCore::Todo::Ptr>()->relatedTo(), QStringLiteral("42")); 0114 } 0115 0116 void shouldAllowToSetTitle() 0117 { 0118 // GIVEN 0119 Akonadi::Item item = GenTodo().withTitle(QStringLiteral("42")); 0120 0121 // THEN 0122 QCOMPARE(item.payload<KCalendarCore::Todo::Ptr>()->summary(), QStringLiteral("42")); 0123 } 0124 0125 void shouldAllowToSetText() 0126 { 0127 // GIVEN 0128 Akonadi::Item item = GenTodo().withText(QStringLiteral("42")); 0129 0130 // THEN 0131 QCOMPARE(item.payload<KCalendarCore::Todo::Ptr>()->description(), QStringLiteral("42")); 0132 } 0133 0134 void shouldAllowToSetDoneState() 0135 { 0136 // GIVEN 0137 Akonadi::Item item = GenTodo().done(); 0138 0139 // THEN 0140 QVERIFY(item.payload<KCalendarCore::Todo::Ptr>()->isCompleted()); 0141 0142 // WHEN 0143 item = GenTodo(item).done(false); 0144 0145 // THEN 0146 QVERIFY(!item.payload<KCalendarCore::Todo::Ptr>()->isCompleted()); 0147 } 0148 0149 void shouldAllowToSetDoneDate() 0150 { 0151 // GIVEN 0152 Akonadi::Item item = GenTodo().withDoneDate(QDate(2015, 4, 12)); 0153 0154 // THEN 0155 QCOMPARE(item.payload<KCalendarCore::Todo::Ptr>()->completed().toLocalTime().date(), QDate(2015, 04, 12)); 0156 } 0157 0158 void shouldAllowToSetDoneDateString() 0159 { 0160 // GIVEN 0161 Akonadi::Item item = GenTodo().withDoneDate(QStringLiteral("2015-04-12")); 0162 0163 // THEN 0164 QCOMPARE(item.payload<KCalendarCore::Todo::Ptr>()->completed().toLocalTime().date(), QDate(2015, 04, 12)); 0165 } 0166 0167 void shouldAllowToSetStartDate() 0168 { 0169 // GIVEN 0170 Akonadi::Item item = GenTodo().withStartDate(QDate(2015, 4, 12)); 0171 0172 // THEN 0173 QCOMPARE(item.payload<KCalendarCore::Todo::Ptr>()->dtStart().date(), QDate(2015, 04, 12)); 0174 } 0175 0176 void shouldAllowToSetStartDateString() 0177 { 0178 // GIVEN 0179 Akonadi::Item item = GenTodo().withStartDate(QStringLiteral("2015-04-12")); 0180 0181 // THEN 0182 QCOMPARE(item.payload<KCalendarCore::Todo::Ptr>()->dtStart().date(), QDate(2015, 04, 12)); 0183 } 0184 0185 void shouldAllowToSetDueDate() 0186 { 0187 // GIVEN 0188 Akonadi::Item item = GenTodo().withDueDate(QDate(2015, 4, 12)); 0189 0190 // THEN 0191 QCOMPARE(item.payload<KCalendarCore::Todo::Ptr>()->dtDue().date(), QDate(2015, 04, 12)); 0192 } 0193 0194 void shouldAllowToSetDueDateString() 0195 { 0196 // GIVEN 0197 Akonadi::Item item = GenTodo().withDueDate(QStringLiteral("2015-04-12")); 0198 0199 // THEN 0200 QCOMPARE(item.payload<KCalendarCore::Todo::Ptr>()->dtDue().date(), QDate(2015, 04, 12)); 0201 } 0202 }; 0203 0204 ZANSHIN_TEST_MAIN(GenTodoTest) 0205 0206 #include "gentodotest.moc"