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 131 132 133 134 135 136 137
|
/*
SPDX-FileCopyrightText: 2017 Friedrich W. H. Kossebau <kossebau@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "test_vcsitemevent.h"
#include <QTest>
#include <QStandardPaths>
#include <vcs/vcsrevision.h>
using namespace KDevelop;
void TestVcsItemEvent::initTestCase()
{
QStandardPaths::setTestModeEnabled(true);
}
void TestVcsItemEvent::setItemEvent(VcsItemEvent& itemEvent,
const QString& repositoryLocation,
const QString& repositoryCopySourceLocation,
const VcsRevision& repositoryCopySourceRevision,
VcsItemEvent::Actions actions)
{
itemEvent.setRepositoryLocation(repositoryLocation);
itemEvent.setRepositoryCopySourceLocation(repositoryCopySourceLocation);
itemEvent.setRepositoryCopySourceRevision(repositoryCopySourceRevision);
itemEvent.setActions(actions);
}
void TestVcsItemEvent::compareItemEvent(const VcsItemEvent& itemEvent,
const QString& repositoryLocation,
const QString& repositoryCopySourceLocation,
const VcsRevision& repositoryCopySourceRevision,
VcsItemEvent::Actions actions)
{
QCOMPARE(itemEvent.repositoryLocation(), repositoryLocation);
QCOMPARE(itemEvent.repositoryCopySourceLocation(), repositoryCopySourceLocation);
QCOMPARE(itemEvent.repositoryCopySourceRevision(), repositoryCopySourceRevision);
QCOMPARE(itemEvent.actions(), actions);
}
void TestVcsItemEvent::testCopyConstructor()
{
// test plain copy
const QString repositoryLocation("location");
const QString repositoryCopySourceLocation("copy source location");
VcsRevision repositoryCopySourceRevision;
repositoryCopySourceRevision.setRevisionValue("A", VcsRevision::GlobalNumber);
const VcsItemEvent::Actions actions = VcsItemEvent::Added;
{
VcsItemEvent itemEventA;
setItemEvent(itemEventA,
repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision, actions);
VcsItemEvent itemEventB(itemEventA);
compareItemEvent(itemEventA,
repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision,
actions);
compareItemEvent(itemEventB,
repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision,
actions);
}
const QString repositoryLocationNew("new location");
// test detach after changing A
{
VcsItemEvent itemEventA;
setItemEvent(itemEventA,
repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision, actions);
VcsItemEvent itemEventB(itemEventA);
// change a property of A
itemEventA.setRepositoryLocation(repositoryLocationNew);
compareItemEvent(itemEventA,
repositoryLocationNew, repositoryCopySourceLocation, repositoryCopySourceRevision,
actions);
compareItemEvent(itemEventB,
repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision,
actions);
}
}
void TestVcsItemEvent::testAssignOperator()
{
// test plain assign
const QString repositoryLocation("location");
const QString repositoryCopySourceLocation("copy source location");
VcsRevision repositoryCopySourceRevision;
repositoryCopySourceRevision.setRevisionValue("A", VcsRevision::GlobalNumber);
const VcsItemEvent::Actions actions = VcsItemEvent::Added;
{
VcsItemEvent itemEventA;
setItemEvent(itemEventA,
repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision, actions);
VcsItemEvent itemEventB;
itemEventB = itemEventA;
compareItemEvent(itemEventA,
repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision,
actions);
compareItemEvent(itemEventB,
repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision,
actions);
}
const QString repositoryLocationNew("new location");
// test detach after changing A
{
VcsItemEvent itemEventA;
setItemEvent(itemEventA,
repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision, actions);
VcsItemEvent itemEventB;
itemEventB = itemEventA;
// change a property of A
itemEventA.setRepositoryLocation(repositoryLocationNew);
compareItemEvent(itemEventA,
repositoryLocationNew, repositoryCopySourceLocation, repositoryCopySourceRevision,
actions);
compareItemEvent(itemEventB,
repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision,
actions);
}
}
QTEST_GUILESS_MAIN(TestVcsItemEvent)
|