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_vcsrevision.h" 0008 0009 #include <QTest> 0010 #include <QStandardPaths> 0011 0012 #include <vcs/vcsrevision.h> 0013 0014 using namespace KDevelop; 0015 0016 void TestVcsRevision::initTestCase() 0017 { 0018 QStandardPaths::setTestModeEnabled(true); 0019 } 0020 0021 void TestVcsRevision::testCopyConstructor() 0022 { 0023 // copy invalid 0024 { 0025 VcsRevision revisionA; 0026 VcsRevision revisionB(revisionA); 0027 QCOMPARE(revisionA.revisionType(), VcsRevision::Invalid); 0028 QCOMPARE(revisionB.revisionType(), VcsRevision::Invalid); 0029 QVERIFY(revisionB == revisionA); 0030 QVERIFY(revisionA == revisionB); 0031 } 0032 0033 const VcsRevision::RevisionType revisionType = VcsRevision::GlobalNumber; 0034 const QString globalNumberValue("A"); 0035 0036 // test plain copy 0037 { 0038 VcsRevision revisionA; 0039 revisionA.setRevisionValue(globalNumberValue, revisionType); 0040 0041 VcsRevision revisionB(revisionA); 0042 QCOMPARE(revisionA.revisionType(), revisionType); 0043 QCOMPARE(revisionA.revisionValue().toString(), globalNumberValue); 0044 QCOMPARE(revisionB.revisionType(), revisionType); 0045 QCOMPARE(revisionB.revisionValue().toString(), globalNumberValue); 0046 QVERIFY(revisionB == revisionA); 0047 QVERIFY(revisionA == revisionB); 0048 } 0049 0050 const VcsRevision::RevisionType revisionTypeNew = VcsRevision::FileNumber; 0051 const qlonglong fileNumberValueNew = 2; 0052 0053 // test detach after changing A 0054 { 0055 VcsRevision revisionA; 0056 revisionA.setRevisionValue(globalNumberValue, revisionType); 0057 0058 VcsRevision revisionB(revisionA); 0059 revisionA.setRevisionValue(fileNumberValueNew, revisionTypeNew); 0060 0061 QCOMPARE(revisionA.revisionType(), revisionTypeNew); 0062 QCOMPARE(revisionA.revisionValue().toLongLong(), fileNumberValueNew); 0063 QCOMPARE(revisionB.revisionType(), revisionType); 0064 QCOMPARE(revisionB.revisionValue().toString(), globalNumberValue); 0065 QVERIFY(!(revisionB == revisionA)); 0066 QVERIFY(!(revisionA == revisionB)); 0067 } 0068 } 0069 0070 void TestVcsRevision::testAssignOperator() 0071 { 0072 // assign invalid 0073 { 0074 const VcsRevision::RevisionType typeB = VcsRevision::FileNumber; 0075 const qlonglong fileNumberB = 2; 0076 0077 VcsRevision revisionA; 0078 0079 VcsRevision revisionB; 0080 revisionB.setRevisionValue(fileNumberB, typeB); 0081 0082 revisionB = revisionA; 0083 0084 QCOMPARE(revisionA.revisionType(), VcsRevision::Invalid); 0085 QCOMPARE(revisionB.revisionType(), VcsRevision::Invalid); 0086 QVERIFY(revisionB == revisionA); 0087 QVERIFY(revisionA == revisionB); 0088 } 0089 0090 const VcsRevision::RevisionType revisionType = VcsRevision::GlobalNumber; 0091 const QString globalNumberValue("A"); 0092 0093 // test plain assign 0094 { 0095 VcsRevision revisionA; 0096 revisionA.setRevisionValue(globalNumberValue, revisionType); 0097 0098 VcsRevision revisionB; 0099 revisionB = revisionA; 0100 0101 QCOMPARE(revisionA.revisionType(), revisionType); 0102 QCOMPARE(revisionA.revisionValue().toString(), globalNumberValue); 0103 QCOMPARE(revisionB.revisionType(), revisionType); 0104 QCOMPARE(revisionB.revisionValue().toString(), globalNumberValue); 0105 QVERIFY(revisionB == revisionA); 0106 QVERIFY(revisionA == revisionB); 0107 } 0108 0109 const VcsRevision::RevisionType revisionTypeNew = VcsRevision::FileNumber; 0110 const qlonglong fileNumberValueNew = 2; 0111 0112 // test detach after changing A 0113 { 0114 VcsRevision revisionA; 0115 revisionA.setRevisionValue(globalNumberValue, revisionType); 0116 0117 VcsRevision revisionB; 0118 revisionB = revisionA; 0119 revisionA.setRevisionValue(fileNumberValueNew, revisionTypeNew); 0120 0121 QCOMPARE(revisionA.revisionType(), revisionTypeNew); 0122 QCOMPARE(revisionA.revisionValue().toLongLong(), fileNumberValueNew); 0123 QCOMPARE(revisionB.revisionType(), revisionType); 0124 QCOMPARE(revisionB.revisionValue().toString(), globalNumberValue); 0125 QVERIFY(!(revisionB == revisionA)); 0126 QVERIFY(!(revisionA == revisionB)); 0127 } 0128 } 0129 0130 QTEST_GUILESS_MAIN(TestVcsRevision) 0131 0132 #include "moc_test_vcsrevision.cpp"