mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
Extend sorting tests to cover Starfield
This commit is contained in:
@@ -203,7 +203,7 @@ TEST_P(
|
||||
|
||||
EXPECT_NO_THROW(loadInstalledPlugins(game, true));
|
||||
if (GetParam() == GameType::starfield) {
|
||||
EXPECT_EQ(6, game.GetCache().GetPlugins().size());
|
||||
EXPECT_EQ(10, game.GetCache().GetPlugins().size());
|
||||
} else {
|
||||
EXPECT_EQ(11, game.GetCache().GetPlugins().size());
|
||||
}
|
||||
@@ -251,7 +251,7 @@ TEST_P(GameTest,
|
||||
|
||||
EXPECT_NO_THROW(loadInstalledPlugins(game, false));
|
||||
if (GetParam() == GameType::starfield) {
|
||||
EXPECT_EQ(6, game.GetCache().GetPlugins().size());
|
||||
EXPECT_EQ(10, game.GetCache().GetPlugins().size());
|
||||
} else {
|
||||
EXPECT_EQ(11, game.GetCache().GetPlugins().size());
|
||||
}
|
||||
|
||||
@@ -83,10 +83,8 @@ protected:
|
||||
const std::vector<std::string>& loadOrder = {}) {
|
||||
const auto plugin = GetPlugin(name);
|
||||
|
||||
return PluginSortingData(plugin,
|
||||
PluginMetadata(),
|
||||
PluginMetadata(),
|
||||
loadOrder);
|
||||
return PluginSortingData(
|
||||
plugin, PluginMetadata(), PluginMetadata(), loadOrder);
|
||||
}
|
||||
|
||||
plugingraph::TestPlugin* GetPlugin(const std::string& name) {
|
||||
@@ -115,7 +113,8 @@ INSTANTIATE_TEST_SUITE_P(,
|
||||
PluginSortTest,
|
||||
::testing::Values(GameType::tes3,
|
||||
GameType::tes4,
|
||||
GameType::fo4));
|
||||
GameType::fo4,
|
||||
GameType::starfield));
|
||||
|
||||
TEST_P(PluginSortTest, sortingWithNoLoadedPluginsShouldReturnAnEmptyList) {
|
||||
std::vector<std::string> sorted = SortPlugins(game_, game_.GetLoadOrder());
|
||||
@@ -200,19 +199,35 @@ TEST_P(PluginSortTest,
|
||||
plugin.SetGroup("B");
|
||||
game_.GetDatabase().SetPluginUserMetadata(plugin);
|
||||
|
||||
std::vector<std::string> expectedSortedOrder({
|
||||
masterFile,
|
||||
blankDifferentEsm,
|
||||
blankEsm,
|
||||
blankMasterDependentEsm,
|
||||
blankDifferentMasterDependentEsm,
|
||||
blankEsp,
|
||||
blankDifferentEsp,
|
||||
blankMasterDependentEsp,
|
||||
blankDifferentMasterDependentEsp,
|
||||
blankPluginDependentEsp,
|
||||
blankDifferentPluginDependentEsp,
|
||||
});
|
||||
std::vector<std::string> expectedSortedOrder;
|
||||
if (GetParam() == GameType::starfield) {
|
||||
expectedSortedOrder = {
|
||||
masterFile,
|
||||
blankDifferentEsm,
|
||||
blankEsm,
|
||||
blankFullEsm,
|
||||
blankMasterDependentEsm,
|
||||
blankMediumEsm,
|
||||
blankEsl,
|
||||
blankEsp,
|
||||
blankDifferentEsp,
|
||||
blankMasterDependentEsp,
|
||||
};
|
||||
} else {
|
||||
expectedSortedOrder = {
|
||||
masterFile,
|
||||
blankDifferentEsm,
|
||||
blankEsm,
|
||||
blankMasterDependentEsm,
|
||||
blankDifferentMasterDependentEsm,
|
||||
blankEsp,
|
||||
blankDifferentEsp,
|
||||
blankMasterDependentEsp,
|
||||
blankDifferentMasterDependentEsp,
|
||||
blankPluginDependentEsp,
|
||||
blankDifferentPluginDependentEsp,
|
||||
};
|
||||
}
|
||||
|
||||
if (GetParam() == GameType::fo4 || GetParam() == GameType::tes5se) {
|
||||
expectedSortedOrder.insert(expectedSortedOrder.begin() + 5, blankEsl);
|
||||
@@ -254,19 +269,35 @@ TEST_P(PluginSortTest,
|
||||
plugin.SetGroup("A");
|
||||
game_.GetDatabase().SetPluginUserMetadata(plugin);
|
||||
|
||||
std::vector<std::string> expectedSortedOrder({
|
||||
masterFile,
|
||||
blankDifferentEsm,
|
||||
blankDifferentMasterDependentEsm,
|
||||
blankEsm,
|
||||
blankMasterDependentEsm,
|
||||
blankEsp,
|
||||
blankDifferentEsp,
|
||||
blankMasterDependentEsp,
|
||||
blankDifferentMasterDependentEsp,
|
||||
blankPluginDependentEsp,
|
||||
blankDifferentPluginDependentEsp,
|
||||
});
|
||||
std::vector<std::string> expectedSortedOrder;
|
||||
if (GetParam() == GameType::starfield) {
|
||||
expectedSortedOrder = {
|
||||
masterFile,
|
||||
blankFullEsm,
|
||||
blankMasterDependentEsm,
|
||||
blankMediumEsm,
|
||||
blankEsl,
|
||||
blankDifferentEsm,
|
||||
blankEsm,
|
||||
blankEsp,
|
||||
blankDifferentEsp,
|
||||
blankMasterDependentEsp,
|
||||
};
|
||||
} else {
|
||||
expectedSortedOrder = {
|
||||
masterFile,
|
||||
blankDifferentEsm,
|
||||
blankDifferentMasterDependentEsm,
|
||||
blankEsm,
|
||||
blankMasterDependentEsm,
|
||||
blankEsp,
|
||||
blankDifferentEsp,
|
||||
blankMasterDependentEsp,
|
||||
blankDifferentMasterDependentEsp,
|
||||
blankPluginDependentEsp,
|
||||
blankDifferentPluginDependentEsp,
|
||||
};
|
||||
}
|
||||
|
||||
if (GetParam() == GameType::fo4 || GetParam() == GameType::tes5se) {
|
||||
expectedSortedOrder.insert(expectedSortedOrder.begin() + 1, blankEsl);
|
||||
@@ -279,7 +310,7 @@ TEST_P(PluginSortTest,
|
||||
TEST_P(PluginSortTest, sortingShouldThrowIfAPluginHasAGroupThatDoesNotExist) {
|
||||
ASSERT_NO_THROW(loadInstalledPlugins(game_, false));
|
||||
|
||||
PluginMetadata plugin(blankDifferentEsm);
|
||||
PluginMetadata plugin(blankEsm);
|
||||
plugin.SetGroup("group1");
|
||||
game_.GetDatabase().SetPluginUserMetadata(plugin);
|
||||
|
||||
@@ -296,19 +327,35 @@ TEST_P(PluginSortTest,
|
||||
});
|
||||
game_.GetDatabase().SetPluginUserMetadata(plugin);
|
||||
|
||||
std::vector<std::string> expectedSortedOrder({
|
||||
masterFile,
|
||||
blankEsm,
|
||||
blankDifferentEsm,
|
||||
blankMasterDependentEsm,
|
||||
blankDifferentMasterDependentEsm,
|
||||
blankDifferentEsp,
|
||||
blankDifferentPluginDependentEsp,
|
||||
blankEsp,
|
||||
blankMasterDependentEsp,
|
||||
blankDifferentMasterDependentEsp,
|
||||
blankPluginDependentEsp,
|
||||
});
|
||||
std::vector<std::string> expectedSortedOrder;
|
||||
if (GetParam() == GameType::starfield) {
|
||||
expectedSortedOrder = {
|
||||
masterFile,
|
||||
blankEsm,
|
||||
blankDifferentEsm,
|
||||
blankFullEsm,
|
||||
blankMasterDependentEsm,
|
||||
blankMediumEsm,
|
||||
blankEsl,
|
||||
blankDifferentEsp,
|
||||
blankEsp,
|
||||
blankMasterDependentEsp,
|
||||
};
|
||||
} else {
|
||||
expectedSortedOrder = {
|
||||
masterFile,
|
||||
blankEsm,
|
||||
blankDifferentEsm,
|
||||
blankMasterDependentEsm,
|
||||
blankDifferentMasterDependentEsm,
|
||||
blankDifferentEsp,
|
||||
blankDifferentPluginDependentEsp,
|
||||
blankEsp,
|
||||
blankMasterDependentEsp,
|
||||
blankDifferentMasterDependentEsp,
|
||||
blankPluginDependentEsp,
|
||||
};
|
||||
}
|
||||
|
||||
if (GetParam() == GameType::fo4 || GetParam() == GameType::tes5se) {
|
||||
expectedSortedOrder.insert(expectedSortedOrder.begin() + 5, blankEsl);
|
||||
@@ -328,19 +375,35 @@ TEST_P(PluginSortTest,
|
||||
});
|
||||
game_.GetDatabase().SetPluginUserMetadata(plugin);
|
||||
|
||||
std::vector<std::string> expectedSortedOrder({
|
||||
masterFile,
|
||||
blankEsm,
|
||||
blankDifferentEsm,
|
||||
blankMasterDependentEsm,
|
||||
blankDifferentMasterDependentEsm,
|
||||
blankDifferentEsp,
|
||||
blankDifferentPluginDependentEsp,
|
||||
blankEsp,
|
||||
blankMasterDependentEsp,
|
||||
blankDifferentMasterDependentEsp,
|
||||
blankPluginDependentEsp,
|
||||
});
|
||||
std::vector<std::string> expectedSortedOrder;
|
||||
if (GetParam() == GameType::starfield) {
|
||||
expectedSortedOrder = {
|
||||
masterFile,
|
||||
blankEsm,
|
||||
blankDifferentEsm,
|
||||
blankFullEsm,
|
||||
blankMasterDependentEsm,
|
||||
blankMediumEsm,
|
||||
blankEsl,
|
||||
blankDifferentEsp,
|
||||
blankEsp,
|
||||
blankMasterDependentEsp,
|
||||
};
|
||||
} else {
|
||||
expectedSortedOrder = {
|
||||
masterFile,
|
||||
blankEsm,
|
||||
blankDifferentEsm,
|
||||
blankMasterDependentEsm,
|
||||
blankDifferentMasterDependentEsm,
|
||||
blankDifferentEsp,
|
||||
blankDifferentPluginDependentEsp,
|
||||
blankEsp,
|
||||
blankMasterDependentEsp,
|
||||
blankDifferentMasterDependentEsp,
|
||||
blankPluginDependentEsp,
|
||||
};
|
||||
}
|
||||
|
||||
if (GetParam() == GameType::fo4 || GetParam() == GameType::tes5se) {
|
||||
expectedSortedOrder.insert(expectedSortedOrder.begin() + 5, blankEsl);
|
||||
@@ -384,7 +447,10 @@ TEST_P(PluginSortTest,
|
||||
|
||||
TEST_P(PluginSortTest, sortingShouldThrowIfACyclicInteractionIsEncountered) {
|
||||
ASSERT_NO_THROW(loadInstalledPlugins(game_, false));
|
||||
PluginMetadata plugin(blankEsm);
|
||||
|
||||
const auto pluginName =
|
||||
GetParam() == GameType::starfield ? blankFullEsm : blankEsm;
|
||||
PluginMetadata plugin(pluginName);
|
||||
plugin.SetLoadAfterFiles({File(blankMasterDependentEsm)});
|
||||
game_.GetDatabase().SetPluginUserMetadata(plugin);
|
||||
|
||||
@@ -539,11 +605,6 @@ TEST_P(PluginSortTest,
|
||||
CreatePluginSortingData(esm->GetName()),
|
||||
CreatePluginSortingData(esp->GetName())};
|
||||
|
||||
EXPECT_THROW(
|
||||
SortPlugins(
|
||||
std::move(pluginsSortingData), {Group()}, {}, {esp->GetName()}),
|
||||
CyclicInteractionError);
|
||||
|
||||
try {
|
||||
SortPlugins(std::move(pluginsSortingData), {Group()}, {}, {esp->GetName()});
|
||||
FAIL();
|
||||
|
||||
@@ -73,7 +73,8 @@ INSTANTIATE_TEST_SUITE_P(,
|
||||
PluginSortingDataTest,
|
||||
::testing::Values(GameType::tes3,
|
||||
GameType::tes4,
|
||||
GameType::fo4));
|
||||
GameType::fo4,
|
||||
GameType::starfield));
|
||||
|
||||
TEST_P(PluginSortingDataTest, lightFlaggedEspFilesShouldNotBeTreatedAsMasters) {
|
||||
if (GetParam() == GameType::fo4 || GetParam() == GameType::tes5se) {
|
||||
@@ -125,7 +126,11 @@ TEST_P(PluginSortingDataTest,
|
||||
PluginMetadata(),
|
||||
PluginMetadata(),
|
||||
getLoadOrder());
|
||||
EXPECT_EQ(4, plugin.GetOverrideRecordCount());
|
||||
if (GetParam() == GameType::starfield) {
|
||||
EXPECT_EQ(1, plugin.GetOverrideRecordCount());
|
||||
} else {
|
||||
EXPECT_EQ(4, plugin.GetOverrideRecordCount());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -331,9 +331,13 @@ protected:
|
||||
return {
|
||||
masterFile,
|
||||
blankEsm,
|
||||
blankDifferentEsm,
|
||||
blankFullEsm,
|
||||
blankMasterDependentEsm,
|
||||
blankMediumEsm,
|
||||
blankEsl,
|
||||
blankEsp,
|
||||
blankDifferentEsp,
|
||||
blankMasterDependentEsp,
|
||||
};
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user