Add const GetType and GetDatabase methods to GameInterface

This commit is contained in:
Oliver Hamlet
2023-08-18 17:28:39 +01:00
parent 26519efa44
commit 0eee8066b7
9 changed files with 101 additions and 80 deletions
+14
View File
@@ -33,6 +33,12 @@ class GameInterface {
public:
virtual ~GameInterface() = default;
/**
* @brief Get the game's type.
* @returns The game's type.
*/
virtual GameType GetType() const = 0;
/**
* @name Metadata Access
* @{
@@ -46,6 +52,14 @@ public:
*/
virtual DatabaseInterface& GetDatabase() = 0;
/**
* @brief Get the database interface used for accessing metadata-related
* functionality.
* @returns A reference to the game's DatabaseInterface. The reference remains
* valid for the lifetime of the GameInterface instance.
*/
virtual const DatabaseInterface& GetDatabase() const = 0;
/**
* @}
* @name Plugin Data Access
+6 -6
View File
@@ -162,13 +162,13 @@ Game::Game(const GameType gameType,
gamePath_(gamePath),
loadOrderHandler_(type_, gamePath_, localDataPath),
conditionEvaluator_(
std::make_shared<ConditionEvaluator>(Type(), DataPath())),
std::make_shared<ConditionEvaluator>(GetType(), DataPath())),
database_(ApiDatabase(conditionEvaluator_)),
additionalDataPaths_(GetAdditionalDataPaths(Type(), DataPath())) {
additionalDataPaths_(GetAdditionalDataPaths(GetType(), DataPath())) {
conditionEvaluator_->SetAdditionalDataPaths(additionalDataPaths_);
}
GameType Game::Type() const { return type_; }
GameType Game::GetType() const { return type_; }
std::filesystem::path Game::DataPath() const {
if (type_ == GameType::tes3) {
@@ -206,7 +206,7 @@ bool Game::IsValidPlugin(const std::string& pluginPath) const {
}
bool Game::IsValidPlugin(const std::filesystem::path& pluginPath) const {
return Plugin::IsValid(Type(), ResolvePluginPath(DataPath(), pluginPath));
return Plugin::IsValid(GetType(), ResolvePluginPath(DataPath(), pluginPath));
}
void Game::LoadPlugins(const std::vector<std::string>& pluginPathStrings,
@@ -279,7 +279,7 @@ void Game::LoadPlugins(const std::vector<std::filesystem::path>& pluginPaths,
loot::equivalent(resolvedPluginPath, masterPath);
cache_.AddPlugin(
Plugin(Type(), cache_, resolvedPluginPath, loadHeader));
Plugin(GetType(), cache_, resolvedPluginPath, loadHeader));
} catch (const std::exception& e) {
if (logger) {
logger->error(
@@ -355,7 +355,7 @@ void Game::SetLoadOrder(const std::vector<std::string>& loadOrder) {
}
void Game::CacheArchives() {
const auto archiveFileExtension = GetArchiveFileExtension(Type());
const auto archiveFileExtension = GetArchiveFileExtension(GetType());
std::set<std::filesystem::path> archivePaths;
for (const auto& parentPath : additionalDataPaths_) {
+3 -3
View File
@@ -44,7 +44,6 @@ public:
// Internal Methods //
//////////////////////
GameType Type() const;
std::filesystem::path DataPath() const;
GameCache& GetCache();
@@ -53,8 +52,6 @@ public:
LoadOrderHandler& GetLoadOrderHandler();
const LoadOrderHandler& GetLoadOrderHandler() const;
const DatabaseInterface& GetDatabase() const;
void SetAdditionalDataPaths(
const std::vector<std::filesystem::path>& additionalDataPaths);
@@ -69,7 +66,10 @@ public:
// Game Interface Methods //
////////////////////////////
GameType GetType() const override;
DatabaseInterface& GetDatabase() override;
const DatabaseInterface& GetDatabase() const override;
bool IsValidPlugin(const std::string& pluginPath) const override;
+2 -2
View File
@@ -295,7 +295,7 @@ std::vector<std::string> SortPlugins(
Game& game,
const std::vector<std::string>& loadOrder) {
auto pluginsSortingData = GetPluginsSortingData(
game.Type(), game.GetDatabase(), game.GetLoadedPlugins(), loadOrder);
game.GetType(), game.GetDatabase(), game.GetLoadedPlugins(), loadOrder);
const auto logger = getLogger();
if (logger) {
@@ -307,7 +307,7 @@ std::vector<std::string> SortPlugins(
const auto newLoadOrder =
SortPlugins(std::move(pluginsSortingData),
game.Type(),
game.GetType(),
game.GetDatabase().GetGroups(false),
game.GetDatabase().GetUserGroups(),
game.GetLoadOrderHandler().GetImplicitlyActivePlugins());
@@ -53,18 +53,18 @@ INSTANTIATE_TEST_SUITE_P(, GameCacheTest, ::testing::Values(GameType::tes5));
TEST_P(GameCacheTest, addingAPluginThatDoesNotExistShouldSucceed) {
cache_.AddPlugin(
Plugin(game_.Type(), GameCache(), game_.DataPath() / blankEsm, true));
Plugin(game_.GetType(), GameCache(), game_.DataPath() / blankEsm, true));
EXPECT_EQ(blankEsm, cache_.GetPlugin(blankEsm)->GetName());
}
TEST_P(GameCacheTest,
addingAPluginThatIsAlreadyCachedShouldOverwriteExistingEntry) {
cache_.AddPlugin(
Plugin(game_.Type(), GameCache(), game_.DataPath() / blankEsm, true));
Plugin(game_.GetType(), GameCache(), game_.DataPath() / blankEsm, true));
EXPECT_FALSE(cache_.GetPlugin(blankEsm)->GetCRC());
cache_.AddPlugin(
Plugin(game_.Type(), GameCache(), game_.DataPath() / blankEsm, false));
Plugin(game_.GetType(), GameCache(), game_.DataPath() / blankEsm, false));
EXPECT_EQ(blankEsmCrc, cache_.GetPlugin(blankEsm)->GetCRC().value());
}
@@ -74,7 +74,7 @@ TEST_P(GameCacheTest, gettingAPluginThatIsNotCachedShouldReturnANullPointer) {
TEST_P(GameCacheTest, gettingAPluginShouldBeCaseInsensitive) {
cache_.AddPlugin(
Plugin(game_.Type(), GameCache(), game_.DataPath() / blankEsm, true));
Plugin(game_.GetType(), GameCache(), game_.DataPath() / blankEsm, true));
EXPECT_EQ(blankEsm, cache_.GetPlugin(blankEsm)->GetName());
}
@@ -86,8 +86,8 @@ TEST_P(GameCacheTest,
TEST_P(GameCacheTest,
gettingPluginsShouldReturnASetOfCachedPluginsIfPluginsHaveBeenCached) {
cache_.AddPlugin(
Plugin(game_.Type(), GameCache(), game_.DataPath() / blankEsm, true));
cache_.AddPlugin(Plugin(game_.Type(),
Plugin(game_.GetType(), GameCache(), game_.DataPath() / blankEsm, true));
cache_.AddPlugin(Plugin(game_.GetType(),
GameCache(),
game_.DataPath() / blankMasterDependentEsm,
true));
@@ -119,7 +119,7 @@ TEST_P(GameCacheTest, clearingCachedPluginsShouldNotThrowIfNoPluginsAreCached) {
TEST_P(GameCacheTest, clearingCachedPluginsShouldClearAnyCachedPlugins) {
cache_.AddPlugin(
Plugin(game_.Type(), GameCache(), game_.DataPath() / blankEsm, true));
Plugin(game_.GetType(), GameCache(), game_.DataPath() / blankEsm, true));
cache_.ClearCachedPlugins();
EXPECT_TRUE(cache_.GetPlugins().empty());
+1 -1
View File
@@ -71,7 +71,7 @@ INSTANTIATE_TEST_SUITE_P(,
TEST_P(GameTest, constructingShouldStoreTheGivenValues) {
Game game = Game(GetParam(), dataPath.parent_path(), localPath);
EXPECT_EQ(GetParam(), game.Type());
EXPECT_EQ(GetParam(), game.GetType());
EXPECT_EQ(dataPath, game.DataPath());
}
@@ -40,7 +40,7 @@ protected:
nonAsciiEsm(u8"non\u00C1scii.esm"),
nonAsciiNestedFile(u8"non\u00C1scii/test.txt"),
game_(GetParam(), dataPath.parent_path(), localPath),
evaluator_(game_.Type(), game_.DataPath()) {
evaluator_(game_.GetType(), game_.DataPath()) {
// Make sure the plugin with a non-ASCII filename exists.
std::filesystem::copy_file(dataPath / blankEsm,
dataPath / std::filesystem::u8path(nonAsciiEsm));
+61 -54
View File
@@ -101,14 +101,14 @@ protected:
auto nonAsciiArchivePath =
dataPath /
std::filesystem::u8path(u8"non\u00E1scii" +
GetArchiveFileExtension(game_.Type()));
GetArchiveFileExtension(game_.GetType()));
out.open(nonAsciiArchivePath);
out.close();
auto nonAsciiPrefixArchivePath =
dataPath /
std::filesystem::u8path(u8"other non\u00E1scii2 - suffix" +
GetArchiveFileExtension(game_.Type()));
GetArchiveFileExtension(game_.GetType()));
out.open(nonAsciiPrefixArchivePath);
out.close();
@@ -208,7 +208,7 @@ INSTANTIATE_TEST_SUITE_P(,
GameType::tes5se));
TEST_P(PluginTest, loadingShouldHandleNonAsciiFilenamesCorrectly) {
Plugin plugin(game_.Type(),
Plugin plugin(game_.GetType(),
game_.GetCache(),
game_.DataPath() / std::filesystem::u8path(nonAsciiEsp),
true);
@@ -219,7 +219,7 @@ TEST_P(PluginTest, loadingShouldHandleNonAsciiFilenamesCorrectly) {
TEST_P(PluginTest, loadingHeaderOnlyShouldReadHeaderData) {
Plugin plugin(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsm, true);
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsm, true);
EXPECT_EQ(blankEsm, plugin.GetName());
EXPECT_TRUE(plugin.GetMasters().empty());
@@ -238,14 +238,14 @@ TEST_P(PluginTest, loadingHeaderOnlyShouldReadHeaderData) {
TEST_P(PluginTest, loadingHeaderOnlyShouldNotReadFieldsOrCalculateCrc) {
Plugin plugin(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsm, true);
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsm, true);
EXPECT_FALSE(plugin.GetCRC());
}
TEST_P(PluginTest, loadingWholePluginShouldReadHeaderData) {
Plugin plugin(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsm, true);
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsm, true);
EXPECT_EQ(blankEsm, plugin.GetName());
EXPECT_TRUE(plugin.GetMasters().empty());
@@ -263,7 +263,7 @@ TEST_P(PluginTest, loadingWholePluginShouldReadHeaderData) {
}
TEST_P(PluginTest, loadingWholePluginShouldReadFields) {
Plugin plugin(game_.Type(),
Plugin plugin(game_.GetType(),
game_.GetCache(),
game_.DataPath() / blankMasterDependentEsm,
false);
@@ -277,13 +277,13 @@ TEST_P(PluginTest, loadingWholePluginShouldReadFields) {
TEST_P(PluginTest, loadingWholePluginShouldCalculateCrc) {
Plugin plugin(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsm, false);
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsm, false);
EXPECT_EQ(blankEsmCrc, plugin.GetCRC());
}
TEST_P(PluginTest, loadingANonMasterPluginShouldReadTheMasterFlagAsFalse) {
Plugin plugin(game_.Type(),
Plugin plugin(game_.GetType(),
game_.GetCache(),
game_.DataPath() / blankMasterDependentEsp,
true);
@@ -295,13 +295,13 @@ TEST_P(
PluginTest,
isLightPluginShouldBeTrueForAPluginWithEslFileExtensionForFallout4AndSkyrimSeAndFalseOtherwise) {
Plugin plugin1(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsm, true);
Plugin plugin2(game_.Type(),
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsm, true);
Plugin plugin2(game_.GetType(),
game_.GetCache(),
game_.DataPath() / blankMasterDependentEsp,
true);
Plugin plugin3(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsl, true);
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsl, true);
EXPECT_FALSE(plugin1.IsLightPlugin());
EXPECT_FALSE(plugin2.IsLightPlugin());
@@ -310,7 +310,7 @@ TEST_P(
}
TEST_P(PluginTest, loadingAPluginWithMastersShouldReadThemCorrectly) {
Plugin plugin(game_.Type(),
Plugin plugin(game_.GetType(),
game_.GetCache(),
game_.DataPath() / blankMasterDependentEsp,
true);
@@ -319,7 +319,7 @@ TEST_P(PluginTest, loadingAPluginWithMastersShouldReadThemCorrectly) {
}
TEST_P(PluginTest, loadingAPluginThatDoesNotExistShouldThrow) {
EXPECT_THROW(Plugin(game_.Type(),
EXPECT_THROW(Plugin(game_.GetType(),
game_.GetCache(),
game_.DataPath() / "Blank\\.esp",
true),
@@ -330,7 +330,8 @@ TEST_P(
PluginTest,
loadsArchiveForAnArchiveThatExactlyMatchesAnEsmFileBasenameShouldReturnTrueForAllGamesExceptMorrowindAndOblivion) {
bool loadsArchive =
Plugin(game_.Type(), game_.GetCache(), game_.DataPath() / blankEsm, true)
Plugin(
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsm, true)
.LoadsArchive();
if (GetParam() == GameType::tes3 || GetParam() == GameType::tes4)
@@ -344,7 +345,7 @@ TEST_P(
PluginTest,
loadsArchiveForAnArchiveThatExactlyMatchesANonAsciiEspFileBasenameShouldReturnTrueForAllGamesExceptMorrowind) {
bool loadsArchive =
Plugin(game_.Type(),
Plugin(game_.GetType(),
game_.GetCache(),
game_.DataPath() / std::filesystem::u8path(nonAsciiEsp),
true)
@@ -361,7 +362,8 @@ TEST_P(
PluginTest,
loadsArchiveForAnArchiveThatExactlyMatchesAnEspFileBasenameShouldReturnTrueForAllGamesExceptMorrowind) {
bool loadsArchive =
Plugin(game_.Type(), game_.GetCache(), game_.DataPath() / blankEsp, true)
Plugin(
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsp, true)
.LoadsArchive();
if (GetParam() == GameType::tes3)
@@ -373,7 +375,7 @@ TEST_P(
TEST_P(
PluginTest,
loadsArchiveForAnArchiveWithAFilenameWhichStartsWithTheEsmFileBasenameShouldReturnTrueForAllGamesExceptMorrowindOblivionAndSkyrim) {
bool loadsArchive = Plugin(game_.Type(),
bool loadsArchive = Plugin(game_.GetType(),
game_.GetCache(),
game_.DataPath() / blankDifferentEsm,
true)
@@ -389,7 +391,7 @@ TEST_P(
TEST_P(
PluginTest,
loadsArchiveForAnArchiveWithAFilenameWhichStartsWithTheEspFileBasenameShouldReturnTrueForAllGamesExceptMorrowindAndSkyrim) {
bool loadsArchive = Plugin(game_.Type(),
bool loadsArchive = Plugin(game_.GetType(),
game_.GetCache(),
game_.DataPath() / blankDifferentEsp,
true)
@@ -407,7 +409,7 @@ TEST_P(
PluginTest,
loadsArchiveForAnArchiveWithAFilenameWhichStartsWithTheNonAsciiEspFileBasenameShouldReturnTrueForAllGamesExceptMorrowindAndSkyrim) {
bool loadsArchive =
Plugin(game_.Type(),
Plugin(game_.GetType(),
game_.GetCache(),
game_.DataPath() / std::filesystem::u8path(otherNonAsciiEsp),
true)
@@ -423,7 +425,7 @@ TEST_P(
TEST_P(PluginTest,
loadsArchiveShouldReturnFalseForAPluginThatDoesNotLoadAnArchive) {
EXPECT_FALSE(Plugin(game_.Type(),
EXPECT_FALSE(Plugin(game_.GetType(),
game_.GetCache(),
game_.DataPath() / blankDifferentMasterDependentEsp,
true)
@@ -431,27 +433,30 @@ TEST_P(PluginTest,
}
TEST_P(PluginTest, isValidShouldReturnTrueForAValidPlugin) {
EXPECT_TRUE(Plugin::IsValid(game_.Type(), game_.DataPath() / blankEsm));
EXPECT_TRUE(Plugin::IsValid(game_.GetType(), game_.DataPath() / blankEsm));
}
TEST_P(PluginTest, isValidShouldReturnTrueForAValidNonAsciiPlugin) {
EXPECT_TRUE(Plugin::IsValid(
game_.Type(), game_.DataPath() / std::filesystem::u8path(nonAsciiEsp)));
EXPECT_TRUE(
Plugin::IsValid(game_.GetType(),
game_.DataPath() / std::filesystem::u8path(nonAsciiEsp)));
}
TEST_P(PluginTest, isValidShouldReturnFalseForANonPluginFile) {
EXPECT_FALSE(Plugin::IsValid(game_.Type(), game_.DataPath() / nonPluginFile));
EXPECT_FALSE(
Plugin::IsValid(game_.GetType(), game_.DataPath() / nonPluginFile));
}
TEST_P(PluginTest, isValidShouldReturnFalseForAnEmptyFile) {
EXPECT_FALSE(Plugin::IsValid(game_.Type(), game_.DataPath() / emptyFile));
EXPECT_FALSE(Plugin::IsValid(game_.GetType(), game_.DataPath() / emptyFile));
}
TEST_P(
PluginTest,
isValidAsLightPluginShouldReturnTrueOnlyForASkyrimSEOrFallout4PluginWithNewFormIdsBetween0x800And0xFFFInclusive) {
bool valid =
Plugin(game_.Type(), game_.GetCache(), game_.DataPath() / blankEsm, true)
Plugin(
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsm, true)
.IsValidAsLightPlugin();
if (GetParam() == GameType::fo4 || GetParam() == GameType::tes5se) {
EXPECT_TRUE(valid);
@@ -479,7 +484,7 @@ TEST_P(PluginTest, getFileSizeShouldReturnCorrectValueForAGhostedPlugin) {
TEST_P(PluginTest,
doRecordsOverlapShouldReturnFalseIfTheArgumentIsNotAPluginObject) {
Plugin plugin1(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsm, false);
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsm, false);
OtherPluginType plugin2;
EXPECT_FALSE(plugin1.DoRecordsOverlap(plugin2));
@@ -489,8 +494,8 @@ TEST_P(PluginTest,
TEST_P(PluginTest,
doRecordsOverlapShouldReturnFalseForTwoPluginsWithOnlyHeadersLoaded) {
Plugin plugin1(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsm, true);
Plugin plugin2(game_.Type(),
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsm, true);
Plugin plugin2(game_.GetType(),
game_.GetCache(),
game_.DataPath() / blankMasterDependentEsm,
true);
@@ -502,9 +507,9 @@ TEST_P(PluginTest,
TEST_P(PluginTest,
doRecordsOverlapShouldReturnFalseIfThePluginsHaveUnrelatedRecords) {
Plugin plugin1(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsm, false);
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsm, false);
Plugin plugin2(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsp, false);
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsp, false);
EXPECT_FALSE(plugin1.DoRecordsOverlap(plugin2));
EXPECT_FALSE(plugin2.DoRecordsOverlap(plugin1));
@@ -513,8 +518,8 @@ TEST_P(PluginTest,
TEST_P(PluginTest,
doRecordsOverlapShouldReturnTrueIfOnePluginOverridesTheOthersRecords) {
Plugin plugin1(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsm, false);
Plugin plugin2(game_.Type(),
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsm, false);
Plugin plugin2(game_.GetType(),
game_.GetCache(),
game_.DataPath() / blankMasterDependentEsm,
false);
@@ -526,7 +531,7 @@ TEST_P(PluginTest,
TEST_P(PluginTest,
getOverlapSizeShouldThrowIfGivenAVectorContainingANonPluginObject) {
Plugin plugin1(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsm, false);
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsm, false);
OtherPluginType plugin2;
EXPECT_THROW(plugin1.GetOverlapSize({&plugin2, &plugin2}),
@@ -536,8 +541,8 @@ TEST_P(PluginTest,
TEST_P(PluginTest, getOverlapSizeShouldCountEachRecordOnce) {
Plugin plugin1(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsm, false);
Plugin plugin2(game_.Type(),
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsm, false);
Plugin plugin2(game_.GetType(),
game_.GetCache(),
game_.DataPath() / blankMasterDependentEsm,
false);
@@ -547,10 +552,10 @@ TEST_P(PluginTest, getOverlapSizeShouldCountEachRecordOnce) {
TEST_P(PluginTest, getOverlapSizeShouldCheckAgainstAllGivenPlugins) {
Plugin plugin1(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsm, false);
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsm, false);
Plugin plugin2(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsp, false);
Plugin plugin3(game_.Type(),
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsp, false);
Plugin plugin3(game_.GetType(),
game_.GetCache(),
game_.DataPath() / blankMasterDependentEsm,
false);
@@ -561,8 +566,8 @@ TEST_P(PluginTest, getOverlapSizeShouldCheckAgainstAllGivenPlugins) {
TEST_P(PluginTest,
getOverlapSizeShouldReturnZeroForPluginsWithOnlyHeadersLoaded) {
Plugin plugin1(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsm, true);
Plugin plugin2(game_.Type(),
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsm, true);
Plugin plugin2(game_.GetType(),
game_.GetCache(),
game_.DataPath() / blankMasterDependentEsm,
true);
@@ -572,16 +577,16 @@ TEST_P(PluginTest,
TEST_P(PluginTest, getOverlapSizeShouldReturnZeroForPluginsThatDoNotOverlap) {
Plugin plugin1(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsm, false);
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsm, false);
Plugin plugin2(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsp, false);
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsp, false);
EXPECT_EQ(0, plugin1.GetOverlapSize({&plugin2}));
}
TEST_P(PluginTest, getRecordAndGroupCountShouldReturnTheHeaderFieldValue) {
Plugin plugin(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsm, true);
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsm, true);
if (GetParam() == GameType::tes3) {
EXPECT_EQ(10u, plugin.GetRecordAndGroupCount());
@@ -595,7 +600,8 @@ TEST_P(PluginTest, getRecordAndGroupCountShouldReturnTheHeaderFieldValue) {
TEST_P(PluginTest,
getAssetCountShouldReturnNumberOfFilesInArchivesLoadedByPlugin) {
const auto assetCount =
Plugin(game_.Type(), game_.GetCache(), game_.DataPath() / blankEsp, false)
Plugin(
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsp, false)
.GetAssetCount();
if (GetParam() == GameType::tes3) {
@@ -609,7 +615,8 @@ TEST_P(PluginTest,
TEST_P(PluginTest, getAssetCountShouldReturnZeroIfOnlyPluginHeaderWasLoaded) {
const auto assetCount =
Plugin(game_.Type(), game_.GetCache(), game_.DataPath() / blankEsp, true)
Plugin(
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsp, true)
.GetAssetCount();
EXPECT_EQ(0, assetCount);
@@ -618,7 +625,7 @@ TEST_P(PluginTest, getAssetCountShouldReturnZeroIfOnlyPluginHeaderWasLoaded) {
TEST_P(PluginTest,
doAssetsOverlapShouldReturnFalseOrThrowIfTheArgumentIsNotAPluginObject) {
Plugin plugin1(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsp, false);
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsp, false);
OtherPluginType plugin2;
if (GetParam() == GameType::tes3) {
@@ -632,8 +639,8 @@ TEST_P(PluginTest,
TEST_P(PluginTest,
doAssetsOverlapShouldReturnFalseForTwoPluginsWithOnlyHeadersLoaded) {
Plugin plugin1(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsp, true);
Plugin plugin2(game_.Type(),
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsp, true);
Plugin plugin2(game_.GetType(),
game_.GetCache(),
game_.DataPath() / blankMasterDependentEsp,
true);
@@ -645,9 +652,9 @@ TEST_P(PluginTest,
TEST_P(PluginTest,
doAssetsOverlapShouldReturnFalseIfThePluginsDoNotLoadTheSameAssetPath) {
Plugin plugin1(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsp, false);
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsp, false);
// Blank - Different.esp does not load any assets.
Plugin plugin2(game_.Type(),
Plugin plugin2(game_.GetType(),
game_.GetCache(),
game_.DataPath() / blankDifferentEsp,
false);
@@ -659,8 +666,8 @@ TEST_P(PluginTest,
TEST_P(PluginTest,
doAssetsOverlapShouldReturnTrueIfThePluginsLoadTheSameAssetPath) {
Plugin plugin1(
game_.Type(), game_.GetCache(), game_.DataPath() / blankEsp, false);
Plugin plugin2(game_.Type(),
game_.GetType(), game_.GetCache(), game_.DataPath() / blankEsp, false);
Plugin plugin2(game_.GetType(),
game_.GetCache(),
game_.DataPath() / blankMasterDependentEsp,
false);
@@ -101,7 +101,7 @@ TEST_P(PluginSortingDataTest, lightFlaggedEspFilesShouldNotBeTreatedAsMasters) {
PluginMetadata(),
PluginMetadata(),
getLoadOrder(),
game_.Type(),
game_.GetType(),
loadedPlugins);
EXPECT_FALSE(esp.IsMaster());
@@ -110,7 +110,7 @@ TEST_P(PluginSortingDataTest, lightFlaggedEspFilesShouldNotBeTreatedAsMasters) {
PluginMetadata(),
PluginMetadata(),
getLoadOrder(),
game_.Type(),
game_.GetType(),
loadedPlugins);
EXPECT_TRUE(master.IsMaster());
@@ -120,7 +120,7 @@ TEST_P(PluginSortingDataTest, lightFlaggedEspFilesShouldNotBeTreatedAsMasters) {
PluginMetadata(),
PluginMetadata(),
getLoadOrder(),
game_.Type(),
game_.GetType(),
loadedPlugins);
EXPECT_TRUE(lightMaster.IsMaster());
@@ -130,7 +130,7 @@ TEST_P(PluginSortingDataTest, lightFlaggedEspFilesShouldNotBeTreatedAsMasters) {
PluginMetadata(),
PluginMetadata(),
getLoadOrder(),
game_.Type(),
game_.GetType(),
loadedPlugins);
EXPECT_FALSE(lightPlugin.IsMaster());
}
@@ -145,7 +145,7 @@ TEST_P(PluginSortingDataTest,
PluginMetadata(),
PluginMetadata(),
getLoadOrder(),
game_.Type(),
game_.GetType(),
getLoadedPlugins());
EXPECT_EQ(4, plugin.GetOverrideRecordCount());
}
@@ -174,7 +174,7 @@ TEST_P(
PluginMetadata(),
PluginMetadata(),
getLoadOrder(),
game_.Type(),
game_.GetType(),
loadedPlugins);
EXPECT_EQ(10, plugin.GetOverrideRecordCount());