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_vcsstatusinfo.h" 0008 0009 #include <QTest> 0010 #include <QStandardPaths> 0011 0012 using namespace KDevelop; 0013 0014 void TestVcsStatusInfo::initTestCase() 0015 { 0016 QStandardPaths::setTestModeEnabled(true); 0017 } 0018 0019 void TestVcsStatusInfo::testCopyConstructor() 0020 { 0021 // test plain copy 0022 const QUrl url(QStringLiteral("git://foo")); 0023 const VcsStatusInfo::State state = VcsStatusInfo::ItemUpToDate; 0024 0025 { 0026 VcsStatusInfo statusInfoA; 0027 statusInfoA.setUrl(url); 0028 statusInfoA.setState(state); 0029 0030 VcsStatusInfo statusInfoB(statusInfoA); 0031 0032 QCOMPARE(statusInfoA.url(), url); 0033 QCOMPARE(statusInfoA.state(), state); 0034 QCOMPARE(statusInfoB.url(), url); 0035 QCOMPARE(statusInfoB.state(), state); 0036 QVERIFY(statusInfoA == statusInfoB); 0037 QVERIFY(statusInfoB == statusInfoA); 0038 } 0039 0040 const QUrl urlNew(QStringLiteral("svn://bar")); 0041 0042 // test detach after changing A 0043 { 0044 VcsStatusInfo statusInfoA; 0045 statusInfoA.setUrl(url); 0046 statusInfoA.setState(state); 0047 0048 VcsStatusInfo statusInfoB(statusInfoA); 0049 // change a property of A 0050 statusInfoA.setUrl(urlNew); 0051 0052 QCOMPARE(statusInfoA.url(), urlNew); 0053 QCOMPARE(statusInfoA.state(), state); 0054 QCOMPARE(statusInfoB.url(), url); 0055 QCOMPARE(statusInfoB.state(), state); 0056 QVERIFY(statusInfoA != statusInfoB); 0057 QVERIFY(statusInfoB != statusInfoA); 0058 } 0059 } 0060 0061 void TestVcsStatusInfo::testAssignOperator() 0062 { 0063 // test plain copy 0064 const QUrl url(QStringLiteral("git://foo")); 0065 const VcsStatusInfo::State state = VcsStatusInfo::ItemUpToDate; 0066 0067 { 0068 VcsStatusInfo statusInfoA; 0069 statusInfoA.setUrl(url); 0070 statusInfoA.setState(state); 0071 0072 VcsStatusInfo statusInfoB; 0073 statusInfoB = statusInfoA; 0074 0075 QCOMPARE(statusInfoA.url(), url); 0076 QCOMPARE(statusInfoA.state(), state); 0077 QCOMPARE(statusInfoB.url(), url); 0078 QCOMPARE(statusInfoB.state(), state); 0079 QVERIFY(statusInfoA == statusInfoB); 0080 QVERIFY(statusInfoB == statusInfoA); 0081 } 0082 0083 const QUrl urlNew(QStringLiteral("svn://bar")); 0084 0085 // test detach after changing A 0086 { 0087 VcsStatusInfo statusInfoA; 0088 statusInfoA.setUrl(url); 0089 statusInfoA.setState(state); 0090 0091 VcsStatusInfo statusInfoB; 0092 statusInfoB = statusInfoA; 0093 // change a property of A 0094 statusInfoA.setUrl(urlNew); 0095 0096 QCOMPARE(statusInfoA.url(), urlNew); 0097 QCOMPARE(statusInfoA.state(), state); 0098 QCOMPARE(statusInfoB.url(), url); 0099 QCOMPARE(statusInfoB.state(), state); 0100 QVERIFY(statusInfoA != statusInfoB); 0101 QVERIFY(statusInfoB != statusInfoA); 0102 } 0103 } 0104 0105 QTEST_GUILESS_MAIN(TestVcsStatusInfo) 0106 0107 #include "moc_test_vcsstatusinfo.cpp"