1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
/*
SPDX-FileCopyrightText: 2017 Friedrich W. H. Kossebau <kossebau@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "test_vcsrevision.h"
#include <QTest>
#include <QStandardPaths>
#include <vcs/vcsrevision.h>
using namespace KDevelop;
void TestVcsRevision::initTestCase()
{
QStandardPaths::setTestModeEnabled(true);
}
void TestVcsRevision::testCopyConstructor()
{
// copy invalid
{
VcsRevision revisionA;
VcsRevision revisionB(revisionA);
QCOMPARE(revisionA.revisionType(), VcsRevision::Invalid);
QCOMPARE(revisionB.revisionType(), VcsRevision::Invalid);
QVERIFY(revisionB == revisionA);
QVERIFY(revisionA == revisionB);
}
const VcsRevision::RevisionType revisionType = VcsRevision::GlobalNumber;
const QString globalNumberValue("A");
// test plain copy
{
VcsRevision revisionA;
revisionA.setRevisionValue(globalNumberValue, revisionType);
VcsRevision revisionB(revisionA);
QCOMPARE(revisionA.revisionType(), revisionType);
QCOMPARE(revisionA.revisionValue().toString(), globalNumberValue);
QCOMPARE(revisionB.revisionType(), revisionType);
QCOMPARE(revisionB.revisionValue().toString(), globalNumberValue);
QVERIFY(revisionB == revisionA);
QVERIFY(revisionA == revisionB);
}
const VcsRevision::RevisionType revisionTypeNew = VcsRevision::FileNumber;
const qlonglong fileNumberValueNew = 2;
// test detach after changing A
{
VcsRevision revisionA;
revisionA.setRevisionValue(globalNumberValue, revisionType);
VcsRevision revisionB(revisionA);
revisionA.setRevisionValue(fileNumberValueNew, revisionTypeNew);
QCOMPARE(revisionA.revisionType(), revisionTypeNew);
QCOMPARE(revisionA.revisionValue().toLongLong(), fileNumberValueNew);
QCOMPARE(revisionB.revisionType(), revisionType);
QCOMPARE(revisionB.revisionValue().toString(), globalNumberValue);
QVERIFY(!(revisionB == revisionA));
QVERIFY(!(revisionA == revisionB));
}
}
void TestVcsRevision::testAssignOperator()
{
// assign invalid
{
const VcsRevision::RevisionType typeB = VcsRevision::FileNumber;
const qlonglong fileNumberB = 2;
VcsRevision revisionA;
VcsRevision revisionB;
revisionB.setRevisionValue(fileNumberB, typeB);
revisionB = revisionA;
QCOMPARE(revisionA.revisionType(), VcsRevision::Invalid);
QCOMPARE(revisionB.revisionType(), VcsRevision::Invalid);
QVERIFY(revisionB == revisionA);
QVERIFY(revisionA == revisionB);
}
const VcsRevision::RevisionType revisionType = VcsRevision::GlobalNumber;
const QString globalNumberValue("A");
// test plain assign
{
VcsRevision revisionA;
revisionA.setRevisionValue(globalNumberValue, revisionType);
VcsRevision revisionB;
revisionB = revisionA;
QCOMPARE(revisionA.revisionType(), revisionType);
QCOMPARE(revisionA.revisionValue().toString(), globalNumberValue);
QCOMPARE(revisionB.revisionType(), revisionType);
QCOMPARE(revisionB.revisionValue().toString(), globalNumberValue);
QVERIFY(revisionB == revisionA);
QVERIFY(revisionA == revisionB);
}
const VcsRevision::RevisionType revisionTypeNew = VcsRevision::FileNumber;
const qlonglong fileNumberValueNew = 2;
// test detach after changing A
{
VcsRevision revisionA;
revisionA.setRevisionValue(globalNumberValue, revisionType);
VcsRevision revisionB;
revisionB = revisionA;
revisionA.setRevisionValue(fileNumberValueNew, revisionTypeNew);
QCOMPARE(revisionA.revisionType(), revisionTypeNew);
QCOMPARE(revisionA.revisionValue().toLongLong(), fileNumberValueNew);
QCOMPARE(revisionB.revisionType(), revisionType);
QCOMPARE(revisionB.revisionValue().toString(), globalNumberValue);
QVERIFY(!(revisionB == revisionA));
QVERIFY(!(revisionA == revisionB));
}
}
QTEST_GUILESS_MAIN(TestVcsRevision)
|