File indexing completed on 2025-03-09 05:11:39
0001 /* 0002 SPDX-FileCopyrightText: 2022 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #include "stashtest.h" 0008 #include "gitmanager.h" 0009 #include "testcommon.h" 0010 #include <QTest> 0011 0012 QTEST_GUILESS_MAIN(StashTest) 0013 0014 StashTest::StashTest(QObject *parent) 0015 : QObject{parent} 0016 { 0017 } 0018 0019 void StashTest::initTestCase() 0020 { 0021 auto path = TestCommon::getTempPath(); 0022 qDebug() << path; 0023 mManager = new Git::Manager; 0024 0025 auto init = mManager->init(path); 0026 QCOMPARE(mManager->path(), path); 0027 QVERIFY(init); 0028 QVERIFY(mManager->isValid()); 0029 0030 TestCommon::initSignature(mManager); 0031 } 0032 0033 void StashTest::cleanupTestCase() 0034 { 0035 TestCommon::cleanPath(mManager); 0036 } 0037 0038 void StashTest::makeACommit() 0039 { 0040 TestCommon::touch(mManager->path() + "/README.md"); 0041 0042 mManager->addFile("README.md"); 0043 mManager->commit("commit1"); 0044 } 0045 0046 void StashTest::touchAFile() 0047 { 0048 mFileContentInStash = TestCommon::touch(mManager->path() + "/README.md"); 0049 auto changedFiles = mManager->changedFiles(); 0050 QCOMPARE(changedFiles.count(), 1); 0051 QCOMPARE(changedFiles.value("README.md"), Git::ChangeStatus::Modified); 0052 } 0053 0054 void StashTest::makeStash() 0055 { 0056 auto ok = mManager->createStash("stash1"); 0057 QVERIFY(ok); 0058 0059 auto changedFiles = mManager->changedFiles(); 0060 QCOMPARE(changedFiles.count(), 0); 0061 0062 auto stashes = mManager->stashes(); 0063 QCOMPARE(stashes.count(), 1); 0064 QCOMPARE(stashes.at(0)->message(), QStringLiteral("On master: stash1")); 0065 } 0066 0067 void StashTest::tryToApplyInChangedWorkDir() 0068 { 0069 TestCommon::touch(mManager->path() + "/README.md"); 0070 auto ok = mManager->applyStash(QStringLiteral("On master: stash1")); 0071 QVERIFY(!ok); // we have un committed changes 0072 } 0073 0074 void StashTest::revertAndApplyStash() 0075 { 0076 TestCommon::touch(mManager->path() + "/README.md"); 0077 auto ok = mManager->revertFile("README.md"); 0078 QVERIFY(ok); 0079 ok = mManager->applyStash(QStringLiteral("On master: stash1")); 0080 QVERIFY(ok); 0081 } 0082 0083 void StashTest::commitAndApplyStash() 0084 { 0085 TestCommon::touch(mManager->path() + "/README.md"); 0086 0087 mManager->addFile("README.md"); 0088 mManager->commit("commit2"); 0089 0090 auto ok = mManager->applyStash(QStringLiteral("On master: stash1")); 0091 QVERIFY(ok); 0092 } 0093 0094 #include "moc_stashtest.cpp"