File indexing completed on 2024-05-12 04:38:55
0001 /* 0002 SPDX-FileCopyrightText: 2017 Friedrich W. H. Kossebau <kossebau@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "test_vcsevent.h" 0008 0009 #include <QTest> 0010 #include <QStandardPaths> 0011 0012 #include <vcs/vcsrevision.h> 0013 0014 using namespace KDevelop; 0015 0016 void TestVcsEvent::initTestCase() 0017 { 0018 QStandardPaths::setTestModeEnabled(true); 0019 } 0020 0021 void TestVcsEvent::setEvent(VcsEvent& event, 0022 const VcsRevision& revision, 0023 const QString& author, 0024 const QDateTime& date, 0025 const QString& message, 0026 const QList<VcsItemEvent>& items) 0027 { 0028 event.setRevision(revision); 0029 event.setAuthor(author); 0030 event.setDate(date); 0031 event.setMessage(message); 0032 event.setItems(items); 0033 } 0034 0035 void TestVcsEvent::compareEvent(const VcsEvent& event, 0036 const VcsRevision& revision, 0037 const QString& author, 0038 const QDateTime& date, 0039 const QString& message, 0040 const QList<VcsItemEvent>& items) 0041 { 0042 QCOMPARE(event.revision(), revision); 0043 QCOMPARE(event.author(), author); 0044 QCOMPARE(event.date(), date); 0045 QCOMPARE(event.message(), message); 0046 QCOMPARE(event.items().count(), items.count()); 0047 } 0048 0049 void TestVcsEvent::testCopyConstructor() 0050 { 0051 // test plain copy 0052 VcsRevision revision; 0053 revision.setRevisionValue("A", VcsRevision::GlobalNumber); 0054 const QString author("author"); 0055 const QDateTime date = QDateTime::fromString("2001-01-01T00:00:00+00:00", Qt::ISODate); 0056 const QString message("message"); 0057 const QList<VcsItemEvent> items({{}}); 0058 0059 { 0060 VcsEvent eventA; 0061 setEvent(eventA, 0062 revision, author, date, message, items); 0063 0064 VcsEvent eventB(eventA); 0065 0066 compareEvent(eventA, 0067 revision, author, date, message, items); 0068 compareEvent(eventB, 0069 revision, author, date, message, items); 0070 } 0071 0072 VcsRevision revisionNew; 0073 revisionNew.setRevisionValue(2, VcsRevision::FileNumber); 0074 0075 // test detach after changing A 0076 { 0077 VcsEvent eventA; 0078 setEvent(eventA, 0079 revision, author, date, message, items); 0080 0081 VcsEvent eventB(eventA); 0082 // change a property of A 0083 eventA.setRevision(revisionNew); 0084 0085 compareEvent(eventA, 0086 revisionNew, author, date, message, items); 0087 compareEvent(eventB, 0088 revision, author, date, message, items); 0089 } 0090 } 0091 0092 void TestVcsEvent::testAssignOperator() 0093 { 0094 // test plain copy 0095 VcsRevision revision; 0096 revision.setRevisionValue("A", VcsRevision::GlobalNumber); 0097 const QString author("author"); 0098 const QDateTime date = QDateTime::fromString("2001-01-01T00:00:00+00:00", Qt::ISODate); 0099 const QString message("message"); 0100 const QList<VcsItemEvent> items({{}}); 0101 0102 { 0103 VcsEvent eventA; 0104 setEvent(eventA, 0105 revision, author, date, message, items); 0106 0107 VcsEvent eventB; 0108 eventB = eventA; 0109 0110 compareEvent(eventA, 0111 revision, author, date, message, items); 0112 compareEvent(eventB, 0113 revision, author, date, message, items); 0114 } 0115 0116 VcsRevision revisionNew; 0117 revisionNew.setRevisionValue(2, VcsRevision::FileNumber); 0118 0119 // test detach after changing A 0120 { 0121 VcsEvent eventA; 0122 setEvent(eventA, 0123 revision, author, date, message, items); 0124 0125 VcsEvent eventB; 0126 eventB = eventA; 0127 // change a property of A 0128 eventA.setRevision(revisionNew); 0129 0130 compareEvent(eventA, 0131 revisionNew, author, date, message, items); 0132 compareEvent(eventB, 0133 revision, author, date, message, items); 0134 } 0135 } 0136 0137 QTEST_GUILESS_MAIN(TestVcsEvent) 0138 0139 #include "moc_test_vcsevent.cpp"