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_vcsitemevent.h" 0008 0009 #include <QTest> 0010 #include <QStandardPaths> 0011 0012 #include <vcs/vcsrevision.h> 0013 0014 using namespace KDevelop; 0015 0016 void TestVcsItemEvent::initTestCase() 0017 { 0018 QStandardPaths::setTestModeEnabled(true); 0019 } 0020 0021 void TestVcsItemEvent::setItemEvent(VcsItemEvent& itemEvent, 0022 const QString& repositoryLocation, 0023 const QString& repositoryCopySourceLocation, 0024 const VcsRevision& repositoryCopySourceRevision, 0025 VcsItemEvent::Actions actions) 0026 { 0027 itemEvent.setRepositoryLocation(repositoryLocation); 0028 itemEvent.setRepositoryCopySourceLocation(repositoryCopySourceLocation); 0029 itemEvent.setRepositoryCopySourceRevision(repositoryCopySourceRevision); 0030 itemEvent.setActions(actions); 0031 } 0032 0033 void TestVcsItemEvent::compareItemEvent(const VcsItemEvent& itemEvent, 0034 const QString& repositoryLocation, 0035 const QString& repositoryCopySourceLocation, 0036 const VcsRevision& repositoryCopySourceRevision, 0037 VcsItemEvent::Actions actions) 0038 { 0039 QCOMPARE(itemEvent.repositoryLocation(), repositoryLocation); 0040 QCOMPARE(itemEvent.repositoryCopySourceLocation(), repositoryCopySourceLocation); 0041 QCOMPARE(itemEvent.repositoryCopySourceRevision(), repositoryCopySourceRevision); 0042 QCOMPARE(itemEvent.actions(), actions); 0043 } 0044 0045 void TestVcsItemEvent::testCopyConstructor() 0046 { 0047 // test plain copy 0048 const QString repositoryLocation("location"); 0049 const QString repositoryCopySourceLocation("copy source location"); 0050 VcsRevision repositoryCopySourceRevision; 0051 repositoryCopySourceRevision.setRevisionValue("A", VcsRevision::GlobalNumber); 0052 const VcsItemEvent::Actions actions = VcsItemEvent::Added; 0053 0054 { 0055 VcsItemEvent itemEventA; 0056 setItemEvent(itemEventA, 0057 repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision, actions); 0058 0059 VcsItemEvent itemEventB(itemEventA); 0060 0061 compareItemEvent(itemEventA, 0062 repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision, 0063 actions); 0064 compareItemEvent(itemEventB, 0065 repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision, 0066 actions); 0067 } 0068 0069 const QString repositoryLocationNew("new location"); 0070 0071 // test detach after changing A 0072 { 0073 VcsItemEvent itemEventA; 0074 setItemEvent(itemEventA, 0075 repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision, actions); 0076 0077 VcsItemEvent itemEventB(itemEventA); 0078 // change a property of A 0079 itemEventA.setRepositoryLocation(repositoryLocationNew); 0080 0081 compareItemEvent(itemEventA, 0082 repositoryLocationNew, repositoryCopySourceLocation, repositoryCopySourceRevision, 0083 actions); 0084 compareItemEvent(itemEventB, 0085 repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision, 0086 actions); 0087 } 0088 } 0089 0090 void TestVcsItemEvent::testAssignOperator() 0091 { 0092 // test plain assign 0093 const QString repositoryLocation("location"); 0094 const QString repositoryCopySourceLocation("copy source location"); 0095 VcsRevision repositoryCopySourceRevision; 0096 repositoryCopySourceRevision.setRevisionValue("A", VcsRevision::GlobalNumber); 0097 const VcsItemEvent::Actions actions = VcsItemEvent::Added; 0098 0099 { 0100 VcsItemEvent itemEventA; 0101 setItemEvent(itemEventA, 0102 repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision, actions); 0103 0104 VcsItemEvent itemEventB; 0105 itemEventB = itemEventA; 0106 0107 compareItemEvent(itemEventA, 0108 repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision, 0109 actions); 0110 compareItemEvent(itemEventB, 0111 repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision, 0112 actions); 0113 } 0114 0115 const QString repositoryLocationNew("new location"); 0116 0117 // test detach after changing A 0118 { 0119 VcsItemEvent itemEventA; 0120 setItemEvent(itemEventA, 0121 repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision, actions); 0122 0123 VcsItemEvent itemEventB; 0124 itemEventB = itemEventA; 0125 // change a property of A 0126 itemEventA.setRepositoryLocation(repositoryLocationNew); 0127 0128 compareItemEvent(itemEventA, 0129 repositoryLocationNew, repositoryCopySourceLocation, repositoryCopySourceRevision, 0130 actions); 0131 compareItemEvent(itemEventB, 0132 repositoryLocation, repositoryCopySourceLocation, repositoryCopySourceRevision, 0133 actions); 0134 } 0135 } 0136 0137 QTEST_GUILESS_MAIN(TestVcsItemEvent) 0138 0139 #include "moc_test_vcsitemevent.cpp"