From 9129aae8b42f534ad1afdfa838729fb78120f7d9 Mon Sep 17 00:00:00 2001 From: AL <26797547+Al12rs@users.noreply.github.com> Date: Wed, 24 Jun 2020 13:41:14 +0200 Subject: [PATCH] Revert "Merge pull request #14 from PurpleFez/unit-testing" This reverts commit 35185800761cd5e823279464dad14fcfc0e34273, reversing changes made to a76003911d86aa3c130a01cc8b1b21ecd98e43ac. --- CMakeLists.txt | 39 +--- appveyor.yml | 3 + src/ArchiveAutoService.cpp | 5 +- src/ArchiveBuilderFactory.cpp | 6 +- src/ArchiveBuilderHelper.cpp | 61 +++-- src/ArchiveNameService.h | 3 +- src/BsaPacker.cpp | 4 +- src/BsaPacker.h | 3 +- src/BsaPackerWorker.cpp | 2 +- src/BsaPackerWorker.h | 3 +- src/DummyPluginServiceFactory.h | 5 +- src/Fallout3DummyPluginService.h | 3 +- src/Fallout4DummyPluginService.h | 3 +- src/FileWriterService.h | 4 +- src/GeneralArchiveBuilder.cpp | 30 +-- src/HideLooseAssetService.h | 5 +- src/ModContext.h | 6 +- src/ModDto.h | 5 +- src/ModDtoFactory.cpp | 18 +- src/NewVegasDummyPluginService.h | 3 +- src/NullArchiveBuilder.cpp | 2 +- src/OblivionDummyPluginService.h | 4 +- src/PackerDialog.cpp | 5 - src/PackerDialog.h | 4 +- src/SkyrimDummyPluginService.cpp | 1 + src/SkyrimDummyPluginService.h | 3 +- src/SkyrimSEDummyPluginService.h | 3 +- src/TextureArchiveBuilder.cpp | 33 +-- src/TexturelessArchiveBuilder.cpp | 26 +-- src/bsa_packer_en.ts | 76 +++++++ src/bsapacker/ArchiveAutoService.h | 13 +- src/bsapacker/ArchiveBuilderFactory.h | 6 +- src/bsapacker/ArchiveBuilderHelper.h | 32 ++- src/bsapacker/GeneralArchiveBuilder.h | 16 +- src/bsapacker/IArchiveAutoService.h | 4 +- src/bsapacker/IArchiveBuilder.h | 4 +- src/bsapacker/IArchiveBuilderHelper.h | 17 +- src/bsapacker/IPackerDialog.h | 11 +- src/bsapacker/ModDtoFactory.h | 9 +- src/bsapacker/NullArchiveBuilder.h | 2 +- src/bsapacker/TextureArchiveBuilder.h | 10 +- src/bsapacker/TexturelessArchiveBuilder.h | 10 +- src/bsapacker_global.h | 7 - tests/ArchiveAutoServiceFacts.cpp | 26 --- tests/ArchiveBuilderFactoryFacts.cpp | 236 -------------------- tests/ArchiveBuilderHelperFacts.cpp | 37 --- tests/ArchiveNameServiceFacts.cpp | 260 ---------------------- tests/BsaPackerFacts.cpp | 63 ------ tests/BsaPackerWorkerFacts.cpp | 61 ----- tests/CMakeLists.txt | 7 - tests/DummyPluginServiceFactoryFacts.cpp | 44 ---- tests/Fallout3DummyPluginServiceFacts.cpp | 39 ---- tests/Fallout4DummyPluginServiceFacts.cpp | 39 ---- tests/FileWriterServiceFacts.cpp | 26 --- tests/GeneralArchiveBuilderFacts.cpp | 35 --- tests/HideLooseAssetServiceFacts.cpp | 33 --- tests/MockArchiveAutoService.h | 10 - tests/MockArchiveBuilderFactory.h | 11 - tests/MockArchiveBuilderHelper.h | 15 -- tests/MockArchiveNameService.h | 11 - tests/MockDummyPluginLogic.h | 11 - tests/MockDummyPluginServiceFactory.h | 10 - tests/MockFileWriterService.h | 10 - tests/MockHideLooseAssetService.h | 10 - tests/MockModContext.h | 13 -- tests/MockModDtoFactory.h | 10 - tests/MockOrganizer.h | 45 ---- tests/MockPackerDialog.h | 17 -- tests/MockSettingsService.h | 10 - tests/ModContextFacts.cpp | 33 --- tests/ModDtoFactoryFacts.cpp | 53 ----- tests/NewVegasDummyPluginServiceFacts.cpp | 39 ---- tests/OblivionDummyPluginServiceFacts.cpp | 39 ---- tests/SkyrimDummyPluginServiceFacts.cpp | 39 ---- tests/SkyrimSEDummyPluginServiceFacts.cpp | 39 ---- tests/TextureArchiveBuilderFacts.cpp | 35 --- tests/TexturelessArchiveBuilderFacts.cpp | 35 --- 77 files changed, 261 insertions(+), 1649 deletions(-) create mode 100644 src/bsa_packer_en.ts delete mode 100644 src/bsapacker_global.h delete mode 100644 tests/ArchiveAutoServiceFacts.cpp delete mode 100644 tests/ArchiveBuilderFactoryFacts.cpp delete mode 100644 tests/ArchiveBuilderHelperFacts.cpp delete mode 100644 tests/ArchiveNameServiceFacts.cpp delete mode 100644 tests/BsaPackerFacts.cpp delete mode 100644 tests/BsaPackerWorkerFacts.cpp delete mode 100644 tests/CMakeLists.txt delete mode 100644 tests/DummyPluginServiceFactoryFacts.cpp delete mode 100644 tests/Fallout3DummyPluginServiceFacts.cpp delete mode 100644 tests/Fallout4DummyPluginServiceFacts.cpp delete mode 100644 tests/FileWriterServiceFacts.cpp delete mode 100644 tests/GeneralArchiveBuilderFacts.cpp delete mode 100644 tests/HideLooseAssetServiceFacts.cpp delete mode 100644 tests/MockArchiveAutoService.h delete mode 100644 tests/MockArchiveBuilderFactory.h delete mode 100644 tests/MockArchiveBuilderHelper.h delete mode 100644 tests/MockArchiveNameService.h delete mode 100644 tests/MockDummyPluginLogic.h delete mode 100644 tests/MockDummyPluginServiceFactory.h delete mode 100644 tests/MockFileWriterService.h delete mode 100644 tests/MockHideLooseAssetService.h delete mode 100644 tests/MockModContext.h delete mode 100644 tests/MockModDtoFactory.h delete mode 100644 tests/MockOrganizer.h delete mode 100644 tests/MockPackerDialog.h delete mode 100644 tests/MockSettingsService.h delete mode 100644 tests/ModContextFacts.cpp delete mode 100644 tests/ModDtoFactoryFacts.cpp delete mode 100644 tests/NewVegasDummyPluginServiceFacts.cpp delete mode 100644 tests/OblivionDummyPluginServiceFacts.cpp delete mode 100644 tests/SkyrimDummyPluginServiceFacts.cpp delete mode 100644 tests/SkyrimSEDummyPluginServiceFacts.cpp delete mode 100644 tests/TextureArchiveBuilderFacts.cpp delete mode 100644 tests/TexturelessArchiveBuilderFacts.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index f61c68c..69034c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,35 +1,5 @@ cmake_minimum_required(VERSION 3.16) -project(bsa_packer_tests) -set(project_type tests) -set(enable_warnings OFF) -set(create_translations OFF) -if(DEFINED DEPENDENCIES_DIR) - include(${DEPENDENCIES_DIR}/modorganizer_super/cmake_common/project.cmake) -else() - include(../cmake_common/project.cmake) -endif() -add_subdirectory(tests) - -find_package(Qt5Concurrent REQUIRED) - -target_include_directories(${PROJECT_NAME} - PRIVATE - ../src - ${BOOST_DI_ROOT}/include) -target_link_directories(${PROJECT_NAME} - PRIVATE - lib - src) -target_link_libraries(${PROJECT_NAME} - Qt5::Concurrent - DirectXTex) -requires_library(libbsarch) - -# Add include from the original src: -target_include_directories(${PROJECT_NAME} PRIVATE src) - - project(bsa_packer) set(project_type plugin) set(enable_warnings OFF) @@ -45,9 +15,6 @@ find_package(Qt5Concurrent REQUIRED) target_include_directories(${PROJECT_NAME} PRIVATE ${BOOST_DI_ROOT}/include) target_link_directories(${PROJECT_NAME} PRIVATE lib) target_link_libraries(${PROJECT_NAME} - Qt5::Concurrent - DirectXTex) -requires_library(libbsarch) -target_compile_definitions(bsa_packer PRIVATE BSAPACKER_LIBRARY) - -target_link_libraries(bsa_packer_tests bsa_packer) \ No newline at end of file + Qt5::Concurrent + DirectXTex) +requires_library(libbsarch) \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index 67f5871..48ac045 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -9,8 +9,11 @@ build: build_script: - cmd: >- git clone --depth=1 --branch=%APPVEYOR_REPO_BRANCH% https://github.com/ModOrganizer2/modorganizer-umbrella.git c:\projects\modorganizer-umbrella 2> $null + mkdir c:\projects\modorganizer-build -type directory + cd c:\projects\modorganizer-umbrella + C:\Python37-x64\python.exe unimake.py -d c:\projects\modorganizer-build -s Appveyor_Build=True %APPVEYOR_PROJECT_NAME% artifacts: - path: build\bsa_packer.dll diff --git a/src/ArchiveAutoService.cpp b/src/ArchiveAutoService.cpp index 042612b..e9e2462 100644 --- a/src/ArchiveAutoService.cpp +++ b/src/ArchiveAutoService.cpp @@ -2,8 +2,9 @@ namespace BsaPacker { - void ArchiveAutoService::CreateBSA(libbsarch::bs_archive_auto* archive, const QString& archiveName, const bsa_archive_type_e type) const + void ArchiveAutoService::CreateBSA(BSArchiveAuto* archive, const QString& archiveName, const bsa_archive_type_e type) const { - archive->save_to_disk(archiveName.toStdString()); + archive->create(archiveName, type); + archive->save(); } } // namespace BsaPacker diff --git a/src/ArchiveBuilderFactory.cpp b/src/ArchiveBuilderFactory.cpp index 887f52f..65ff25d 100644 --- a/src/ArchiveBuilderFactory.cpp +++ b/src/ArchiveBuilderFactory.cpp @@ -40,11 +40,11 @@ namespace BsaPacker case baTES4: case baFO3: case baSSE: - return std::make_unique(this->m_ArchiveBuilderHelper, modDto->Directory(), archiveType); + return std::make_unique(this->m_ArchiveBuilderHelper, modDto->Directory()); case baFO4: - return std::make_unique(this->m_ArchiveBuilderHelper, modDto->Directory(), archiveType); + return std::make_unique(this->m_ArchiveBuilderHelper, modDto->Directory()); case baFO4dds: - return std::make_unique(this->m_ArchiveBuilderHelper, modDto->Directory(), archiveType); + return std::make_unique(this->m_ArchiveBuilderHelper, modDto->Directory()); case baNone: default: return std::make_unique(); diff --git a/src/ArchiveBuilderHelper.cpp b/src/ArchiveBuilderHelper.cpp index 6164bd3..ccc5b75 100644 --- a/src/ArchiveBuilderHelper.cpp +++ b/src/ArchiveBuilderHelper.cpp @@ -1,75 +1,66 @@ #include -#include -#include +#include +#include #include "SettingsService.h" -using std::filesystem::path; -using std::filesystem::directory_entry; -using std::filesystem::directory_iterator; -using std::filesystem::recursive_directory_iterator; - namespace BsaPacker { - const std::array ArchiveBuilderHelper::INCOMPRESSIBLE_TYPES = { ".wav", ".ogg", ".mp3" }; + const std::array ArchiveBuilderHelper::INCOMPRESSIBLE_TYPES = { "wav", "ogg", "mp3" }; ArchiveBuilderHelper::ArchiveBuilderHelper(const ISettingsService* settingsService) : m_SettingsService(settingsService) { } - uint32_t ArchiveBuilderHelper::getFileCount(const path& rootDirectory) const + uint32_t ArchiveBuilderHelper::getFileCount(const QDir& rootDirectory) const { + QDirIterator it(rootDirectory, QDirIterator::Subdirectories); uint32_t count = 0; - for(auto& p : recursive_directory_iterator(rootDirectory)) { + while (it.hasNext()) { + it.next(); count++; } return count; } - std::vector ArchiveBuilderHelper::getRootDirectoryFilenames(const path& rootDirectory) const + QStringList ArchiveBuilderHelper::getRootDirectoryFilenames(const QDir& rootDirectory) const { - std::vector filenames; - for (const auto& entry : directory_iterator(rootDirectory)) { - filenames.push_back(entry.path().filename().native()); - } - return filenames; + const std::function getFilename = [](const QFileInfo& fi) { + return fi.fileName(); + }; + return QtConcurrent::blockingMapped(rootDirectory.entryInfoList(QDir::Files), + getFilename); } - bool ArchiveBuilderHelper::isFileIgnorable(const path& filepath, const std::vector& rootDirFilenames) const + bool ArchiveBuilderHelper::isFileIgnorable(const QString& filepath, const QStringList& rootDirFilenames) const { - const auto& filename = filepath.filename(); - return this->doesPathContainFiles(filepath, rootDirFilenames) || // ignore files within mod directory - directory_entry(filepath).is_directory() || // ignore directories + const QFileInfo& fileInfo(filepath); + const QString& filename = fileInfo.fileName(); + return rootDirFilenames.contains(filename) || // ignore files within mod directory + fileInfo.isDir() || // ignore directories filename == "." || filename == ".." || // ignore current dir and parent dir entries - this->isExtensionBlacklisted(filename); // ignore user blacklisted file types + ArchiveBuilderHelper::isExtensionBlacklisted(filename); // ignore user blacklisted file types } - bool ArchiveBuilderHelper::isIncompressible(const path& filename) const + bool ArchiveBuilderHelper::isIncompressible(const QString& filename) const { - for (const auto& ext : ArchiveBuilderHelper::INCOMPRESSIBLE_TYPES) { - if (boost::iequals(filename.extension().string(), ext)) { + for (const QString& str : ArchiveBuilderHelper::INCOMPRESSIBLE_TYPES) { + if (filename.endsWith(str, Qt::CaseInsensitive)) { return true; } } return false; } - bool ArchiveBuilderHelper::isExtensionBlacklisted(const path& filename) const + bool ArchiveBuilderHelper::isExtensionBlacklisted(const QString& filename) const { - const auto& setting = this->m_SettingsService->GetPluginSetting(SettingsService::SETTING_BLACKLISTED_FILES).toString().toStdString(); - std::vector blacklist; - boost::split(blacklist, setting, [](char c){return c == ';';}); - for (const auto& ext : blacklist) { - if (boost::iequals(filename.extension().string(), ext)) { + const QStringList& blacklist = this->m_SettingsService->GetPluginSetting(SettingsService::SETTING_BLACKLISTED_FILES).toString().split(';'); + for (const QString& ext : blacklist) { + if (filename.endsWith(ext, Qt::CaseInsensitive)) { return true; } } return false; } - - bool ArchiveBuilderHelper::doesPathContainFiles(const path& filepath, const std::vector& files) const - { - return std::find(files.begin(), files.end(), filepath.filename()) != files.end(); - } } // namespace BsaPacker diff --git a/src/ArchiveNameService.h b/src/ArchiveNameService.h index 50c04cb..5a0ba1c 100644 --- a/src/ArchiveNameService.h +++ b/src/ArchiveNameService.h @@ -1,13 +1,12 @@ #ifndef ARCHIVENAMESERVICE_H #define ARCHIVENAMESERVICE_H -#include "bsapacker_global.h" #include #include namespace BsaPacker { - class BSAPACKER_EXPORT ArchiveNameService : public IArchiveNameService + class ArchiveNameService : public IArchiveNameService { public: ArchiveNameService(const IModContext* modContext); diff --git a/src/BsaPacker.cpp b/src/BsaPacker.cpp index 77f3f13..f59b756 100644 --- a/src/BsaPacker.cpp +++ b/src/BsaPacker.cpp @@ -12,7 +12,6 @@ #include "HideLooseAssetService.h" #include "ModContext.h" #include "ModDto.h" -#include "PackerDialog.h" #include "SettingsService.h" #include #include @@ -89,8 +88,7 @@ namespace BsaPacker di::bind.to(), di::bind.to(), di::bind.to(), - di::bind.to(), - di::bind.to() + di::bind.to() ); BsaPackerWorker worker = di::create(injector); diff --git a/src/BsaPacker.h b/src/BsaPacker.h index ba8818a..ce44d18 100644 --- a/src/BsaPacker.h +++ b/src/BsaPacker.h @@ -1,14 +1,13 @@ #ifndef BSA_PACKER_H #define BSA_PACKER_H -#include "bsapacker_global.h" #include #include #include namespace BsaPacker { - class BSAPACKER_EXPORT Bsa_Packer : public MOBase::IPluginTool + class Bsa_Packer : public MOBase::IPluginTool { Q_OBJECT Q_INTERFACES(MOBase::IPlugin MOBase::IPluginTool) diff --git a/src/BsaPackerWorker.cpp b/src/BsaPackerWorker.cpp index 9643b9c..8e23ef7 100644 --- a/src/BsaPackerWorker.cpp +++ b/src/BsaPackerWorker.cpp @@ -33,7 +33,7 @@ namespace BsaPacker const std::unique_ptr builder = this->m_ArchiveBuilderFactory->Create(type, modDto.get()); ArchiveBuildDirector director(this->m_SettingsService, builder.get()); director.Construct(); // must check if cancelled - const std::unique_ptr archive = builder->getArchive(); + const std::unique_ptr archive = builder->getArchive(); if (archive) { const QString& archiveFullPath = this->m_ArchiveNameService->GetArchiveFullPath(type, modDto.get()); this->m_ArchiveAutoService->CreateBSA(archive.get(), archiveFullPath, type); diff --git a/src/BsaPackerWorker.h b/src/BsaPackerWorker.h index cb96c76..d16e6d3 100644 --- a/src/BsaPackerWorker.h +++ b/src/BsaPackerWorker.h @@ -1,7 +1,6 @@ #ifndef BSAPACKERWORKER_H #define BSAPACKERWORKER_H -#include "bsapacker_global.h" #include #include #include @@ -12,7 +11,7 @@ namespace BsaPacker { - class BSAPACKER_EXPORT BsaPackerWorker + class BsaPackerWorker { public: BsaPackerWorker( diff --git a/src/DummyPluginServiceFactory.h b/src/DummyPluginServiceFactory.h index 219c023..5abc13c 100644 --- a/src/DummyPluginServiceFactory.h +++ b/src/DummyPluginServiceFactory.h @@ -1,7 +1,6 @@ #ifndef DUMMYPLUGINSERVICEFACTORY_H #define DUMMYPLUGINSERVICEFACTORY_H -#include "bsapacker_global.h" #include #include #include @@ -9,13 +8,13 @@ namespace BsaPacker { - class BSAPACKER_EXPORT DummyPluginServiceFactory : public IDummyPluginServiceFactory + class DummyPluginServiceFactory : public IDummyPluginServiceFactory { public: explicit DummyPluginServiceFactory( const IModContext* modContext, const IFileWriterService* fileWriterService, // bad! only passing this to another constructor! - const IDummyPluginLogic* dummyPluginLogic); // TODO: perhaps remedy with strategy pattern? + const IDummyPluginLogic* dummyPluginLogic); // perhaps remedy with strategy pattern? ~DummyPluginServiceFactory() override = default; [[nodiscard]] std::unique_ptr Create() const override; diff --git a/src/Fallout3DummyPluginService.h b/src/Fallout3DummyPluginService.h index bf35a1d..5c95970 100644 --- a/src/Fallout3DummyPluginService.h +++ b/src/Fallout3DummyPluginService.h @@ -1,14 +1,13 @@ #ifndef FALLOUT3DUMMYPLUGINSERVICE_H #define FALLOUT3DUMMYPLUGINSERVICE_H -#include "bsapacker_global.h" #include #include #include namespace BsaPacker { - class BSAPACKER_EXPORT Fallout3DummyPluginService : public IDummyPluginService + class Fallout3DummyPluginService : public IDummyPluginService { public: Fallout3DummyPluginService(const IFileWriterService* fileWriterService, diff --git a/src/Fallout4DummyPluginService.h b/src/Fallout4DummyPluginService.h index 534dd5c..84d480e 100644 --- a/src/Fallout4DummyPluginService.h +++ b/src/Fallout4DummyPluginService.h @@ -1,14 +1,13 @@ #ifndef FALLOUT4DUMMYPLUGINSERVICE_H #define FALLOUT4DUMMYPLUGINSERVICE_H -#include "bsapacker_global.h" #include #include #include namespace BsaPacker { - class BSAPACKER_EXPORT Fallout4DummyPluginService : public IDummyPluginService + class Fallout4DummyPluginService : public IDummyPluginService { public: Fallout4DummyPluginService(const IFileWriterService* fileWriterService, diff --git a/src/FileWriterService.h b/src/FileWriterService.h index b63b563..a77fc99 100644 --- a/src/FileWriterService.h +++ b/src/FileWriterService.h @@ -1,15 +1,15 @@ #ifndef FILEWRITERSERVICE_H #define FILEWRITERSERVICE_H -#include "bsapacker_global.h" #include namespace BsaPacker { - class BSAPACKER_EXPORT FileWriterService : public IFileWriterService + class FileWriterService : public IFileWriterService { public: FileWriterService() = default; + ~FileWriterService() override = default; bool Write(const std::string& path, const char* payload, const uint32_t size) const override; }; } diff --git a/src/GeneralArchiveBuilder.cpp b/src/GeneralArchiveBuilder.cpp index 83564d4..1ae7377 100644 --- a/src/GeneralArchiveBuilder.cpp +++ b/src/GeneralArchiveBuilder.cpp @@ -4,17 +4,13 @@ #include #include -#include - -using namespace libbsarch; - namespace BsaPacker { - GeneralArchiveBuilder::GeneralArchiveBuilder(const IArchiveBuilderHelper* archiveBuilderHelper, const QDir& rootDir, const bsa_archive_type_t& type) + GeneralArchiveBuilder::GeneralArchiveBuilder(const IArchiveBuilderHelper* archiveBuilderHelper, const QDir& rootDir) : m_ArchiveBuilderHelper(archiveBuilderHelper), m_RootDirectory(rootDir) { this->m_Cancelled = false; - this->m_Archive = std::make_unique(type); + this->m_Archive = std::make_unique(this->m_RootDirectory.path()); } uint32_t GeneralArchiveBuilder::setFiles() @@ -22,9 +18,7 @@ namespace BsaPacker uint32_t incompressibleFiles = 0; uint32_t compressibleFiles = 0; int count = 0; - const auto& dirString = this->m_RootDirectory.path().toStdWString(); - const auto& rootDirFiles = this->m_ArchiveBuilderHelper->getRootDirectoryFilenames(dirString); - + const QStringList& rootDirFiles = this->m_ArchiveBuilderHelper->getRootDirectoryFilenames(this->m_RootDirectory); QDirIterator iterator(this->m_RootDirectory, QDirIterator::Subdirectories); while (iterator.hasNext()) { QApplication::processEvents(); @@ -35,37 +29,33 @@ namespace BsaPacker } const QString& filepath = iterator.next(); - const bool ignored = this->m_ArchiveBuilderHelper->isFileIgnorable(filepath.toStdWString(), rootDirFiles); + const bool ignored = this->m_ArchiveBuilderHelper->isFileIgnorable(filepath, rootDirFiles); Q_EMIT this->valueChanged(++count); if (ignored) { continue; } - this->m_ArchiveBuilderHelper->isIncompressible(filepath.toStdWString()) ? ++incompressibleFiles : ++compressibleFiles; - auto fileBlob = disk_blob( - this->m_RootDirectory.path().toStdWString(), - filepath.toStdWString()); - this->m_Archive->add_file_from_disk(fileBlob); - qDebug() << "file is: " << filepath; + this->m_ArchiveBuilderHelper->isIncompressible(filepath) ? ++incompressibleFiles : ++compressibleFiles; + this->m_Archive->addFileFromDiskRoot(filepath); } - this->m_Archive->set_compressed(!static_cast(incompressibleFiles)); + this->m_Archive->setCompressed(!static_cast(incompressibleFiles)); return incompressibleFiles + compressibleFiles; } void GeneralArchiveBuilder::setShareData(const bool value) { - this->m_Archive->set_share_data(value); + this->m_Archive->setShareData(value); } - std::unique_ptr GeneralArchiveBuilder::getArchive() + std::unique_ptr GeneralArchiveBuilder::getArchive() { return std::move(this->m_Archive); } uint32_t GeneralArchiveBuilder::getFileCount() const { - return this->m_ArchiveBuilderHelper->getFileCount(this->m_RootDirectory.path().toStdWString()); + return this->m_ArchiveBuilderHelper->getFileCount(this->m_RootDirectory); } QString GeneralArchiveBuilder::getRootPath() const diff --git a/src/HideLooseAssetService.h b/src/HideLooseAssetService.h index e0e7475..963d0ea 100644 --- a/src/HideLooseAssetService.h +++ b/src/HideLooseAssetService.h @@ -1,16 +1,17 @@ #ifndef HIDELOOSEASSETSERVICE_H #define HIDELOOSEASSETSERVICE_H -#include "bsapacker_global.h" #include #include namespace BsaPacker { - class BSAPACKER_EXPORT HideLooseAssetService : public IHideLooseAssetService + class HideLooseAssetService : public IHideLooseAssetService { public: + HideLooseAssetService() = default; HideLooseAssetService(const ISettingsService* settingsService); + ~HideLooseAssetService() override = default; bool HideLooseAssets(const QDir& modDirectory) const override; private: diff --git a/src/ModContext.h b/src/ModContext.h index 43f57ef..44b4ed0 100644 --- a/src/ModContext.h +++ b/src/ModContext.h @@ -1,16 +1,18 @@ #ifndef MOD_CONTEXT_H #define MOD_CONTEXT_H -#include "bsapacker_global.h" #include #include namespace BsaPacker { - class BSAPACKER_EXPORT ModContext : public IModContext + class ModContext : public IModContext { public: explicit ModContext(MOBase::IOrganizer* moInfo); + ~ModContext() override = default; + + // IModContext interface [[nodiscard]] QString GetAbsoluteModPath(const QString& modName) const override; [[nodiscard]] int GetNexusId() const override; [[nodiscard]] QStringList GetPlugins(const QDir& modDirectory) const override; diff --git a/src/ModDto.h b/src/ModDto.h index 9976065..9060b17 100644 --- a/src/ModDto.h +++ b/src/ModDto.h @@ -1,13 +1,14 @@ #ifndef MODMETADTO_H #define MODMETADTO_H -#include "bsapacker_global.h" #include + #include +#include namespace BsaPacker { - class BSAPACKER_EXPORT ModDto : public IModDto + class ModDto : public IModDto { public: ModDto(const int nexusId, const QString& modDir, const QString& archiveName, const QString& archiveExtension); diff --git a/src/ModDtoFactory.cpp b/src/ModDtoFactory.cpp index 497a0a5..b9d3816 100644 --- a/src/ModDtoFactory.cpp +++ b/src/ModDtoFactory.cpp @@ -10,28 +10,26 @@ namespace BsaPacker { const uint16_t FALLOUT_4_NEXUS_ID = 1151; - ModDtoFactory::ModDtoFactory( - const IModContext* modContext, - IPackerDialog* packerDialog) : - m_ModContext(modContext), - m_PackerDialog(packerDialog) + ModDtoFactory::ModDtoFactory(const IModContext* modContext) + : m_ModContext(modContext) { } std::unique_ptr ModDtoFactory::Create() const { - this->m_PackerDialog->RefreshModList(); - int result = m_PackerDialog->Exec(); + PackerDialog packerDialog(this->m_ModContext); + packerDialog.RefreshModList(); + int result = packerDialog.exec(); if (result != QDialog::DialogCode::Accepted) { return std::make_unique(); } const int nexusId = this->m_ModContext->GetNexusId(); - const QString& modName = this->m_PackerDialog->SelectedMod(); + const QString& modName = packerDialog.SelectedMod(); const QString& modDir = this->m_ModContext->GetAbsoluteModPath(modName); - const QString& pluginName = this->m_PackerDialog->SelectedPluginItem(); - const bool needsNewName = this->m_PackerDialog->IsNewFilename(); + const QString& pluginName = packerDialog.SelectedPluginItem(); + const bool needsNewName = packerDialog.IsNewFilename(); const QString& archiveName = ModDtoFactory::ArchiveNameValidator(modName, pluginName, needsNewName); const QString& archiveExtension = nexusId == FALLOUT_4_NEXUS_ID ? QStringLiteral(".ba2") diff --git a/src/NewVegasDummyPluginService.h b/src/NewVegasDummyPluginService.h index 94f95b1..29c265d 100644 --- a/src/NewVegasDummyPluginService.h +++ b/src/NewVegasDummyPluginService.h @@ -1,14 +1,13 @@ #ifndef NEWVEGASDUMMYPLUGINSERVICE_H #define NEWVEGASDUMMYPLUGINSERVICE_H -#include "bsapacker_global.h" #include #include #include namespace BsaPacker { - class BSAPACKER_EXPORT NewVegasDummyPluginService : public IDummyPluginService + class NewVegasDummyPluginService : public IDummyPluginService { public: NewVegasDummyPluginService(const IFileWriterService* fileWriterService, diff --git a/src/NullArchiveBuilder.cpp b/src/NullArchiveBuilder.cpp index 9dbae36..e6fa906 100644 --- a/src/NullArchiveBuilder.cpp +++ b/src/NullArchiveBuilder.cpp @@ -11,7 +11,7 @@ namespace BsaPacker { } - std::unique_ptr NullArchiveBuilder::getArchive() + std::unique_ptr NullArchiveBuilder::getArchive() { return nullptr; } diff --git a/src/OblivionDummyPluginService.h b/src/OblivionDummyPluginService.h index 7c7b40a..963c436 100644 --- a/src/OblivionDummyPluginService.h +++ b/src/OblivionDummyPluginService.h @@ -1,14 +1,13 @@ #ifndef OBLIVIONDUMMYPLUGINSERVICE_H #define OBLIVIONDUMMYPLUGINSERVICE_H -#include "bsapacker_global.h" #include #include #include namespace BsaPacker { - class BSAPACKER_EXPORT OblivionDummyPluginService : public IDummyPluginService + class OblivionDummyPluginService : public IDummyPluginService { public: OblivionDummyPluginService(const IFileWriterService* fileWriterService, @@ -31,4 +30,5 @@ namespace BsaPacker }; } + #endif // OBLIVIONDUMMYPLUGINSERVICE_H diff --git a/src/PackerDialog.cpp b/src/PackerDialog.cpp index cb6bd33..5eceae4 100644 --- a/src/PackerDialog.cpp +++ b/src/PackerDialog.cpp @@ -80,11 +80,6 @@ namespace BsaPacker this->listArchiveNames.addItems(filenames); } - int PackerDialog::Exec() - { - return QDialog::exec(); - } - void PackerDialog::RefreshSelectedName() { Q_EMIT this->comboModList.currentTextChanged(this->comboModList.currentText()); diff --git a/src/PackerDialog.h b/src/PackerDialog.h index 843e842..1b0ec02 100644 --- a/src/PackerDialog.h +++ b/src/PackerDialog.h @@ -13,9 +13,10 @@ namespace BsaPacker { - class PackerDialog : public QDialog, public IPackerDialog + class PackerDialog : public IPackerDialog { Q_OBJECT + Q_INTERFACES(BsaPacker::IPackerDialog) public: explicit PackerDialog(const IModContext* modContext); ~PackerDialog() override = default; @@ -27,7 +28,6 @@ namespace BsaPacker [[nodiscard]] QString SelectedPluginItem() const override; void UpdateNameList(const QString&) override; void RefreshSelectedName() override; - int Exec() override; public Q_SLOTS: void RefreshOkButton() override; diff --git a/src/SkyrimDummyPluginService.cpp b/src/SkyrimDummyPluginService.cpp index e7bc536..9b1fde1 100644 --- a/src/SkyrimDummyPluginService.cpp +++ b/src/SkyrimDummyPluginService.cpp @@ -1,5 +1,6 @@ #include "SkyrimDummyPluginService.h" + namespace BsaPacker { SkyrimDummyPluginService::SkyrimDummyPluginService( diff --git a/src/SkyrimDummyPluginService.h b/src/SkyrimDummyPluginService.h index 2866ef8..938de35 100644 --- a/src/SkyrimDummyPluginService.h +++ b/src/SkyrimDummyPluginService.h @@ -1,14 +1,13 @@ #ifndef SKYRIMDUMMYPLUGINSERVICE_H #define SKYRIMDUMMYPLUGINSERVICE_H -#include "bsapacker_global.h" #include #include #include namespace BsaPacker { - class BSAPACKER_EXPORT SkyrimDummyPluginService : public IDummyPluginService + class SkyrimDummyPluginService : public IDummyPluginService { public: SkyrimDummyPluginService(const IFileWriterService* fileWriterService, diff --git a/src/SkyrimSEDummyPluginService.h b/src/SkyrimSEDummyPluginService.h index dc348a8..6cf82cc 100644 --- a/src/SkyrimSEDummyPluginService.h +++ b/src/SkyrimSEDummyPluginService.h @@ -1,14 +1,13 @@ #ifndef SKYRIMSEDUMMYPLUGINSERVICE_H #define SKYRIMSEDUMMYPLUGINSERVICE_H -#include "bsapacker_global.h" #include #include #include namespace BsaPacker { - class BSAPACKER_EXPORT SkyrimSEDummyPluginService : public IDummyPluginService + class SkyrimSEDummyPluginService : public IDummyPluginService { public: SkyrimSEDummyPluginService(const IFileWriterService* fileWriterService, diff --git a/src/TextureArchiveBuilder.cpp b/src/TextureArchiveBuilder.cpp index 7a626a1..e8a89ea 100644 --- a/src/TextureArchiveBuilder.cpp +++ b/src/TextureArchiveBuilder.cpp @@ -5,15 +5,13 @@ #include #include "DirectXTex.h" -using namespace libbsarch; - namespace BsaPacker { - TextureArchiveBuilder::TextureArchiveBuilder(const IArchiveBuilderHelper* archiveBuilderHelper, const QDir& rootDir, const bsa_archive_type_t& type) + TextureArchiveBuilder::TextureArchiveBuilder(const IArchiveBuilderHelper* archiveBuilderHelper, const QDir& rootDir) : m_ArchiveBuilderHelper(archiveBuilderHelper), m_RootDirectory(rootDir) { this->m_Cancelled = false; - this->m_Archive = std::make_unique(type); + this->m_Archive = std::make_unique(this->m_RootDirectory.path()); } uint32_t TextureArchiveBuilder::setFiles() @@ -21,8 +19,7 @@ namespace BsaPacker uint32_t incompressibleFiles = 0; uint32_t compressibleFiles = 0; int count = 0; - const auto& dirString = this->m_RootDirectory.path().toStdWString(); - const auto& rootDirFiles = this->m_ArchiveBuilderHelper->getRootDirectoryFilenames(dirString); + const QStringList& rootDirFiles = this->m_ArchiveBuilderHelper->getRootDirectoryFilenames(this->m_RootDirectory); QDirIterator iterator(this->m_RootDirectory, QDirIterator::Subdirectories); while (iterator.hasNext()) { QApplication::processEvents(); @@ -33,37 +30,34 @@ namespace BsaPacker } const QString& filepath = iterator.next(); - const bool ignored = this->m_ArchiveBuilderHelper->isFileIgnorable(filepath.toStdWString(), rootDirFiles); + const bool ignored = this->m_ArchiveBuilderHelper->isFileIgnorable(filepath, rootDirFiles); Q_EMIT this->valueChanged(++count); if (ignored || !filepath.endsWith(".dds", Qt::CaseInsensitive)) { continue; } - this->m_ArchiveBuilderHelper->isIncompressible(filepath.toStdWString()) ? ++incompressibleFiles : ++compressibleFiles; - auto fileBlob = disk_blob( - this->m_RootDirectory.path().toStdWString(), - filepath.toStdWString()); - this->m_Archive->add_file_from_disk(fileBlob); + this->m_ArchiveBuilderHelper->isIncompressible(filepath) ? ++incompressibleFiles : ++compressibleFiles; + this->m_Archive->addFileFromDiskRoot(filepath); } - this->m_Archive->set_compressed(!static_cast(incompressibleFiles)); - this->m_Archive->set_dds_callback(TextureArchiveBuilder::DDSCallback, (void*)this); + this->m_Archive->setCompressed(true); + this->m_Archive->setDDSCallback(TextureArchiveBuilder::DDSCallback, (void*)this); return incompressibleFiles + compressibleFiles; } void TextureArchiveBuilder::setShareData(const bool value) { - this->m_Archive->set_share_data(value); + this->m_Archive->setShareData(value); } - std::unique_ptr TextureArchiveBuilder::getArchive() + std::unique_ptr TextureArchiveBuilder::getArchive() { return std::move(this->m_Archive); } uint32_t TextureArchiveBuilder::getFileCount() const { - return this->m_ArchiveBuilderHelper->getFileCount(this->m_RootDirectory.path().toStdWString()); + return this->m_ArchiveBuilderHelper->getFileCount(this->m_RootDirectory); } QString TextureArchiveBuilder::getRootPath() const @@ -83,10 +77,7 @@ namespace BsaPacker auto builder = (TextureArchiveBuilder*)context; const QString qsRootPath = builder->getRootPath(); - //auto cstring = convertible_string(qsRootPath); - //cstring.to_native_path(); - const std::wstring wsRootPath = qsRootPath.toStdWString(); - //const std::wstring wsRootPath(PREPARE_PATH_LIBBSARCH(qsRootPath)); + const std::wstring wsRootPath(PREPARE_PATH_LIBBSARCH(qsRootPath)); const std::wstring path = wsRootPath + L"\\" + std::wstring(file_path); const auto hr = LoadFromDDSFile(path.c_str(), DirectX::DDS_FLAGS_NONE, &info, *image); diff --git a/src/TexturelessArchiveBuilder.cpp b/src/TexturelessArchiveBuilder.cpp index 7cfbb61..676ad4b 100644 --- a/src/TexturelessArchiveBuilder.cpp +++ b/src/TexturelessArchiveBuilder.cpp @@ -4,15 +4,13 @@ #include #include -using namespace libbsarch; - namespace BsaPacker { - TexturelessArchiveBuilder::TexturelessArchiveBuilder(const IArchiveBuilderHelper* archiveBuilderHelper, const QDir& rootDir, const bsa_archive_type_t& type) + TexturelessArchiveBuilder::TexturelessArchiveBuilder(const IArchiveBuilderHelper* archiveBuilderHelper, const QDir& rootDir) : m_ArchiveBuilderHelper(archiveBuilderHelper), m_RootDirectory(rootDir) { this->m_Cancelled = false; - this->m_Archive = std::make_unique(type); + this->m_Archive = std::make_unique(this->m_RootDirectory.path()); } uint32_t TexturelessArchiveBuilder::setFiles() @@ -20,8 +18,7 @@ namespace BsaPacker uint32_t incompressibleFiles = 0; uint32_t compressibleFiles = 0; int count = 0; - const auto& dirString = this->m_RootDirectory.path().toStdWString(); - const auto& rootDirFiles = this->m_ArchiveBuilderHelper->getRootDirectoryFilenames(dirString); + const QStringList& rootDirFilenames = this->m_ArchiveBuilderHelper->getRootDirectoryFilenames(this->m_RootDirectory); QDirIterator iterator(this->m_RootDirectory, QDirIterator::Subdirectories); while (iterator.hasNext()) { QApplication::processEvents(); @@ -32,36 +29,33 @@ namespace BsaPacker } const QString& filepath = iterator.next(); - const bool ignored = this->m_ArchiveBuilderHelper->isFileIgnorable(filepath.toStdWString(), rootDirFiles); + const bool ignored = this->m_ArchiveBuilderHelper->isFileIgnorable(filepath, rootDirFilenames); Q_EMIT this->valueChanged(++count); if (ignored || filepath.endsWith(".dds", Qt::CaseInsensitive)) { continue; } - this->m_ArchiveBuilderHelper->isIncompressible(filepath.toStdWString()) ? ++incompressibleFiles : ++compressibleFiles; - auto fileBlob = disk_blob( - this->m_RootDirectory.path().toStdWString(), - filepath.toStdWString()); - this->m_Archive->add_file_from_disk(fileBlob); + this->m_ArchiveBuilderHelper->isIncompressible(filepath) ? ++incompressibleFiles : ++compressibleFiles; + this->m_Archive->addFileFromDiskRoot(filepath); } - this->m_Archive->set_compressed(!static_cast(incompressibleFiles)); + this->m_Archive->setCompressed(!static_cast(incompressibleFiles)); return incompressibleFiles + compressibleFiles; } void TexturelessArchiveBuilder::setShareData(const bool value) { - this->m_Archive->set_share_data(value); + this->m_Archive->setShareData(value); } - std::unique_ptr TexturelessArchiveBuilder::getArchive() + std::unique_ptr TexturelessArchiveBuilder::getArchive() { return std::move(this->m_Archive); } uint32_t TexturelessArchiveBuilder::getFileCount() const { - return this->m_ArchiveBuilderHelper->getFileCount(this->m_RootDirectory.path().toStdWString()); + return this->m_ArchiveBuilderHelper->getFileCount(this->m_RootDirectory); } QString TexturelessArchiveBuilder::getRootPath() const diff --git a/src/bsa_packer_en.ts b/src/bsa_packer_en.ts new file mode 100644 index 0000000..86ca35c --- /dev/null +++ b/src/bsa_packer_en.ts @@ -0,0 +1,76 @@ + + + + + BsaPacker::Bsa_Packer + + + + Transform loose files into a Bethesda Softworks Archive file (.bsa/.ba2). + + + + + BSA Packer + + + + + QObject + + + Archive name (no file extension): + + + + + File " + + + + + " already exists. Overwrite? + + + + + Choose a mod to pack: + + + + + Choose a name for the packed archive: + + + + + BSA Packer + + + + + After creating the archive, set loose assets to hidden. + + + + + Create a dummy plugin to load the archive if one does not exist. + + + + + Allow this plugin to run. + + + + + Specify a semi-colon seperated list of file extensions to ignore when packing. + + + + + Created + + + + diff --git a/src/bsapacker/ArchiveAutoService.h b/src/bsapacker/ArchiveAutoService.h index d6c3947..b84052f 100644 --- a/src/bsapacker/ArchiveAutoService.h +++ b/src/bsapacker/ArchiveAutoService.h @@ -1,16 +1,23 @@ #ifndef ARCHIVEAUTOSERVICE_H #define ARCHIVEAUTOSERVICE_H -#include "bsapacker_global.h" +#include #include +#include namespace BsaPacker { - class BSAPACKER_EXPORT ArchiveAutoService : public IArchiveAutoService + class ArchiveAutoService : public IArchiveAutoService { public: ArchiveAutoService() = default; - void CreateBSA(libbsarch::bs_archive_auto* archive, const QString& archiveName, bsa_archive_type_e type) const override; + ~ArchiveAutoService() override = default; + ArchiveAutoService(const ArchiveAutoService&) = delete; + ArchiveAutoService& operator=(const ArchiveAutoService&) = delete; + ArchiveAutoService(ArchiveAutoService&&) = default; + ArchiveAutoService& operator=(ArchiveAutoService&&) = default; + + void CreateBSA(BSArchiveAuto* archive, const QString& archiveName, bsa_archive_type_e type) const override; }; } // namespace BsaPacker diff --git a/src/bsapacker/ArchiveBuilderFactory.h b/src/bsapacker/ArchiveBuilderFactory.h index 7828be3..ea34d9e 100644 --- a/src/bsapacker/ArchiveBuilderFactory.h +++ b/src/bsapacker/ArchiveBuilderFactory.h @@ -1,7 +1,7 @@ #ifndef ARCHIVEBUILDERFACTORY_H #define ARCHIVEBUILDERFACTORY_H -#include "bsapacker_global.h" + #include #include #include @@ -10,10 +10,10 @@ namespace BsaPacker { - class BSAPACKER_EXPORT ArchiveBuilderFactory : public IArchiveBuilderFactory + class ArchiveBuilderFactory : public IArchiveBuilderFactory { public: - ArchiveBuilderFactory(const IArchiveBuilderHelper* archiveBuilderHelper); + explicit ArchiveBuilderFactory(const IArchiveBuilderHelper* archiveBuilderHelper); ~ArchiveBuilderFactory() override = default; ArchiveBuilderFactory(const ArchiveBuilderFactory&) = delete; ArchiveBuilderFactory& operator=(const ArchiveBuilderFactory&) = delete; diff --git a/src/bsapacker/ArchiveBuilderHelper.h b/src/bsapacker/ArchiveBuilderHelper.h index 1d1f19b..f70067c 100644 --- a/src/bsapacker/ArchiveBuilderHelper.h +++ b/src/bsapacker/ArchiveBuilderHelper.h @@ -1,27 +1,39 @@ #ifndef ARCHIVEBUILDERHELPER_H #define ARCHIVEBUILDERHELPER_H -#include "bsapacker_global.h" #include #include +#include + #include -#include +#include +#include +#include +#include +#include +#include namespace BsaPacker { - class BSAPACKER_EXPORT ArchiveBuilderHelper : public IArchiveBuilderHelper + class ArchiveBuilderHelper : public IArchiveBuilderHelper { public: ArchiveBuilderHelper(const ISettingsService* settingsService); - [[nodiscard]] bool isFileIgnorable(const std::filesystem::path&, const std::vector&) const override; - [[nodiscard]] bool isIncompressible(const std::filesystem::path&) const override; - [[nodiscard]] bool isExtensionBlacklisted(const std::filesystem::path&) const override; - [[nodiscard]] uint32_t getFileCount(const std::filesystem::path&) const override; - [[nodiscard]] std::vector getRootDirectoryFilenames(const std::filesystem::path&) const override; - [[nodiscard]] bool doesPathContainFiles(const std::filesystem::path&, const std::vector&) const override; + ~ArchiveBuilderHelper() override = default; + ArchiveBuilderHelper(const ArchiveBuilderHelper&) = delete; + ArchiveBuilderHelper& operator=(const ArchiveBuilderHelper&) = delete; + ArchiveBuilderHelper(ArchiveBuilderHelper&&) = delete; + ArchiveBuilderHelper& operator=(ArchiveBuilderHelper&&) = delete; + + [[nodiscard]] bool isFileIgnorable(const QString&, const QStringList&) const override; + [[nodiscard]] bool isIncompressible(const QString&) const override; + [[nodiscard]] bool isExtensionBlacklisted(const QString&) const override; + [[nodiscard]] uint32_t getFileCount(const QDir&) const override; + [[nodiscard]] QStringList getRootDirectoryFilenames(const QDir&) const override; + + const static std::array INCOMPRESSIBLE_TYPES; private: - const static std::array INCOMPRESSIBLE_TYPES; const ISettingsService* m_SettingsService = nullptr; }; } // namespace BsaPacker diff --git a/src/bsapacker/GeneralArchiveBuilder.h b/src/bsapacker/GeneralArchiveBuilder.h index 2f280cc..8784684 100644 --- a/src/bsapacker/GeneralArchiveBuilder.h +++ b/src/bsapacker/GeneralArchiveBuilder.h @@ -1,23 +1,27 @@ #ifndef GENERALARCHIVEBUILDER_H #define GENERALARCHIVEBUILDER_H -#include "bsapacker_global.h" #include #include -#include namespace BsaPacker { - class BSAPACKER_EXPORT GeneralArchiveBuilder : public IArchiveBuilder + class GeneralArchiveBuilder : public IArchiveBuilder { Q_OBJECT Q_INTERFACES(BsaPacker::IEmitsValueChanged) public: - GeneralArchiveBuilder(const IArchiveBuilderHelper* archiveBuilderHelper, const QDir& rootDir, const bsa_archive_type_t& type); + explicit GeneralArchiveBuilder(const IArchiveBuilderHelper* archiveBuilderHelper, const QDir& rootDir); + ~GeneralArchiveBuilder() override = default; + GeneralArchiveBuilder(const GeneralArchiveBuilder&) = delete; + GeneralArchiveBuilder& operator=(const GeneralArchiveBuilder&) = delete; + GeneralArchiveBuilder(GeneralArchiveBuilder&&) = delete; + GeneralArchiveBuilder& operator=(GeneralArchiveBuilder&&) = delete; + uint32_t setFiles() override; void setShareData(bool value) override; - [[nodiscard]] std::unique_ptr getArchive() override; + [[nodiscard]] std::unique_ptr getArchive() override; [[nodiscard]] uint32_t getFileCount() const override; [[nodiscard]] QString getRootPath() const override; @@ -26,7 +30,7 @@ namespace BsaPacker private: const IArchiveBuilderHelper* m_ArchiveBuilderHelper = nullptr; - std::unique_ptr m_Archive; + std::unique_ptr m_Archive; bool m_Cancelled; QDir m_RootDirectory; }; diff --git a/src/bsapacker/IArchiveAutoService.h b/src/bsapacker/IArchiveAutoService.h index 9d413e9..ded4ac4 100644 --- a/src/bsapacker/IArchiveAutoService.h +++ b/src/bsapacker/IArchiveAutoService.h @@ -1,7 +1,7 @@ #ifndef IARCHIVEAUTOSERVICE_H #define IARCHIVEAUTOSERVICE_H -#include +#include #include namespace BsaPacker @@ -10,7 +10,7 @@ namespace BsaPacker { public: virtual ~IArchiveAutoService() = default; - virtual void CreateBSA(libbsarch::bs_archive_auto*, const QString&, bsa_archive_type_e) const = 0; + virtual void CreateBSA(BSArchiveAuto*, const QString&, bsa_archive_type_e) const = 0; }; } diff --git a/src/bsapacker/IArchiveBuilder.h b/src/bsapacker/IArchiveBuilder.h index fc2f81d..5fd1695 100644 --- a/src/bsapacker/IArchiveBuilder.h +++ b/src/bsapacker/IArchiveBuilder.h @@ -2,7 +2,7 @@ #define IARCHIVEBUILDER_H #include -#include +#include namespace BsaPacker { @@ -15,7 +15,7 @@ namespace BsaPacker virtual ~IArchiveBuilder() = default; virtual uint32_t setFiles() = 0; virtual void setShareData(bool) = 0; - [[nodiscard]] virtual std::unique_ptr getArchive() = 0; + [[nodiscard]] virtual std::unique_ptr getArchive() = 0; [[nodiscard]] virtual uint32_t getFileCount() const = 0; [[nodiscard]] virtual QString getRootPath() const = 0; }; diff --git a/src/bsapacker/IArchiveBuilderHelper.h b/src/bsapacker/IArchiveBuilderHelper.h index 3d697c5..4a664e0 100644 --- a/src/bsapacker/IArchiveBuilderHelper.h +++ b/src/bsapacker/IArchiveBuilderHelper.h @@ -1,8 +1,10 @@ #ifndef IARCHIVEBUILDERHELPER_H #define IARCHIVEBUILDERHELPER_H -#include -#include +#include +#include +#include +#include namespace BsaPacker { @@ -10,12 +12,11 @@ namespace BsaPacker { public: virtual ~IArchiveBuilderHelper() = default; - [[nodiscard]] virtual bool isFileIgnorable(const std::filesystem::path&, const std::vector&) const = 0; - [[nodiscard]] virtual bool isIncompressible(const std::filesystem::path&) const = 0; - [[nodiscard]] virtual bool isExtensionBlacklisted(const std::filesystem::path&) const = 0; - [[nodiscard]] virtual uint32_t getFileCount(const std::filesystem::path&) const = 0; - [[nodiscard]] virtual std::vector getRootDirectoryFilenames(const std::filesystem::path&) const = 0; - [[nodiscard]] virtual bool doesPathContainFiles(const std::filesystem::path&, const std::vector&) const = 0; + [[nodiscard]] virtual bool isFileIgnorable(const QString&, const QStringList&) const = 0; + [[nodiscard]] virtual bool isIncompressible(const QString&) const = 0; + [[nodiscard]] virtual bool isExtensionBlacklisted(const QString&) const = 0; + [[nodiscard]] virtual uint32_t getFileCount(const QDir&) const = 0; + [[nodiscard]] virtual QStringList getRootDirectoryFilenames(const QDir&) const = 0; }; } // namespace BsaPacker diff --git a/src/bsapacker/IPackerDialog.h b/src/bsapacker/IPackerDialog.h index b4fc38c..9fa3dfe 100644 --- a/src/bsapacker/IPackerDialog.h +++ b/src/bsapacker/IPackerDialog.h @@ -7,19 +7,24 @@ namespace BsaPacker { - class IPackerDialog + class IPackerDialog : public QDialog { + Q_OBJECT + public: - virtual ~IPackerDialog() = default; + virtual ~IPackerDialog() override = default; [[nodiscard]] virtual bool IsNewFilename() const = 0; [[nodiscard]] virtual QString SelectedMod() const = 0; virtual void RefreshModList() = 0; [[nodiscard]] virtual QString SelectedPluginItem() const = 0; virtual void UpdateNameList(const QString& modName) = 0; virtual void RefreshSelectedName() = 0; - virtual int Exec() = 0; + + public Q_SLOTS: virtual void RefreshOkButton() = 0; }; } // namespace BsaPacker +Q_DECLARE_INTERFACE(BsaPacker::IPackerDialog, "com.MattyFez.BSA_Packer/1.0") + #endif // IPACKERDIALOG_H diff --git a/src/bsapacker/ModDtoFactory.h b/src/bsapacker/ModDtoFactory.h index eb28372..60ee569 100644 --- a/src/bsapacker/ModDtoFactory.h +++ b/src/bsapacker/ModDtoFactory.h @@ -1,20 +1,16 @@ #ifndef MODDTOFACTORY_H #define MODDTOFACTORY_H -#include "bsapacker_global.h" #include #include #include -#include namespace BsaPacker { - class BSAPACKER_EXPORT ModDtoFactory : public IModDtoFactory + class ModDtoFactory : public IModDtoFactory { public: - ModDtoFactory( - const IModContext* modContext, - IPackerDialog* packerDialog); + ModDtoFactory(const IModContext* modContext); ~ModDtoFactory() override = default; [[nodiscard]] std::unique_ptr Create() const override; [[nodiscard]] static QString ArchiveNameValidator( @@ -27,7 +23,6 @@ namespace BsaPacker private: const IModContext* m_ModContext = nullptr; - IPackerDialog* m_PackerDialog = nullptr; }; } // namespace BsaPacker #endif // MODDTOFACTORY_H diff --git a/src/bsapacker/NullArchiveBuilder.h b/src/bsapacker/NullArchiveBuilder.h index ecf023f..838125e 100644 --- a/src/bsapacker/NullArchiveBuilder.h +++ b/src/bsapacker/NullArchiveBuilder.h @@ -16,7 +16,7 @@ namespace BsaPacker uint32_t setFiles() override; void setShareData(bool) override; - [[nodiscard]] std::unique_ptr getArchive() override; + [[nodiscard]] std::unique_ptr getArchive() override; [[nodiscard]] uint32_t getFileCount() const override; [[nodiscard]] QString getRootPath() const override; diff --git a/src/bsapacker/TextureArchiveBuilder.h b/src/bsapacker/TextureArchiveBuilder.h index e5220bb..a485ed3 100644 --- a/src/bsapacker/TextureArchiveBuilder.h +++ b/src/bsapacker/TextureArchiveBuilder.h @@ -1,25 +1,23 @@ #ifndef TEXTUREARCHIVEBUILDER_H #define TEXTUREARCHIVEBUILDER_H -#include "bsapacker_global.h" #include #include -#include namespace BsaPacker { - class BSAPACKER_EXPORT TextureArchiveBuilder : public IArchiveBuilder + class TextureArchiveBuilder : public IArchiveBuilder { Q_OBJECT Q_INTERFACES(BsaPacker::IEmitsValueChanged) public: - TextureArchiveBuilder(const IArchiveBuilderHelper* archiveBuilderHelper, const QDir&, const bsa_archive_type_t& type); + explicit TextureArchiveBuilder(const IArchiveBuilderHelper* archiveBuilderHelper, const QDir&); ~TextureArchiveBuilder() override = default; uint32_t setFiles() override; void setShareData(bool) override; - [[nodiscard]] std::unique_ptr getArchive() override; + [[nodiscard]] std::unique_ptr getArchive() override; [[nodiscard]] uint32_t getFileCount() const override; [[nodiscard]] QString getRootPath() const override; @@ -28,7 +26,7 @@ namespace BsaPacker private: const IArchiveBuilderHelper* m_ArchiveBuilderHelper = nullptr; - std::unique_ptr m_Archive; + std::unique_ptr m_Archive; bool m_Cancelled; QDir m_RootDirectory; diff --git a/src/bsapacker/TexturelessArchiveBuilder.h b/src/bsapacker/TexturelessArchiveBuilder.h index e0fd0b6..cb9ced0 100644 --- a/src/bsapacker/TexturelessArchiveBuilder.h +++ b/src/bsapacker/TexturelessArchiveBuilder.h @@ -1,25 +1,23 @@ #ifndef TEXTURELESSARCHIVEBUILDER_H #define TEXTURELESSARCHIVEBUILDER_H -#include "bsapacker_global.h" #include #include -#include namespace BsaPacker { - class BSAPACKER_EXPORT TexturelessArchiveBuilder : public IArchiveBuilder + class TexturelessArchiveBuilder : public IArchiveBuilder { Q_OBJECT Q_INTERFACES(BsaPacker::IEmitsValueChanged) public: - TexturelessArchiveBuilder(const IArchiveBuilderHelper* archiveBuilderHelper, const QDir& rootDir, const bsa_archive_type_t& type); + explicit TexturelessArchiveBuilder(const IArchiveBuilderHelper* archiveBuilderHelper, const QDir& rootDir); ~TexturelessArchiveBuilder() override = default; uint32_t setFiles() override; void setShareData(bool) override; - [[nodiscard]] std::unique_ptr getArchive() override; + [[nodiscard]] std::unique_ptr getArchive() override; [[nodiscard]] uint32_t getFileCount() const override; [[nodiscard]] QString getRootPath() const override; @@ -28,7 +26,7 @@ namespace BsaPacker private: const IArchiveBuilderHelper* m_ArchiveBuilderHelper = nullptr; - std::unique_ptr m_Archive; + std::unique_ptr m_Archive; bool m_Cancelled; QDir m_RootDirectory; }; diff --git a/src/bsapacker_global.h b/src/bsapacker_global.h deleted file mode 100644 index 3a5de26..0000000 --- a/src/bsapacker_global.h +++ /dev/null @@ -1,7 +0,0 @@ -#include - -#if defined(BSAPACKER_LIBRARY) -# define BSAPACKER_EXPORT Q_DECL_EXPORT -#else -# define BSAPACKER_EXPORT Q_DECL_IMPORT -#endif \ No newline at end of file diff --git a/tests/ArchiveAutoServiceFacts.cpp b/tests/ArchiveAutoServiceFacts.cpp deleted file mode 100644 index bea73b3..0000000 --- a/tests/ArchiveAutoServiceFacts.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include - -using namespace BsaPacker; - -namespace BsaPackerTests -{ - class ArchiveAutoServiceFacts : public ::testing::Test - { - protected: - void SetUp() override { - } - - void TearDown() override { - } - }; - - TEST_F(ArchiveAutoServiceFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW( - auto result = ArchiveAutoService(); - ); - } -} \ No newline at end of file diff --git a/tests/ArchiveBuilderFactoryFacts.cpp b/tests/ArchiveBuilderFactoryFacts.cpp deleted file mode 100644 index 0e34b24..0000000 --- a/tests/ArchiveBuilderFactoryFacts.cpp +++ /dev/null @@ -1,236 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include -#include "MockArchiveBuilderHelper.h" -#include "ModDto.h" -#include "NexusId.h" -#include -#include -#include -#include -#include - -using namespace BsaPacker; -using ::testing::NaggyMock; - -namespace BsaPackerTests -{ - class ArchiveBuilderFactoryFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockArchiveBuilderHelper = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockArchiveBuilderHelper; - } - - NaggyMock* naggyMockArchiveBuilderHelper; - }; - - TEST_F(ArchiveBuilderFactoryFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW( - auto sut = ArchiveBuilderFactory(naggyMockArchiveBuilderHelper); - ); - } - - TEST_F(ArchiveBuilderFactoryFacts, GetArchiveTypes_WhenNexusIdIsMorrowind_ReturnsbaTES3) - { - // Arrange - auto sut = ArchiveBuilderFactory(naggyMockArchiveBuilderHelper); - auto dto = ModDto(NexusId::Morrowind, "", "", ""); - - // Act - auto result = sut.GetArchiveTypes(&dto); - - // Assert - EXPECT_EQ(bsa_archive_type_e::baTES3, result.at(0)); - } - - TEST_F(ArchiveBuilderFactoryFacts, GetArchiveTypes_WhenNexusIdIsOblivion_ReturnsbaTES4) - { - // Arrange - auto sut = ArchiveBuilderFactory(naggyMockArchiveBuilderHelper); - auto dto = ModDto(NexusId::Oblivion, "", "", ""); - - // Act - auto result = sut.GetArchiveTypes(&dto); - - // Assert - EXPECT_EQ(bsa_archive_type_e::baTES4, result.at(0)); - } - - TEST_F(ArchiveBuilderFactoryFacts, GetArchiveTypes_WhenNexusIdIsFallout3_ReturnsbaFO3) - { - // Arrange - auto sut = ArchiveBuilderFactory(naggyMockArchiveBuilderHelper); - auto dto = ModDto(NexusId::Fallout3, "", "", ""); - - // Act - auto result = sut.GetArchiveTypes(&dto); - - // Assert - EXPECT_EQ(bsa_archive_type_e::baFO3, result.at(0)); - } - - TEST_F(ArchiveBuilderFactoryFacts, GetArchiveTypes_WhenNexusIdIsNewVegas_ReturnsbaFO3) - { - // Arrange - auto sut = ArchiveBuilderFactory(naggyMockArchiveBuilderHelper); - auto dto = ModDto(NexusId::NewVegas, "", "", ""); - - // Act - auto result = sut.GetArchiveTypes(&dto); - - // Assert - EXPECT_EQ(bsa_archive_type_e::baFO3, result.at(0)); - } - - TEST_F(ArchiveBuilderFactoryFacts, GetArchiveTypes_WhenNexusIdIsSkyrim_ReturnsbaFO3) - { - // Arrange - auto sut = ArchiveBuilderFactory(naggyMockArchiveBuilderHelper); - auto dto = ModDto(NexusId::Skyrim, "", "", ""); - - // Act - auto result = sut.GetArchiveTypes(&dto); - - // Assert - EXPECT_EQ(bsa_archive_type_e::baFO3, result.at(0)); - } - - TEST_F(ArchiveBuilderFactoryFacts, GetArchiveTypes_WhenNexusIdIsSkyrimSE_ReturnsbaSSE) - { - // Arrange - auto sut = ArchiveBuilderFactory(naggyMockArchiveBuilderHelper); - auto dto = ModDto(NexusId::SkyrimSE, "", "", ""); - - // Act - auto result = sut.GetArchiveTypes(&dto); - - // Assert - EXPECT_EQ(bsa_archive_type_e::baSSE, result.at(0)); - } - - TEST_F(ArchiveBuilderFactoryFacts, GetArchiveTypes_WhenNexusIdIsFallout4_ReturnsbaFO4andbaFO4dds) - { - // Arrange - auto sut = ArchiveBuilderFactory(naggyMockArchiveBuilderHelper); - auto dto = ModDto(NexusId::Fallout4, "", "", ""); - - // Act - auto result = sut.GetArchiveTypes(&dto); - - // Assert - EXPECT_EQ(bsa_archive_type_e::baFO4, result.at(0)); - EXPECT_EQ(bsa_archive_type_e::baFO4dds, result.at(1)); - } - - TEST_F(ArchiveBuilderFactoryFacts, Create_WhenArchiveTypeNone_ReturnsNullArchiveBuilder) - { - // Arrange - auto sut = ArchiveBuilderFactory(naggyMockArchiveBuilderHelper); - auto type = bsa_archive_type_e::baNone; - - // Act - auto returned = sut.Create(type, nullptr); - auto result = returned.get(); - - // Assert - auto resultType = dynamic_cast(result); - EXPECT_STREQ(typeid(NullArchiveBuilder).name(), typeid(*resultType).name()); - } - - TEST_F(ArchiveBuilderFactoryFacts, Create_WhenArchiveTypeTES3_ReturnsGeneralArchiveBuilder) - { - // Arrange - auto sut = ArchiveBuilderFactory(naggyMockArchiveBuilderHelper); - auto type = bsa_archive_type_e::baTES3; - - // Act - auto returned = sut.Create(type, &ModDto(0, "", "", "")); - auto result = returned.get(); - - // Assert - auto resultType = dynamic_cast(result); - EXPECT_STREQ(typeid(GeneralArchiveBuilder).name(), typeid(*resultType).name()); - } - - TEST_F(ArchiveBuilderFactoryFacts, Create_WhenArchiveTypeTES4_ReturnsGeneralArchiveBuilder) - { - // Arrange - auto sut = ArchiveBuilderFactory(naggyMockArchiveBuilderHelper); - auto type = bsa_archive_type_e::baTES4; - - // Act - auto returned = sut.Create(type, &ModDto(0, "", "", "")); - auto result = returned.get(); - - // Assert - auto resultType = dynamic_cast(result); - EXPECT_STREQ(typeid(GeneralArchiveBuilder).name(), typeid(*resultType).name()); - } - - TEST_F(ArchiveBuilderFactoryFacts, Create_WhenArchiveTypeFO3_ReturnsGeneralArchiveBuilder) - { - // Arrange - auto sut = ArchiveBuilderFactory(naggyMockArchiveBuilderHelper); - auto type = bsa_archive_type_e::baFO3; - - // Act - auto returned = sut.Create(type, &ModDto(0, "", "", "")); - auto result = returned.get(); - - // Assert - auto resultType = dynamic_cast(result); - EXPECT_STREQ(typeid(GeneralArchiveBuilder).name(), typeid(*resultType).name()); - } - - TEST_F(ArchiveBuilderFactoryFacts, Create_WhenArchiveTypeSSE_ReturnsGeneralArchiveBuilder) - { - // Arrange - auto sut = ArchiveBuilderFactory(naggyMockArchiveBuilderHelper); - auto type = bsa_archive_type_e::baSSE; - - // Act - auto returned = sut.Create(type, &ModDto(0, "", "", "")); - auto result = returned.get(); - - // Assert - auto resultType = dynamic_cast(result); - EXPECT_STREQ(typeid(GeneralArchiveBuilder).name(), typeid(*resultType).name()); - } - - TEST_F(ArchiveBuilderFactoryFacts, Create_WhenArchiveTypeFO4_ReturnsTexturelessArchiveBuilder) - { - // Arrange - auto sut = ArchiveBuilderFactory(naggyMockArchiveBuilderHelper); - auto type = bsa_archive_type_e::baFO4; - - // Act - auto returned = sut.Create(type, &ModDto(0, "", "", "")); - auto result = returned.get(); - - // Assert - auto resultType = dynamic_cast(result); - EXPECT_STREQ(typeid(TexturelessArchiveBuilder).name(), typeid(*resultType).name()); - } - - TEST_F(ArchiveBuilderFactoryFacts, Create_WhenArchiveTypeFO4dds_ReturnsTextureArchiveBuilder) - { - // Arrange - auto sut = ArchiveBuilderFactory(naggyMockArchiveBuilderHelper); - auto type = bsa_archive_type_e::baFO4dds; - - // Act - auto returned = sut.Create(type, &ModDto(0, "", "", "")); - auto result = returned.get(); - - // Assert - auto resultType = dynamic_cast(result); - EXPECT_STREQ(typeid(TextureArchiveBuilder).name(), typeid(*resultType).name()); - } -} diff --git a/tests/ArchiveBuilderHelperFacts.cpp b/tests/ArchiveBuilderHelperFacts.cpp deleted file mode 100644 index 1cdb090..0000000 --- a/tests/ArchiveBuilderHelperFacts.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include -#include "MockSettingsService.h" - -using namespace BsaPacker; -using std::filesystem::path; -using ::testing::NaggyMock; -using ::testing::Return; - -namespace BsaPackerTests -{ - class ArchiveBuilderHelperFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockSettingsService = new NaggyMock(); - naggyPath = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockSettingsService; - delete naggyPath; - } - - NaggyMock* naggyMockSettingsService; - NaggyMock* naggyPath; - }; - - TEST_F(ArchiveBuilderHelperFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW( - auto result = ArchiveBuilderHelper(naggyMockSettingsService); - ); - } -} \ No newline at end of file diff --git a/tests/ArchiveNameServiceFacts.cpp b/tests/ArchiveNameServiceFacts.cpp deleted file mode 100644 index e2ad697..0000000 --- a/tests/ArchiveNameServiceFacts.cpp +++ /dev/null @@ -1,260 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include "ArchiveNameService.h" -#include "MockModContext.h" -#include "ModDto.h" -#include "NexusId.h" - -using namespace BsaPacker; -using ::testing::NaggyMock; -using ::testing::Eq; -using ::testing::Return; - -namespace BsaPackerTests -{ - class ArchiveNameServiceFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockModContext = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockModContext; - } - - NaggyMock* naggyMockModContext; - }; - - TEST_F(ArchiveNameServiceFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW( - auto result = ArchiveNameService( - naggyMockModContext - ); - ); - } - - TEST_F(ArchiveNameServiceFacts, GetFileExtension_WhenNexusIdIsMorrowind_Returnsbsa) - { - // Arrange - auto sut = ArchiveNameService( - naggyMockModContext); - ON_CALL(*naggyMockModContext, GetNexusId()) - .WillByDefault(Return(NexusId::Morrowind)); - - // Act - auto result = sut.GetFileExtension(); - - // Assert - EXPECT_EQ(".bsa", result.toStdString()); - } - - TEST_F(ArchiveNameServiceFacts, GetFileExtension_WhenNexusIdIsOblivion_Returnsbsa) - { - // Arrange - auto sut = ArchiveNameService( - naggyMockModContext); - ON_CALL(*naggyMockModContext, GetNexusId()) - .WillByDefault(Return(NexusId::Oblivion)); - - // Act - auto result = sut.GetFileExtension(); - - // Assert - EXPECT_EQ(".bsa", result.toStdString()); - } - - TEST_F(ArchiveNameServiceFacts, GetFileExtension_WhenNexusIdIsFallout3_Returnsbsa) - { - // Arrange - auto sut = ArchiveNameService( - naggyMockModContext); - ON_CALL(*naggyMockModContext, GetNexusId()) - .WillByDefault(Return(NexusId::Fallout3)); - - // Act - auto result = sut.GetFileExtension(); - - // Assert - EXPECT_EQ(".bsa", result.toStdString()); - } - - TEST_F(ArchiveNameServiceFacts, GetFileExtension_WhenNexusIdIsNewVegas_Returnsbsa) - { - // Arrange - auto sut = ArchiveNameService( - naggyMockModContext); - ON_CALL(*naggyMockModContext, GetNexusId()) - .WillByDefault(Return(NexusId::NewVegas)); - - // Act - auto result = sut.GetFileExtension(); - - // Assert - EXPECT_EQ(".bsa", result.toStdString()); - } - - TEST_F(ArchiveNameServiceFacts, GetFileExtension_WhenNexusIdIsSkyrim_Returnsbsa) - { - // Arrange - auto sut = ArchiveNameService( - naggyMockModContext); - ON_CALL(*naggyMockModContext, GetNexusId()) - .WillByDefault(Return(NexusId::Skyrim)); - - // Act - auto result = sut.GetFileExtension(); - - // Assert - EXPECT_EQ(".bsa", result.toStdString()); - } - - TEST_F(ArchiveNameServiceFacts, GetFileExtension_WhenNexusIdIsSkyrimSE_Returnsbsa) - { - // Arrange - auto sut = ArchiveNameService( - naggyMockModContext); - ON_CALL(*naggyMockModContext, GetNexusId()) - .WillByDefault(Return(NexusId::SkyrimSE)); - - // Act - auto result = sut.GetFileExtension(); - - // Assert - EXPECT_EQ(".bsa", result.toStdString()); - } - - TEST_F(ArchiveNameServiceFacts, GetFileExtension_WhenNexusIdIsFallout4_Returnsbsa) - { - // Arrange - auto sut = ArchiveNameService( - naggyMockModContext); - ON_CALL(*naggyMockModContext, GetNexusId()) - .WillByDefault(Return(NexusId::Fallout4)); - - // Act - auto result = sut.GetFileExtension(); - - // Assert - EXPECT_EQ(".ba2", result.toStdString()); - } - - TEST_F(ArchiveNameServiceFacts, GetFileExtension_InvalidNexusId_Returnsbsa) - { - // Arrange - auto sut = ArchiveNameService( - naggyMockModContext); - ON_CALL(*naggyMockModContext, GetNexusId()) - .WillByDefault(Return(0)); - - // Act - auto result = sut.GetFileExtension(); - - // Assert - EXPECT_EQ("", result.toStdString()); - } - - TEST_F(ArchiveNameServiceFacts, GetArchiveFullPath_WhenTypeIsbaFO4_ReturnsFullPathWithMainInfix) - { - // Arrange - auto sut = ArchiveNameService( - naggyMockModContext); - auto type = bsa_archive_type_e::baFO4; - auto dto = ModDto(0, "C:/directory", "archive", ".ba2"); - ON_CALL(*naggyMockModContext, GetNexusId()) - .WillByDefault(Return(NexusId::Fallout4)); - - // Act - auto result = sut.GetArchiveFullPath(type, &dto); - - // Assert - EXPECT_EQ("C:/directory/archive - Main.ba2", result.toStdString()); - } - - TEST_F(ArchiveNameServiceFacts, GetArchiveFullPath_WhenTypeIsbaFO4dds_ReturnsFullPathWithTextureInfix) - { - // Arrange - auto sut = ArchiveNameService( - naggyMockModContext); - auto type = bsa_archive_type_e::baFO4dds; - auto dto = ModDto(0, "C:/directory", "archive", ".ba2"); - ON_CALL(*naggyMockModContext, GetNexusId()) - .WillByDefault(Return(NexusId::Fallout4)); - - // Act - auto result = sut.GetArchiveFullPath(type, &dto); - - // Assert - EXPECT_EQ("C:/directory/archive - Textures.ba2", result.toStdString()); - } - - TEST_F(ArchiveNameServiceFacts, GetArchiveFullPath_WhenTypeIsbaTES3_ReturnsFullPathWithoutInfix) - { - // Arrange - auto sut = ArchiveNameService( - naggyMockModContext); - auto type = bsa_archive_type_e::baTES3; - auto dto = ModDto(0, "C:/directory", "archive", ".ba2"); - ON_CALL(*naggyMockModContext, GetNexusId()) - .WillByDefault(Return(NexusId::Morrowind)); - - // Act - auto result = sut.GetArchiveFullPath(type, &dto); - - // Assert - EXPECT_EQ("C:/directory/archive.bsa", result.toStdString()); - } - - TEST_F(ArchiveNameServiceFacts, GetArchiveFullPath_WhenTypeIsbaTES4_ReturnsFullPathWithoutInfix) - { - // Arrange - auto sut = ArchiveNameService( - naggyMockModContext); - auto type = bsa_archive_type_e::baTES3; - auto dto = ModDto(0, "C:/directory", "archive", ".ba2"); - ON_CALL(*naggyMockModContext, GetNexusId()) - .WillByDefault(Return(NexusId::Oblivion)); - - // Act - auto result = sut.GetArchiveFullPath(type, &dto); - - // Assert - EXPECT_EQ("C:/directory/archive.bsa", result.toStdString()); - } - - TEST_F(ArchiveNameServiceFacts, GetArchiveFullPath_WhenTypeIsbaFO3_ReturnsFullPathWithoutInfix) - { - // Arrange - auto sut = ArchiveNameService( - naggyMockModContext); - auto type = bsa_archive_type_e::baFO3; - auto dto = ModDto(0, "C:/directory", "archive", ".ba2"); - ON_CALL(*naggyMockModContext, GetNexusId()) - .WillByDefault(Return(NexusId::Fallout3)); - - // Act - auto result = sut.GetArchiveFullPath(type, &dto); - - // Assert - EXPECT_EQ("C:/directory/archive.bsa", result.toStdString()); - } - - TEST_F(ArchiveNameServiceFacts, GetArchiveFullPath_WhenTypeIsbaSSE_ReturnsFullPathWithoutInfix) - { - // Arrange - auto sut = ArchiveNameService( - naggyMockModContext); - auto type = bsa_archive_type_e::baSSE; - auto dto = ModDto(0, "C:/directory", "archive", ".ba2"); - ON_CALL(*naggyMockModContext, GetNexusId()) - .WillByDefault(Return(NexusId::SkyrimSE)); - - // Act - auto result = sut.GetArchiveFullPath(type, &dto); - - // Assert - EXPECT_EQ("C:/directory/archive.bsa", result.toStdString()); - } -} \ No newline at end of file diff --git a/tests/BsaPackerFacts.cpp b/tests/BsaPackerFacts.cpp deleted file mode 100644 index 2c64070..0000000 --- a/tests/BsaPackerFacts.cpp +++ /dev/null @@ -1,63 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include "BsaPacker.h" -#include "MockOrganizer.h" - -using namespace BsaPacker; -using ::testing::NaggyMock; -using ::testing::Return; -using ::testing::Eq; - -namespace BsaPackerTests -{ - class BsaPackerFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockOrganizer = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockOrganizer; - } - - NaggyMock* naggyMockOrganizer; - }; - - TEST_F(BsaPackerFacts, CtorAndInit_Always_Constructs) - { - auto result = Bsa_Packer(); - EXPECT_NO_THROW(result.init(naggyMockOrganizer)); - } - - TEST_F(BsaPackerFacts, IsActive_WhenPluginEnabled_ReturnsTrue) - { - // Arrange - Bsa_Packer sut; - ON_CALL(*naggyMockOrganizer, pluginSetting(Eq("BSA Packer"), Eq(QStringLiteral("enabled")))) - .WillByDefault(Return(true)); - sut.init(naggyMockOrganizer); - - // Act - auto result = sut.isActive(); - - // Assert - EXPECT_TRUE(result); - } - - TEST_F(BsaPackerFacts, IsActive_WhenPluginDisabled_ReturnsFalse) - { - // Arrange - Bsa_Packer sut; - ON_CALL(*naggyMockOrganizer, pluginSetting(Eq("BSA Packer"), Eq("enabled"))) - .WillByDefault(Return(false)); - sut.init(naggyMockOrganizer); - - // Act - auto result = sut.isActive(); - - // Assert - EXPECT_FALSE(result); - } -} diff --git a/tests/BsaPackerWorkerFacts.cpp b/tests/BsaPackerWorkerFacts.cpp deleted file mode 100644 index 718af5b..0000000 --- a/tests/BsaPackerWorkerFacts.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include "BsaPackerWorker.h" -#include "MockSettingsService.h" -#include "MockModDtoFactory.h" -#include "MockArchiveBuilderFactory.h" -#include "MockDummyPluginServiceFactory.h" -#include "MockArchiveAutoService.h" -#include "MockHideLooseAssetService.h" -#include "MockArchiveNameService.h" - -using namespace BsaPacker; -using ::testing::NaggyMock; - -namespace BsaPackerTests -{ - class BsaPackerWorkerFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockSettingsService = new NaggyMock(); - naggyMockModDtoFactory = new NaggyMock(); - naggyMockArchiveBuilderFactory = new NaggyMock(); - naggyMockArchiveAutoService = new NaggyMock(); - naggyMockDummyPluginServiceFactory = new NaggyMock(); - naggyMockHideLooseAssetService = new NaggyMock(); - naggyMockArchiveNameService = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockSettingsService; - delete naggyMockModDtoFactory; - delete naggyMockArchiveBuilderFactory; - delete naggyMockArchiveAutoService; - delete naggyMockDummyPluginServiceFactory; - delete naggyMockHideLooseAssetService; - delete naggyMockArchiveNameService; - } - - NaggyMock* naggyMockSettingsService; - NaggyMock* naggyMockModDtoFactory; - NaggyMock* naggyMockArchiveBuilderFactory; - NaggyMock* naggyMockArchiveAutoService; - NaggyMock* naggyMockDummyPluginServiceFactory; - NaggyMock* naggyMockHideLooseAssetService; - NaggyMock* naggyMockArchiveNameService; - }; - - TEST_F(BsaPackerWorkerFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW(BsaPackerWorker( - naggyMockSettingsService, - naggyMockModDtoFactory, - naggyMockArchiveBuilderFactory, - naggyMockArchiveAutoService, - naggyMockDummyPluginServiceFactory, - naggyMockHideLooseAssetService, - naggyMockArchiveNameService)); - } -} diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt deleted file mode 100644 index f4b9970..0000000 --- a/tests/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -cmake_minimum_required(VERSION 3.16) - -if(DEFINED DEPENDENCIES_DIR) - include(${DEPENDENCIES_DIR}/modorganizer_super/cmake_common/src.cmake) -else() - include(../../cmake_common/src.cmake) -endif() \ No newline at end of file diff --git a/tests/DummyPluginServiceFactoryFacts.cpp b/tests/DummyPluginServiceFactoryFacts.cpp deleted file mode 100644 index 413dcc5..0000000 --- a/tests/DummyPluginServiceFactoryFacts.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include "DummyPluginServiceFactory.h" -#include "MockModContext.h" -#include "MockFileWriterService.h" -#include "MockDummyPluginLogic.h" - -using namespace BsaPacker; -using ::testing::NaggyMock; - -namespace BsaPackerTests -{ - class DummyPluginServiceFactoryFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockModContext = new NaggyMock(); - naggyMockFileWriterService = new NaggyMock(); - naggyMockDummyPluginLogic = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockModContext; - delete naggyMockFileWriterService; - delete naggyMockDummyPluginLogic; - } - - NaggyMock* naggyMockModContext; - NaggyMock* naggyMockFileWriterService; - NaggyMock* naggyMockDummyPluginLogic; - }; - - TEST_F(DummyPluginServiceFactoryFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW( - auto result = DummyPluginServiceFactory( - naggyMockModContext, - naggyMockFileWriterService, - naggyMockDummyPluginLogic - ); - ); - } -} \ No newline at end of file diff --git a/tests/Fallout3DummyPluginServiceFacts.cpp b/tests/Fallout3DummyPluginServiceFacts.cpp deleted file mode 100644 index dc946ec..0000000 --- a/tests/Fallout3DummyPluginServiceFacts.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include "Fallout3DummyPluginService.h" -#include "MockFileWriterService.h" -#include "MockDummyPluginLogic.h" - -using namespace BsaPacker; -using ::testing::NaggyMock; - -namespace BsaPackerTests -{ - class Fallout3DummyPluginServiceFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockFileWriterService = new NaggyMock(); - naggyMockDummyPluginLogic = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockFileWriterService; - delete naggyMockDummyPluginLogic; - } - - NaggyMock* naggyMockFileWriterService; - NaggyMock* naggyMockDummyPluginLogic; - }; - - TEST_F(Fallout3DummyPluginServiceFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW( - auto result = Fallout3DummyPluginService( - naggyMockFileWriterService, - naggyMockDummyPluginLogic - ); - ); - } -} \ No newline at end of file diff --git a/tests/Fallout4DummyPluginServiceFacts.cpp b/tests/Fallout4DummyPluginServiceFacts.cpp deleted file mode 100644 index ff7a91c..0000000 --- a/tests/Fallout4DummyPluginServiceFacts.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include "Fallout4DummyPluginService.h" -#include "MockFileWriterService.h" -#include "MockDummyPluginLogic.h" - -using namespace BsaPacker; -using ::testing::NaggyMock; - -namespace BsaPackerTests -{ - class Fallout4DummyPluginServiceFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockFileWriterService = new NaggyMock(); - naggyMockDummyPluginLogic = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockFileWriterService; - delete naggyMockDummyPluginLogic; - } - - NaggyMock* naggyMockFileWriterService; - NaggyMock* naggyMockDummyPluginLogic; - }; - - TEST_F(Fallout4DummyPluginServiceFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW( - auto result = Fallout4DummyPluginService( - naggyMockFileWriterService, - naggyMockDummyPluginLogic - ); - ); - } -} \ No newline at end of file diff --git a/tests/FileWriterServiceFacts.cpp b/tests/FileWriterServiceFacts.cpp deleted file mode 100644 index 23267c3..0000000 --- a/tests/FileWriterServiceFacts.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include "FileWriterService.h" - -using namespace BsaPacker; - -namespace BsaPackerTests -{ - class FileWriterServiceFacts : public ::testing::Test - { - protected: - void SetUp() override { - } - - void TearDown() override { - } - }; - - TEST_F(FileWriterServiceFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW( - auto result = FileWriterService(); - ); - } -} \ No newline at end of file diff --git a/tests/GeneralArchiveBuilderFacts.cpp b/tests/GeneralArchiveBuilderFacts.cpp deleted file mode 100644 index faaf82c..0000000 --- a/tests/GeneralArchiveBuilderFacts.cpp +++ /dev/null @@ -1,35 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include -#include "MockArchiveBuilderHelper.h" - -using namespace BsaPacker; -using ::testing::NaggyMock; - -namespace BsaPackerTests -{ - class GeneralArchiveBuilderFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockArchiveBuilderHelper = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockArchiveBuilderHelper; - } - - NaggyMock* naggyMockArchiveBuilderHelper; - }; - - TEST_F(GeneralArchiveBuilderFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW( - auto result = GeneralArchiveBuilder( - naggyMockArchiveBuilderHelper, - QDir(), - baNone); - ); - } -} \ No newline at end of file diff --git a/tests/HideLooseAssetServiceFacts.cpp b/tests/HideLooseAssetServiceFacts.cpp deleted file mode 100644 index 05f9a0d..0000000 --- a/tests/HideLooseAssetServiceFacts.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include "HideLooseAssetService.h" -#include "MockSettingsService.h" - -using namespace BsaPacker; -using ::testing::NaggyMock; - -namespace BsaPackerTests -{ - class HideLooseAssetServiceFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockSettingsService = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockSettingsService; - } - - NaggyMock* naggyMockSettingsService; - }; - - TEST_F(HideLooseAssetServiceFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW( - auto result = HideLooseAssetService( - naggyMockSettingsService); - ); - } -} \ No newline at end of file diff --git a/tests/MockArchiveAutoService.h b/tests/MockArchiveAutoService.h deleted file mode 100644 index cf6eaf8..0000000 --- a/tests/MockArchiveAutoService.h +++ /dev/null @@ -1,10 +0,0 @@ -#include -#include - -using namespace BsaPacker; - -class MockArchiveAutoService : public IArchiveAutoService -{ -public: - MOCK_METHOD(void, CreateBSA, (libbsarch::bs_archive_auto*, const QString&, bsa_archive_type_e), (const, override)); -}; \ No newline at end of file diff --git a/tests/MockArchiveBuilderFactory.h b/tests/MockArchiveBuilderFactory.h deleted file mode 100644 index 82520de..0000000 --- a/tests/MockArchiveBuilderFactory.h +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include - -using namespace BsaPacker; - -class MockArchiveBuilderFactory : public IArchiveBuilderFactory -{ -public: - MOCK_METHOD(std::vector, GetArchiveTypes, (const IModDto*), (const, override)); - MOCK_METHOD(std::unique_ptr, Create, (bsa_archive_type_e, const IModDto*), (const, override)); -}; \ No newline at end of file diff --git a/tests/MockArchiveBuilderHelper.h b/tests/MockArchiveBuilderHelper.h deleted file mode 100644 index ef24f20..0000000 --- a/tests/MockArchiveBuilderHelper.h +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include - -using namespace BsaPacker; - -class MockArchiveBuilderHelper : public IArchiveBuilderHelper -{ -public: - MOCK_METHOD(bool, isFileIgnorable, (const std::filesystem::path&, const std::vector&), (const, override)); - MOCK_METHOD(bool, isIncompressible, (const std::filesystem::path&), (const, override)); - MOCK_METHOD(bool, isExtensionBlacklisted, (const std::filesystem::path&), (const, override)); - MOCK_METHOD(uint32_t, getFileCount, (const std::filesystem::path&), (const, override)); - MOCK_METHOD(std::vector, getRootDirectoryFilenames, (const std::filesystem::path&), (const, override)); - MOCK_METHOD(bool, doesPathContainFiles, (const std::filesystem::path&, const std::vector&), (const, override)); -}; \ No newline at end of file diff --git a/tests/MockArchiveNameService.h b/tests/MockArchiveNameService.h deleted file mode 100644 index 6d8e405..0000000 --- a/tests/MockArchiveNameService.h +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include - -using namespace BsaPacker; - -class MockArchiveNameService : public IArchiveNameService -{ -public: - MOCK_METHOD(QString, GetFileExtension, (), (const, override)); - MOCK_METHOD(QString, GetArchiveFullPath, (bsa_archive_type_e, const IModDto*), (const, override)); -}; \ No newline at end of file diff --git a/tests/MockDummyPluginLogic.h b/tests/MockDummyPluginLogic.h deleted file mode 100644 index 26edf5f..0000000 --- a/tests/MockDummyPluginLogic.h +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include "gmock/gmock.h" - -using namespace BsaPacker; - -class MockDummyPluginLogic : public IDummyPluginLogic -{ -public: - MOCK_METHOD(bool, canCreateDummyESP, (const QString& fileNameNoExtension), (const, override)); - MOCK_METHOD(bool, canCreateDummyESL, (const QString& fileNameNoExtension), (const, override)); -}; \ No newline at end of file diff --git a/tests/MockDummyPluginServiceFactory.h b/tests/MockDummyPluginServiceFactory.h deleted file mode 100644 index c5fc8fe..0000000 --- a/tests/MockDummyPluginServiceFactory.h +++ /dev/null @@ -1,10 +0,0 @@ -#include -#include - -using namespace BsaPacker; - -class MockDummyPluginServiceFactory : public IDummyPluginServiceFactory -{ -public: - MOCK_METHOD(std::unique_ptr, Create, (), (const, override)); -}; \ No newline at end of file diff --git a/tests/MockFileWriterService.h b/tests/MockFileWriterService.h deleted file mode 100644 index ab1bc33..0000000 --- a/tests/MockFileWriterService.h +++ /dev/null @@ -1,10 +0,0 @@ -#include -#include "gmock/gmock.h" - -using namespace BsaPacker; - -class MockFileWriterService : public IFileWriterService -{ -public: - MOCK_METHOD(bool, Write, (const std::string&, const char*, uint32_t), (const, override)); -}; \ No newline at end of file diff --git a/tests/MockHideLooseAssetService.h b/tests/MockHideLooseAssetService.h deleted file mode 100644 index acb678d..0000000 --- a/tests/MockHideLooseAssetService.h +++ /dev/null @@ -1,10 +0,0 @@ -#include -#include - -using namespace BsaPacker; - -class MockHideLooseAssetService : public IHideLooseAssetService -{ -public: - MOCK_METHOD(bool, HideLooseAssets, (const QDir&), (const, override)); -}; \ No newline at end of file diff --git a/tests/MockModContext.h b/tests/MockModContext.h deleted file mode 100644 index e2a53b2..0000000 --- a/tests/MockModContext.h +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include - -using namespace BsaPacker; - -class MockModContext : public IModContext -{ -public: - MOCK_METHOD(QString, GetAbsoluteModPath, (const QString& modName), (const, override)); - MOCK_METHOD(int, GetNexusId, (), (const, override)); - MOCK_METHOD(QStringList, GetPlugins, (const QDir& modDirectory), (const, override)); - MOCK_METHOD(QStringList, GetValidMods, (), (const, override)); -}; \ No newline at end of file diff --git a/tests/MockModDtoFactory.h b/tests/MockModDtoFactory.h deleted file mode 100644 index 103d692..0000000 --- a/tests/MockModDtoFactory.h +++ /dev/null @@ -1,10 +0,0 @@ -#include -#include - -using namespace BsaPacker; - -class MockModDtoFactory : public IModDtoFactory -{ -public: - MOCK_METHOD(std::unique_ptr, Create, (), (const)); -}; \ No newline at end of file diff --git a/tests/MockOrganizer.h b/tests/MockOrganizer.h deleted file mode 100644 index 51b42ab..0000000 --- a/tests/MockOrganizer.h +++ /dev/null @@ -1,45 +0,0 @@ -#include "imoinfo.h" -#include - -using namespace MOBase; - -class MockOrganizer : public IOrganizer -{ -public: - MOCK_METHOD(IModRepositoryBridge*, createNexusBridge, (), (const, override)); - MOCK_METHOD(QString, profileName, (), (const, override)); - MOCK_METHOD(QString, profilePath, (), (const, override)); - MOCK_METHOD(QString, downloadsPath, (), (const, override)); - MOCK_METHOD(QString, overwritePath, (), (const, override)); - MOCK_METHOD(QString, basePath, (), (const, override)); - MOCK_METHOD(QString, modsPath, (), (const, override)); - MOCK_METHOD(VersionInfo, appVersion, (), (const, override)); - MOCK_METHOD(IModInterface*, getMod, (const QString &name), (const, override)); - MOCK_METHOD(IModInterface*, createMod, (GuessedValue &name), (override)); - MOCK_METHOD(IPluginGame*, getGame, (const QString &gameName), (const, override)); - MOCK_METHOD(bool, removeMod, (IModInterface *mod), (override)); - MOCK_METHOD(void, modDataChanged, (IModInterface *mod), (override)); - MOCK_METHOD(QVariant, pluginSetting, (const QString &pluginName, const QString &key), (const, override)); - MOCK_METHOD(void, setPluginSetting, (const QString &pluginName, const QString &key, const QVariant &value), (override)); - MOCK_METHOD(QVariant, persistent, (const QString &pluginName, const QString &key, const QVariant &def), (const, override)); - MOCK_METHOD(void, setPersistent, (const QString &pluginName, const QString &key, const QVariant &value, bool sync), (override)); - MOCK_METHOD(QString, pluginDataPath, (), (const, override)); - MOCK_METHOD(IModInterface*, installMod, (const QString &fileName, const QString &nameSuggestion), (override)); - MOCK_METHOD(QString, resolvePath, (const QString &fileName), (const, override)); - MOCK_METHOD(QStringList, listDirectories, (const QString &directoryName), (const, override)); - MOCK_METHOD(QStringList, findFiles, (const QString &path, const std::function &filter), (const, override)); - MOCK_METHOD(QStringList, getFileOrigins, (const QString &fileName) ,(const, override)); - MOCK_METHOD(QList, findFileInfos, (const QString &path, const std::function &filter), (const, override)); - MOCK_METHOD(MOBase::IDownloadManager*, downloadManager, (), (const, override)); - MOCK_METHOD(MOBase::IPluginList*, pluginList, (), (const, override)); - MOCK_METHOD(MOBase::IModList*, modList, (), (const, override)); - MOCK_METHOD(MOBase::IProfile*, profile, (), (const, override)); - MOCK_METHOD(HANDLE, startApplication, (const QString &executable, const QStringList &args, const QString &cwd, const QString &profile, const QString &forcedCustomOverwrite, bool ignoreCustomOverwrite), (override)); - MOCK_METHOD(bool, waitForApplication, (HANDLE handle, LPDWORD exitCode), (const, override)); - MOCK_METHOD(bool, onModInstalled, (const std::function &func), (override)); - MOCK_METHOD(bool, onAboutToRun, (const std::function &func), (override)); - MOCK_METHOD(bool, onFinishedRun, (const std::function &func), (override)); - MOCK_METHOD(void, refreshModList,(bool saveChanges), (override)); - MOCK_METHOD(MOBase::IPluginGame const *, managedGame, (), (const, override)); - MOCK_METHOD(QStringList, modsSortedByProfilePriority, (), (const, override)); -}; \ No newline at end of file diff --git a/tests/MockPackerDialog.h b/tests/MockPackerDialog.h deleted file mode 100644 index 867eedc..0000000 --- a/tests/MockPackerDialog.h +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace BsaPacker; - -class MockPackerDialog : public IPackerDialog -{ -public: - MOCK_METHOD(bool, IsNewFilename, (), (const, override)); - MOCK_METHOD(QString, SelectedMod, (), (const, override)); - MOCK_METHOD(void, RefreshModList, (), (override)); - MOCK_METHOD(QString, SelectedPluginItem, (), (const, override)); - MOCK_METHOD(void, UpdateNameList, (const QString&), (override)); - MOCK_METHOD(void, RefreshSelectedName, (), (override)); - MOCK_METHOD(int, Exec, (), (override)); - MOCK_METHOD(void, RefreshOkButton, (), (override)); -}; \ No newline at end of file diff --git a/tests/MockSettingsService.h b/tests/MockSettingsService.h deleted file mode 100644 index 1ee5ff6..0000000 --- a/tests/MockSettingsService.h +++ /dev/null @@ -1,10 +0,0 @@ -#include -#include - -using namespace BsaPacker; - -class MockSettingsService : public ISettingsService -{ -public: - MOCK_METHOD(QVariant, GetPluginSetting, (const QString&), (const, override)); -}; \ No newline at end of file diff --git a/tests/ModContextFacts.cpp b/tests/ModContextFacts.cpp deleted file mode 100644 index 982effd..0000000 --- a/tests/ModContextFacts.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include "ModContext.h" -#include "MockOrganizer.h" - -using namespace BsaPacker; -using ::testing::NaggyMock; - -namespace BsaPackerTests -{ - class ModContextFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockOrganizer = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockOrganizer; - } - - NaggyMock* naggyMockOrganizer; - }; - - TEST_F(ModContextFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW( - auto result = ModContext( - naggyMockOrganizer); - ); - } -} \ No newline at end of file diff --git a/tests/ModDtoFactoryFacts.cpp b/tests/ModDtoFactoryFacts.cpp deleted file mode 100644 index c3367bb..0000000 --- a/tests/ModDtoFactoryFacts.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include -#include "MockModContext.h" -#include "MockPackerDialog.h" - -using namespace BsaPacker; -using ::testing::NaggyMock; -using ::testing::Return; - -namespace BsaPackerTests -{ - class ModDtoFactoryFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockModContext = new NaggyMock(); - naggyMockPackerDialog = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockModContext; - delete naggyMockPackerDialog; - } - - NaggyMock* naggyMockModContext; - NaggyMock* naggyMockPackerDialog; - }; - - TEST_F(ModDtoFactoryFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW(ModDtoFactory( - naggyMockModContext, - naggyMockPackerDialog)); - } - - TEST_F(ModDtoFactoryFacts, Create_WhenGameIsNewVegas_ReturnsNewVegasIdInDto) - { - // Arrange - auto sut = ModDtoFactory( - naggyMockModContext, - naggyMockPackerDialog); - ON_CALL(*naggyMockModContext, GetNexusId()) - .WillByDefault(Return(1)); - ON_CALL(*naggyMockPackerDialog, Exec()) - .WillByDefault(Return(QDialog::DialogCode::Accepted)); - - auto result = sut.Create(); - - EXPECT_EQ(1, result->NexusId()); - } -} \ No newline at end of file diff --git a/tests/NewVegasDummyPluginServiceFacts.cpp b/tests/NewVegasDummyPluginServiceFacts.cpp deleted file mode 100644 index ca9c2d3..0000000 --- a/tests/NewVegasDummyPluginServiceFacts.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include "NewVegasDummyPluginService.h" -#include "MockFileWriterService.h" -#include "MockDummyPluginLogic.h" - -using namespace BsaPacker; -using ::testing::NaggyMock; - -namespace BsaPackerTests -{ - class NewVegasDummyPluginServiceFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockFileWriterService = new NaggyMock(); - naggyMockDummyPluginLogic = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockFileWriterService; - delete naggyMockDummyPluginLogic; - } - - NaggyMock* naggyMockFileWriterService; - NaggyMock* naggyMockDummyPluginLogic; - }; - - TEST_F(NewVegasDummyPluginServiceFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW( - auto result = NewVegasDummyPluginService( - naggyMockFileWriterService, - naggyMockDummyPluginLogic - ); - ); - } -} \ No newline at end of file diff --git a/tests/OblivionDummyPluginServiceFacts.cpp b/tests/OblivionDummyPluginServiceFacts.cpp deleted file mode 100644 index fc6396b..0000000 --- a/tests/OblivionDummyPluginServiceFacts.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include "OblivionDummyPluginService.h" -#include "MockFileWriterService.h" -#include "MockDummyPluginLogic.h" - -using namespace BsaPacker; -using ::testing::NaggyMock; - -namespace BsaPackerTests -{ - class OblivionDummyPluginServiceFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockFileWriterService = new NaggyMock(); - naggyMockDummyPluginLogic = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockFileWriterService; - delete naggyMockDummyPluginLogic; - } - - NaggyMock* naggyMockFileWriterService; - NaggyMock* naggyMockDummyPluginLogic; - }; - - TEST_F(OblivionDummyPluginServiceFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW( - auto result = OblivionDummyPluginService( - naggyMockFileWriterService, - naggyMockDummyPluginLogic - ); - ); - } -} \ No newline at end of file diff --git a/tests/SkyrimDummyPluginServiceFacts.cpp b/tests/SkyrimDummyPluginServiceFacts.cpp deleted file mode 100644 index a4ea2b0..0000000 --- a/tests/SkyrimDummyPluginServiceFacts.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include "SkyrimDummyPluginService.h" -#include "MockFileWriterService.h" -#include "MockDummyPluginLogic.h" - -using namespace BsaPacker; -using ::testing::NaggyMock; - -namespace BsaPackerTests -{ - class SkyrimDummyPluginServiceFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockFileWriterService = new NaggyMock(); - naggyMockDummyPluginLogic = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockFileWriterService; - delete naggyMockDummyPluginLogic; - } - - NaggyMock* naggyMockFileWriterService; - NaggyMock* naggyMockDummyPluginLogic; - }; - - TEST_F(SkyrimDummyPluginServiceFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW( - auto result = SkyrimDummyPluginService( - naggyMockFileWriterService, - naggyMockDummyPluginLogic - ); - ); - } -} \ No newline at end of file diff --git a/tests/SkyrimSEDummyPluginServiceFacts.cpp b/tests/SkyrimSEDummyPluginServiceFacts.cpp deleted file mode 100644 index d1bcc9a..0000000 --- a/tests/SkyrimSEDummyPluginServiceFacts.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include "SkyrimSEDummyPluginService.h" -#include "MockFileWriterService.h" -#include "MockDummyPluginLogic.h" - -using namespace BsaPacker; -using ::testing::NaggyMock; - -namespace BsaPackerTests -{ - class SkyrimSEDummyPluginServiceFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockFileWriterService = new NaggyMock(); - naggyMockDummyPluginLogic = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockFileWriterService; - delete naggyMockDummyPluginLogic; - } - - NaggyMock* naggyMockFileWriterService; - NaggyMock* naggyMockDummyPluginLogic; - }; - - TEST_F(SkyrimSEDummyPluginServiceFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW( - auto result = SkyrimSEDummyPluginService( - naggyMockFileWriterService, - naggyMockDummyPluginLogic - ); - ); - } -} \ No newline at end of file diff --git a/tests/TextureArchiveBuilderFacts.cpp b/tests/TextureArchiveBuilderFacts.cpp deleted file mode 100644 index 11eb961..0000000 --- a/tests/TextureArchiveBuilderFacts.cpp +++ /dev/null @@ -1,35 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include -#include "MockArchiveBuilderHelper.h" - -using namespace BsaPacker; -using ::testing::NaggyMock; - -namespace BsaPackerTests -{ - class TextureArchiveBuilderFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockArchiveBuilderHelper = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockArchiveBuilderHelper; - } - - NaggyMock* naggyMockArchiveBuilderHelper; - }; - - TEST_F(TextureArchiveBuilderFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW( - auto result = TextureArchiveBuilder( - naggyMockArchiveBuilderHelper, - QDir(), - baNone); - ); - } -} \ No newline at end of file diff --git a/tests/TexturelessArchiveBuilderFacts.cpp b/tests/TexturelessArchiveBuilderFacts.cpp deleted file mode 100644 index 52ab12f..0000000 --- a/tests/TexturelessArchiveBuilderFacts.cpp +++ /dev/null @@ -1,35 +0,0 @@ -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include -#include "MockArchiveBuilderHelper.h" - -using namespace BsaPacker; -using ::testing::NaggyMock; - -namespace BsaPackerTests -{ - class TexturelessArchiveBuilderFacts : public ::testing::Test - { - protected: - void SetUp() override { - naggyMockArchiveBuilderHelper = new NaggyMock(); - } - - void TearDown() override { - delete naggyMockArchiveBuilderHelper; - } - - NaggyMock* naggyMockArchiveBuilderHelper; - }; - - TEST_F(TexturelessArchiveBuilderFacts, Ctor_Always_Constructs) - { - EXPECT_NO_THROW( - auto result = TexturelessArchiveBuilder( - naggyMockArchiveBuilderHelper, - QDir(), - baNone); - ); - } -} \ No newline at end of file