File indexing completed on 2025-03-09 05:11:40
0001 /* 0002 SPDX-FileCopyrightText: 2022 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #include "submoduletest.h" 0008 #include "qtestcase.h" 0009 #include "testcommon.h" 0010 #include <entities/commit.h> 0011 #include <entities/submodule.h> 0012 #include <entities/tree.h> 0013 #include <options/addsubmoduleoptions.h> 0014 0015 #include <QTest> 0016 #include <gitmanager.h> 0017 0018 QTEST_GUILESS_MAIN(SubmoduleTest) 0019 0020 SubmoduleTest::SubmoduleTest(QObject *parent) 0021 : QObject{parent} 0022 { 0023 } 0024 0025 void SubmoduleTest::initTestCase() 0026 { 0027 auto path = TestCommon::getTempPath(); 0028 qDebug() << path; 0029 mManager = new Git::Manager; 0030 0031 QVERIFY(!mManager->isValid()); 0032 0033 auto ok = mManager->init(path); 0034 QVERIFY(ok); 0035 0036 TestCommon::initSignature(mManager); 0037 } 0038 0039 void SubmoduleTest::cleanupTestCase() 0040 { 0041 TestCommon::cleanPath(mManager); 0042 } 0043 0044 void SubmoduleTest::makeACommit() 0045 { 0046 TestCommon::touch(mManager->path() + "/README.md"); 0047 0048 mManager->addFile("README.md"); 0049 mManager->commit("commit1"); 0050 } 0051 0052 void SubmoduleTest::addSubmodule() 0053 { 0054 Git::AddSubmoduleOptions opts; 0055 0056 opts.url = "https://github.com/HamedMasafi/Logger.git"; 0057 opts.path = "3rdparty/libgit2"; 0058 TestCommon::makePath(mManager, "3rdparty/libgit2"); 0059 0060 auto ok = mManager->addSubmodule(opts); 0061 0062 QVERIFY(ok); 0063 } 0064 0065 void SubmoduleTest::addInSameLocation() 0066 { 0067 Git::AddSubmoduleOptions opts; 0068 0069 opts.url = "https://github.com/HamedMasafi/Logger.git"; 0070 opts.path = "3rdparty/libgit2"; 0071 0072 auto ok = mManager->addSubmodule(opts); 0073 0074 QVERIFY(!ok); 0075 0076 QCOMPARE(mManager->errorCode(), -4); 0077 QCOMPARE(mManager->errorClass(), 17); 0078 QCOMPARE(mManager->errorMessage(), "attempt to add submodule '3rdparty/libgit2' that already exists"); 0079 } 0080 0081 void SubmoduleTest::checkExists() 0082 { 0083 auto submodules = mManager->submodules(); 0084 QCOMPARE(submodules.size(), 1); 0085 0086 auto submodule = submodules.first(); 0087 0088 QCOMPARE(submodule->name(), "3rdparty/libgit2"); 0089 QCOMPARE(submodule->path(), "3rdparty/libgit2"); 0090 QCOMPARE(submodule->url(), "https://github.com/HamedMasafi/Logger.git"); 0091 } 0092 0093 void SubmoduleTest::lookup() 0094 { 0095 auto submodule = mManager->submodule("3rdparty/libgit2"); 0096 0097 QVERIFY(submodule != nullptr); 0098 QCOMPARE(submodule->name(), "3rdparty/libgit2"); 0099 QCOMPARE(submodule->path(), "3rdparty/libgit2"); 0100 QCOMPARE(submodule->url(), "https://github.com/HamedMasafi/Logger.git"); 0101 Git::Submodule::StatusFlags statusFlags = Git::Submodule::Status::WdIndexModified | Git::Submodule::Status::IndexAdded | Git::Submodule::Status::InIndex 0102 | Git::Submodule::Status::InConfig | Git::Submodule::Status::InWd; 0103 QCOMPARE(submodule->status(), statusFlags); 0104 QCOMPARE(submodule->branch(), ""); 0105 } 0106 0107 void SubmoduleTest::remove() 0108 { 0109 } 0110 0111 #include "moc_submoduletest.cpp"