File indexing completed on 2024-05-12 04:38:54
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_vcsannotationline.h" 0008 0009 #include <QTest> 0010 #include <QStandardPaths> 0011 0012 #include <vcs/vcsannotation.h> 0013 #include <vcs/vcsrevision.h> 0014 0015 using namespace KDevelop; 0016 0017 void TestVcsAnnotationLine::initTestCase() 0018 { 0019 QStandardPaths::setTestModeEnabled(true); 0020 } 0021 0022 void TestVcsAnnotationLine::setAnnotationLine(VcsAnnotationLine& annotationLine, 0023 int lineNumber, 0024 const QString& text, 0025 const QString& author, 0026 const VcsRevision& revision, 0027 const QDateTime& date, 0028 const QString& commitMessage) 0029 { 0030 annotationLine.setLineNumber(lineNumber); 0031 annotationLine.setText(text); 0032 annotationLine.setAuthor(author); 0033 annotationLine.setRevision(revision); 0034 annotationLine.setDate(date); 0035 annotationLine.setCommitMessage(commitMessage); 0036 } 0037 0038 void TestVcsAnnotationLine::compareAnnotationLine(const VcsAnnotationLine& annotationLine, 0039 int lineNumber, 0040 const QString& text, 0041 const QString& author, 0042 const VcsRevision& revision, 0043 const QDateTime& date, 0044 const QString& commitMessage) 0045 { 0046 QCOMPARE(annotationLine.lineNumber(), lineNumber); 0047 QCOMPARE(annotationLine.text(), text); 0048 QCOMPARE(annotationLine.author(), author); 0049 QCOMPARE(annotationLine.revision(), revision); 0050 QCOMPARE(annotationLine.date(), date); 0051 QCOMPARE(annotationLine.commitMessage(), commitMessage); 0052 } 0053 0054 void TestVcsAnnotationLine::testCopyConstructor() 0055 { 0056 // copy invalid 0057 { 0058 VcsAnnotationLine annotationLineA; 0059 0060 VcsAnnotationLine annotationLineB(annotationLineA); 0061 QCOMPARE(annotationLineA.revision().revisionType(), VcsRevision::Invalid); 0062 QCOMPARE(annotationLineB.revision().revisionType(), VcsRevision::Invalid); 0063 } 0064 0065 // test plain copy 0066 const int lineNumber = 1; 0067 const QString text("Text A"); 0068 const QString author("Author A"); 0069 VcsRevision revision; 0070 revision.setRevisionValue("A", VcsRevision::GlobalNumber); 0071 const QDateTime date = QDateTime::fromString("2001-01-01T00:00:00+00:00", Qt::ISODate); 0072 const QString commitMessage("Commit A"); 0073 0074 { 0075 VcsAnnotationLine annotationLineA; 0076 setAnnotationLine(annotationLineA, 0077 lineNumber, text, author, revision, date, commitMessage); 0078 0079 VcsAnnotationLine annotationLineB(annotationLineA); 0080 compareAnnotationLine(annotationLineA, 0081 lineNumber, text, author, revision, date, commitMessage); 0082 compareAnnotationLine(annotationLineB, 0083 lineNumber, text, author, revision, date, commitMessage); 0084 } 0085 0086 const int lineNumberNew = 10; 0087 0088 // test detach after changing A 0089 { 0090 VcsAnnotationLine annotationLineA; 0091 setAnnotationLine(annotationLineA, 0092 lineNumber, text, author, revision, date, commitMessage); 0093 0094 VcsAnnotationLine annotationLineB(annotationLineA); 0095 // change a property of A 0096 annotationLineA.setLineNumber(lineNumberNew); 0097 0098 compareAnnotationLine(annotationLineA, 0099 lineNumberNew, text, author, revision, date, commitMessage); 0100 compareAnnotationLine(annotationLineB, 0101 lineNumber, text, author, revision, date, commitMessage); 0102 } 0103 } 0104 0105 void TestVcsAnnotationLine::testAssignOperator() 0106 { 0107 // assign invalid 0108 { 0109 VcsAnnotationLine annotationLineA; 0110 0111 VcsAnnotationLine annotationLineB; 0112 VcsRevision revision; 0113 revision.setRevisionValue(2, VcsRevision::FileNumber); 0114 annotationLineB.setRevision(revision); 0115 0116 annotationLineB = annotationLineA; 0117 0118 QCOMPARE(annotationLineA.revision().revisionType(), VcsRevision::Invalid); 0119 QCOMPARE(annotationLineB.revision().revisionType(), VcsRevision::Invalid); 0120 } 0121 0122 // test plain assign 0123 const int lineNumber = 1; 0124 const QString text("Text A"); 0125 const QString author("Author A"); 0126 VcsRevision revision; 0127 revision.setRevisionValue("A", VcsRevision::GlobalNumber); 0128 const QDateTime date = QDateTime::fromString("2001-01-01T00:00:00+00:00", Qt::ISODate); 0129 const QString commitMessage("Commit A"); 0130 0131 { 0132 VcsAnnotationLine annotationLineA; 0133 setAnnotationLine(annotationLineA, 0134 lineNumber, text, author, revision, date, commitMessage); 0135 0136 VcsAnnotationLine annotationLineB; 0137 annotationLineB = annotationLineA; 0138 0139 compareAnnotationLine(annotationLineA, 0140 lineNumber, text, author, revision, date, commitMessage); 0141 compareAnnotationLine(annotationLineB, 0142 lineNumber, text, author, revision, date, commitMessage); 0143 } 0144 0145 const int lineNumberNew = 10; 0146 0147 // test detach after changing A 0148 { 0149 VcsAnnotationLine annotationLineA; 0150 setAnnotationLine(annotationLineA, 0151 lineNumber, text, author, revision, date, commitMessage); 0152 0153 VcsAnnotationLine annotationLineB; 0154 annotationLineB = annotationLineA; 0155 // change a property of A 0156 annotationLineA.setLineNumber(lineNumberNew); 0157 0158 compareAnnotationLine(annotationLineA, 0159 lineNumberNew, text, author, revision, date, commitMessage); 0160 compareAnnotationLine(annotationLineB, 0161 lineNumber, text, author, revision, date, commitMessage); 0162 } 0163 } 0164 0165 QTEST_GUILESS_MAIN(TestVcsAnnotationLine) 0166 0167 #include "moc_test_vcsannotationline.cpp"