From 692c31b7119e9efdb087d4769c2fe9ab20cbdd41 Mon Sep 17 00:00:00 2001 From: Jan Date: Tue, 31 Dec 2024 12:38:22 +0100 Subject: [PATCH] chore: fix test compilation --- .../AssetLoaderStringTableIW3Test.cpp | 12 +--- ...eTest.cpp => LoaderStringTableIW4Test.cpp} | 17 +++--- ...ingIW4IT.cpp => LoaderMenuListIW4Test.cpp} | 45 +++++++-------- ...eTest.cpp => LoaderStringTableIW5Test.cpp} | 17 +++--- ...leTest.cpp => LoaderStringTableT5Test.cpp} | 17 +++--- ...leTest.cpp => LoaderStringTableT6Test.cpp} | 17 +++--- .../Mock/MockAssetLoadingManager.cpp | 57 ------------------- .../Mock/MockAssetLoadingManager.h | 26 --------- 8 files changed, 60 insertions(+), 148 deletions(-) rename test/ObjLoadingTests/Game/IW4/AssetLoaders/{AssetLoaderStringTableTest.cpp => LoaderStringTableIW4Test.cpp} (74%) rename test/ObjLoadingTests/Game/IW4/Menu/{MenuParsingIW4IT.cpp => LoaderMenuListIW4Test.cpp} (92%) rename test/ObjLoadingTests/Game/IW5/AssetLoaders/{AssetLoaderStringTableTest.cpp => LoaderStringTableIW5Test.cpp} (74%) rename test/ObjLoadingTests/Game/T5/AssetLoaders/{AssetLoaderStringTableTest.cpp => LoaderStringTableT5Test.cpp} (77%) rename test/ObjLoadingTests/Game/T6/AssetLoaders/{AssetLoaderStringTableTest.cpp => LoaderStringTableT6Test.cpp} (77%) delete mode 100644 test/ObjLoadingTests/Mock/MockAssetLoadingManager.cpp delete mode 100644 test/ObjLoadingTests/Mock/MockAssetLoadingManager.h diff --git a/test/ObjLoadingTests/Game/IW3/StringTable/AssetLoaderStringTableIW3Test.cpp b/test/ObjLoadingTests/Game/IW3/StringTable/AssetLoaderStringTableIW3Test.cpp index 819dd3c0..bbe77a44 100644 --- a/test/ObjLoadingTests/Game/IW3/StringTable/AssetLoaderStringTableIW3Test.cpp +++ b/test/ObjLoadingTests/Game/IW3/StringTable/AssetLoaderStringTableIW3Test.cpp @@ -1,7 +1,6 @@ #include "Game/IW3/StringTable/AssetLoaderStringTableIW3.h" #include "Game/IW3/GameIW3.h" -#include "Mock/MockAssetLoadingManager.h" #include "Mock/MockSearchPath.h" #include "Pool/ZoneAssetPools.h" #include "Utils/MemoryManager.h" @@ -22,24 +21,19 @@ namespace "lorem,ipsum"); Zone zone("MockZone", 0, IGame::GetGameById(GameId::IW3)); - zone.m_pools = ZoneAssetPools::CreateForGame(GameId::IW3, &zone, 1); - - const auto assetTypeCount = zone.m_pools->GetAssetTypeCount(); - for (auto i = 0; i < assetTypeCount; i++) - zone.m_pools->InitPoolDynamic(i); MemoryManager memory; AssetCreatorCollection creatorCollection(zone); - AssetLoaderStringTable assetLoader(memory, searchPath); IgnoredAssetLookup ignoredAssetLookup; - AssetCreationContext context(&zone, &creatorCollection, &ignoredAssetLookup); - const auto result = assetLoader.CreateAsset("mp/cooltable.csv", context); + auto loader = CreateStringTableLoader(memory, searchPath); + auto result = loader->CreateAsset("mp/cooltable.csv", context); REQUIRE(result.HasBeenSuccessful()); const auto* assetInfo = reinterpret_cast*>(result.GetAssetInfo()); const auto* stringTable = assetInfo->Asset(); + REQUIRE(stringTable->name == "mp/cooltable.csv"s); REQUIRE(stringTable->columnCount == 3); REQUIRE(stringTable->rowCount == 2); diff --git a/test/ObjLoadingTests/Game/IW4/AssetLoaders/AssetLoaderStringTableTest.cpp b/test/ObjLoadingTests/Game/IW4/AssetLoaders/LoaderStringTableIW4Test.cpp similarity index 74% rename from test/ObjLoadingTests/Game/IW4/AssetLoaders/AssetLoaderStringTableTest.cpp rename to test/ObjLoadingTests/Game/IW4/AssetLoaders/LoaderStringTableIW4Test.cpp index 5dc5769c..8a9250a4 100644 --- a/test/ObjLoadingTests/Game/IW4/AssetLoaders/AssetLoaderStringTableTest.cpp +++ b/test/ObjLoadingTests/Game/IW4/AssetLoaders/LoaderStringTableIW4Test.cpp @@ -1,8 +1,7 @@ -#include "Game/IW4/AssetLoaders/AssetLoaderStringTable.h" +#include "Game/IW4/StringTable/LoaderStringTableIW4.h" #include "Game/IW4/CommonIW4.h" #include "Game/IW4/GameIW4.h" -#include "Mock/MockAssetLoadingManager.h" #include "Mock/MockSearchPath.h" #include "Utils/MemoryManager.h" @@ -22,17 +21,19 @@ namespace "lorem,ipsum"); Zone zone("MockZone", 0, IGame::GetGameById(GameId::IW4)); - MockAssetLoadingManager assetLoadingManager(zone, searchPath); - AssetLoaderStringTable assetLoader; MemoryManager memory; + AssetCreatorCollection creatorCollection(zone); + IgnoredAssetLookup ignoredAssetLookup; + AssetCreationContext context(&zone, &creatorCollection, &ignoredAssetLookup); - assetLoader.LoadFromRaw("mp/cooltable.csv", &searchPath, &memory, &assetLoadingManager, &zone); - - auto* assetInfo = reinterpret_cast*>(assetLoadingManager.MockGetAddedAsset("mp/cooltable.csv")); - REQUIRE(assetInfo != nullptr); + auto loader = CreateStringTableLoader(memory, searchPath); + auto result = loader->CreateAsset("mp/cooltable.csv", context); + REQUIRE(result.HasBeenSuccessful()); + const auto* assetInfo = reinterpret_cast*>(result.GetAssetInfo()); const auto* stringTable = assetInfo->Asset(); + REQUIRE(stringTable->name == "mp/cooltable.csv"s); REQUIRE(stringTable->columnCount == 3); REQUIRE(stringTable->rowCount == 2); diff --git a/test/ObjLoadingTests/Game/IW4/Menu/MenuParsingIW4IT.cpp b/test/ObjLoadingTests/Game/IW4/Menu/LoaderMenuListIW4Test.cpp similarity index 92% rename from test/ObjLoadingTests/Game/IW4/Menu/MenuParsingIW4IT.cpp rename to test/ObjLoadingTests/Game/IW4/Menu/LoaderMenuListIW4Test.cpp index 195d5621..00633356 100644 --- a/test/ObjLoadingTests/Game/IW4/Menu/MenuParsingIW4IT.cpp +++ b/test/ObjLoadingTests/Game/IW4/Menu/LoaderMenuListIW4Test.cpp @@ -1,6 +1,6 @@ -#include "Game/IW4/AssetLoaders/AssetLoaderMenuList.h" +#include "Game/IW4/Menu/LoaderMenuListIW4.h" + #include "Game/IW4/GameIW4.h" -#include "Mock/MockAssetLoadingManager.h" #include "Mock/MockSearchPath.h" #include "Parsing/Menu/MenuFileReader.h" #include "Utils/MemoryManager.h" @@ -8,6 +8,7 @@ #include #include #include +#include #include using namespace menu; @@ -23,14 +24,19 @@ namespace test::game::iw4::menu::parsing::it Zone m_zone; MockSearchPath m_search_path; - MockAssetLoadingManager m_manager; - AssetLoaderMenuList m_asset_loader; + std::unique_ptr m_asset_creator; + AssetCreatorCollection m_creator_collection; + IgnoredAssetLookup m_ignored_asset_lookup; + AssetCreationContext m_context; public: MenuParsingItHelper() : m_zone("MockZone", 0, IGame::GetGameById(GameId::IW4)), - m_manager(m_zone, m_search_path) + m_creator_collection(m_zone), + m_ignored_asset_lookup(), + m_context(&m_zone, &m_creator_collection, &m_ignored_asset_lookup) { + m_asset_creator = CreateMenuListLoader(*m_zone.GetMemory(), m_search_path); } void AddFile(std::string fileName, std::string data) @@ -48,28 +54,19 @@ namespace test::game::iw4::menu::parsing::it auto* material = m_zone.GetMemory()->Create(); material->info.name = m_zone.GetMemory()->Dup(name.c_str()); - m_manager.MockAddAvailableDependency(ASSET_TYPE_MATERIAL, name, material); + m_context.AddAsset(name, material); return material; } - bool RunIntegrationTest() + AssetCreationResult RunIntegrationTest() { - return m_asset_loader.LoadFromRaw(DEFAULT_ASSET_NAME, &m_search_path, m_zone.GetMemory(), &m_manager, &m_zone); - } - - MenuList* GetMenuListAsset() - { - const auto addedAsset = m_manager.MockGetAddedAsset(DEFAULT_ASSET_NAME); - REQUIRE(addedAsset); - REQUIRE(addedAsset->m_type == ASSET_TYPE_MENULIST); - - return static_cast(addedAsset->m_ptr); + return m_asset_creator->CreateAsset(DEFAULT_ASSET_NAME, m_context); } menuDef_t* GetMenuAsset(const std::string& menuName) { - const auto addedAsset = m_manager.MockGetAddedAsset(menuName); + const auto addedAsset = m_zone.m_pools->GetAsset(ASSET_TYPE_MENU, menuName); REQUIRE(addedAsset); REQUIRE(addedAsset->m_type == ASSET_TYPE_MENU); @@ -91,9 +88,9 @@ namespace test::game::iw4::menu::parsing::it )testmenu"); const auto result = helper.RunIntegrationTest(); - REQUIRE(result); + REQUIRE(result.HasBeenSuccessful()); - const auto* menuList = helper.GetMenuListAsset(); + const auto* menuList = (MenuList*)result.GetAssetInfo()->m_ptr; const auto* menu = helper.GetMenuAsset("Hello"); REQUIRE(menuList->menuCount == 1); @@ -172,9 +169,9 @@ namespace test::game::iw4::menu::parsing::it const auto* funnyDogMaterial = helper.AddMaterial("funny_dog.png"); const auto result = helper.RunIntegrationTest(); - REQUIRE(result); + REQUIRE(result.HasBeenSuccessful()); - const auto* menuList = helper.GetMenuListAsset(); + const auto* menuList = (MenuList*)result.GetAssetInfo()->m_ptr; const auto* menu = helper.GetMenuAsset("Bla"); REQUIRE(menuList->menuCount == 1); @@ -343,9 +340,9 @@ namespace test::game::iw4::menu::parsing::it )testmenu"); const auto result = helper.RunIntegrationTest(); - REQUIRE(result); + REQUIRE(result.HasBeenSuccessful()); - const auto* menuList = helper.GetMenuListAsset(); + const auto* menuList = (MenuList*)result.GetAssetInfo()->m_ptr; const auto* menu = helper.GetMenuAsset("Blab"); REQUIRE(menuList->menuCount == 1); diff --git a/test/ObjLoadingTests/Game/IW5/AssetLoaders/AssetLoaderStringTableTest.cpp b/test/ObjLoadingTests/Game/IW5/AssetLoaders/LoaderStringTableIW5Test.cpp similarity index 74% rename from test/ObjLoadingTests/Game/IW5/AssetLoaders/AssetLoaderStringTableTest.cpp rename to test/ObjLoadingTests/Game/IW5/AssetLoaders/LoaderStringTableIW5Test.cpp index 27f434c8..ed43222e 100644 --- a/test/ObjLoadingTests/Game/IW5/AssetLoaders/AssetLoaderStringTableTest.cpp +++ b/test/ObjLoadingTests/Game/IW5/AssetLoaders/LoaderStringTableIW5Test.cpp @@ -1,7 +1,6 @@ -#include "Game/IW5/AssetLoaders/AssetLoaderStringTable.h" +#include "Game/IW5/StringTable/LoaderStringTableIW5.h" #include "Game/IW5/GameIW5.h" -#include "Mock/MockAssetLoadingManager.h" #include "Mock/MockSearchPath.h" #include "Utils/MemoryManager.h" @@ -21,17 +20,19 @@ namespace "lorem,ipsum"); Zone zone("MockZone", 0, IGame::GetGameById(GameId::IW5)); - MockAssetLoadingManager assetLoadingManager(zone, searchPath); - AssetLoaderStringTable assetLoader; MemoryManager memory; + AssetCreatorCollection creatorCollection(zone); + IgnoredAssetLookup ignoredAssetLookup; + AssetCreationContext context(&zone, &creatorCollection, &ignoredAssetLookup); - assetLoader.LoadFromRaw("mp/cooltable.csv", &searchPath, &memory, &assetLoadingManager, &zone); - - auto* assetInfo = reinterpret_cast*>(assetLoadingManager.MockGetAddedAsset("mp/cooltable.csv")); - REQUIRE(assetInfo != nullptr); + auto loader = CreateStringTableLoader(memory, searchPath); + auto result = loader->CreateAsset("mp/cooltable.csv", context); + REQUIRE(result.HasBeenSuccessful()); + const auto* assetInfo = reinterpret_cast*>(result.GetAssetInfo()); const auto* stringTable = assetInfo->Asset(); + REQUIRE(stringTable->name == "mp/cooltable.csv"s); REQUIRE(stringTable->columnCount == 3); REQUIRE(stringTable->rowCount == 2); diff --git a/test/ObjLoadingTests/Game/T5/AssetLoaders/AssetLoaderStringTableTest.cpp b/test/ObjLoadingTests/Game/T5/AssetLoaders/LoaderStringTableT5Test.cpp similarity index 77% rename from test/ObjLoadingTests/Game/T5/AssetLoaders/AssetLoaderStringTableTest.cpp rename to test/ObjLoadingTests/Game/T5/AssetLoaders/LoaderStringTableT5Test.cpp index 6d0c1a40..257ac167 100644 --- a/test/ObjLoadingTests/Game/T5/AssetLoaders/AssetLoaderStringTableTest.cpp +++ b/test/ObjLoadingTests/Game/T5/AssetLoaders/LoaderStringTableT5Test.cpp @@ -1,7 +1,6 @@ -#include "Game/T5/AssetLoaders/AssetLoaderStringTable.h" +#include "Game/T5/StringTable/LoaderStringTableT5.h" #include "Game/T5/GameT5.h" -#include "Mock/MockAssetLoadingManager.h" #include "Mock/MockSearchPath.h" #include "Utils/MemoryManager.h" @@ -21,17 +20,19 @@ namespace "lorem,ipsum"); Zone zone("MockZone", 0, IGame::GetGameById(GameId::T5)); - MockAssetLoadingManager assetLoadingManager(zone, searchPath); - AssetLoaderStringTable assetLoader; MemoryManager memory; + AssetCreatorCollection creatorCollection(zone); + IgnoredAssetLookup ignoredAssetLookup; + AssetCreationContext context(&zone, &creatorCollection, &ignoredAssetLookup); - assetLoader.LoadFromRaw("mp/cooltable.csv", &searchPath, &memory, &assetLoadingManager, &zone); - - auto* assetInfo = reinterpret_cast*>(assetLoadingManager.MockGetAddedAsset("mp/cooltable.csv")); - REQUIRE(assetInfo != nullptr); + auto loader = CreateStringTableLoader(memory, searchPath); + auto result = loader->CreateAsset("mp/cooltable.csv", context); + REQUIRE(result.HasBeenSuccessful()); + const auto* assetInfo = reinterpret_cast*>(result.GetAssetInfo()); const auto* stringTable = assetInfo->Asset(); + REQUIRE(stringTable->name == "mp/cooltable.csv"s); REQUIRE(stringTable->columnCount == 3); REQUIRE(stringTable->rowCount == 2); diff --git a/test/ObjLoadingTests/Game/T6/AssetLoaders/AssetLoaderStringTableTest.cpp b/test/ObjLoadingTests/Game/T6/AssetLoaders/LoaderStringTableT6Test.cpp similarity index 77% rename from test/ObjLoadingTests/Game/T6/AssetLoaders/AssetLoaderStringTableTest.cpp rename to test/ObjLoadingTests/Game/T6/AssetLoaders/LoaderStringTableT6Test.cpp index a853c878..a39faa58 100644 --- a/test/ObjLoadingTests/Game/T6/AssetLoaders/AssetLoaderStringTableTest.cpp +++ b/test/ObjLoadingTests/Game/T6/AssetLoaders/LoaderStringTableT6Test.cpp @@ -1,7 +1,6 @@ -#include "Game/T6/AssetLoaders/AssetLoaderStringTable.h" +#include "Game/T6/StringTable/LoaderStringTableT6.h" #include "Game/T6/GameT6.h" -#include "Mock/MockAssetLoadingManager.h" #include "Mock/MockSearchPath.h" #include "Utils/MemoryManager.h" @@ -21,17 +20,19 @@ namespace "lorem,ipsum"); Zone zone("MockZone", 0, IGame::GetGameById(GameId::T6)); - MockAssetLoadingManager assetLoadingManager(zone, searchPath); - AssetLoaderStringTable assetLoader; MemoryManager memory; + AssetCreatorCollection creatorCollection(zone); + IgnoredAssetLookup ignoredAssetLookup; + AssetCreationContext context(&zone, &creatorCollection, &ignoredAssetLookup); - assetLoader.LoadFromRaw("mp/cooltable.csv", &searchPath, &memory, &assetLoadingManager, &zone); - - auto* assetInfo = reinterpret_cast*>(assetLoadingManager.MockGetAddedAsset("mp/cooltable.csv")); - REQUIRE(assetInfo != nullptr); + auto loader = CreateStringTableLoader(memory, searchPath); + auto result = loader->CreateAsset("mp/cooltable.csv", context); + REQUIRE(result.HasBeenSuccessful()); + const auto* assetInfo = reinterpret_cast*>(result.GetAssetInfo()); const auto* stringTable = assetInfo->Asset(); + REQUIRE(stringTable->name == "mp/cooltable.csv"s); REQUIRE(stringTable->columnCount == 3); REQUIRE(stringTable->rowCount == 2); diff --git a/test/ObjLoadingTests/Mock/MockAssetLoadingManager.cpp b/test/ObjLoadingTests/Mock/MockAssetLoadingManager.cpp deleted file mode 100644 index ee02a702..00000000 --- a/test/ObjLoadingTests/Mock/MockAssetLoadingManager.cpp +++ /dev/null @@ -1,57 +0,0 @@ -#include "MockAssetLoadingManager.h" - -MockAssetLoadingManager::MockAssetLoadingManager(Zone& zone, ISearchPath& searchPath) - : m_zone(zone), - m_mock_gdt(std::make_unique()), - m_context(std::make_unique(zone, searchPath, std::vector({m_mock_gdt.get()}))) -{ -} - -AssetLoadingContext* MockAssetLoadingManager::GetAssetLoadingContext() const -{ - return m_context.get(); -} - -XAssetInfoGeneric* MockAssetLoadingManager::AddAsset(std::unique_ptr xAssetInfo) -{ - const auto assetInfoPtr = xAssetInfo.get(); - m_added_assets.emplace(std::make_pair(xAssetInfo->m_name, std::move(xAssetInfo))); - - return assetInfoPtr; -} - -XAssetInfoGeneric* MockAssetLoadingManager::LoadDependency(const asset_type_t assetType, const std::string& assetName) -{ - auto foundDependencies = m_available_dependencies.find(assetName); - - while (foundDependencies != m_available_dependencies.end()) - { - if (foundDependencies->second->m_type == assetType) - return foundDependencies->second.get(); - - ++foundDependencies; - } - - return nullptr; -} - -IndirectAssetReference MockAssetLoadingManager::LoadIndirectAssetReference(const asset_type_t assetType, const std::string& assetName) -{ - return IndirectAssetReference(assetType, assetName); -} - -void MockAssetLoadingManager::MockAddAvailableDependency(const asset_type_t assetType, std::string assetName, void* asset) -{ - auto assetInfo = std::make_unique(assetType, std::move(assetName), asset); - m_available_dependencies.emplace(assetInfo->m_name, std::move(assetInfo)); -} - -XAssetInfoGeneric* MockAssetLoadingManager::MockGetAddedAsset(const std::string& assetName) -{ - const auto foundAsset = m_added_assets.find(assetName); - - if (foundAsset != m_added_assets.end()) - return foundAsset->second.get(); - - return nullptr; -} diff --git a/test/ObjLoadingTests/Mock/MockAssetLoadingManager.h b/test/ObjLoadingTests/Mock/MockAssetLoadingManager.h deleted file mode 100644 index 197b88cc..00000000 --- a/test/ObjLoadingTests/Mock/MockAssetLoadingManager.h +++ /dev/null @@ -1,26 +0,0 @@ -#pragma once - -#include "AssetLoading/IAssetLoadingManager.h" - -#include -#include - -class MockAssetLoadingManager final : public IAssetLoadingManager -{ - Zone& m_zone; - std::unique_ptr m_mock_gdt; - std::unique_ptr m_context; - std::map> m_added_assets; - std::multimap> m_available_dependencies; - -public: - MockAssetLoadingManager(Zone& zone, ISearchPath& searchPath); - - _NODISCARD AssetLoadingContext* GetAssetLoadingContext() const override; - XAssetInfoGeneric* AddAsset(std::unique_ptr xAssetInfo) override; - XAssetInfoGeneric* LoadDependency(asset_type_t assetType, const std::string& assetName) override; - IndirectAssetReference LoadIndirectAssetReference(asset_type_t assetType, const std::string& assetName) override; - - void MockAddAvailableDependency(asset_type_t assetType, std::string assetName, void* asset); - XAssetInfoGeneric* MockGetAddedAsset(const std::string& assetName); -};