From 829fac4acf8fa35e64d98c5c14489f4509c0b186 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Sat, 22 Oct 2016 11:09:20 +0100 Subject: [PATCH] Refactor old repository branches storage --- src/backend/app/loot_settings.cpp | 8 +------- src/backend/app/loot_settings.h | 2 -- src/backend/game/game_settings.cpp | 10 ++++++++++ src/backend/game/game_settings.h | 3 +++ src/tests/backend/game/game_settings_test.h | 13 +++++++++++++ 5 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/backend/app/loot_settings.cpp b/src/backend/app/loot_settings.cpp index aaa84a08..77a17f3e 100644 --- a/src/backend/app/loot_settings.cpp +++ b/src/backend/app/loot_settings.cpp @@ -35,12 +35,6 @@ using std::recursive_mutex; using std::string; namespace loot { -const std::set LootSettings::oldDefaultBranches({ - "master", - "v0.7", - "v0.8", -}); - LootSettings::WindowPosition::WindowPosition() : top(0), bottom(0), left(0), right(0) {} LootSettings::LootSettings() : @@ -280,7 +274,7 @@ void LootSettings::upgradeYaml(YAML::Node& yaml) { // Update existing default branch, if the default // repositories are used. if (settings.RepoURL() == GameSettings(settings.Type()).RepoURL() - && oldDefaultBranches.count(settings.RepoBranch()) == 1) { + && settings.IsRepoBranchOldDefault()) { settings.SetRepoBranch(GameSettings(settings.Type()).RepoBranch()); } } diff --git a/src/backend/app/loot_settings.h b/src/backend/app/loot_settings.h index 5736e7d5..2166b29e 100644 --- a/src/backend/app/loot_settings.h +++ b/src/backend/app/loot_settings.h @@ -71,8 +71,6 @@ public: YAML::Node toYaml() const; private: - static const std::set oldDefaultBranches; - static void upgradeYaml(YAML::Node& yaml); bool enableDebugLogging_; diff --git a/src/backend/game/game_settings.cpp b/src/backend/game/game_settings.cpp index 82ae7017..d65bdfc5 100644 --- a/src/backend/game/game_settings.cpp +++ b/src/backend/game/game_settings.cpp @@ -34,6 +34,12 @@ namespace fs = boost::filesystem; namespace loot { +const std::set GameSettings::oldDefaultBranches({ + "master", + "v0.7", + "v0.8", +}); + GameSettings::GameSettings() : type_(GameType::tes4) {} GameSettings::GameSettings(const GameType gameCode, const std::string& folder) : type_(gameCode), repositoryBranch_("v0.10") { @@ -101,6 +107,10 @@ bool GameSettings::IsInstalled() { return false; } +bool GameSettings::IsRepoBranchOldDefault() const { + return oldDefaultBranches.count(repositoryBranch_) == 1; +} + bool GameSettings::operator == (const GameSettings& rhs) const { return (boost::iequals(name_, rhs.Name()) || boost::iequals(lootFolderName_, rhs.FolderName())); } diff --git a/src/backend/game/game_settings.h b/src/backend/game/game_settings.h index 3576ebc1..87ccd5f0 100644 --- a/src/backend/game/game_settings.h +++ b/src/backend/game/game_settings.h @@ -41,6 +41,7 @@ public: GameSettings(const GameType gameType, const std::string& lootFolder = ""); bool IsInstalled(); //Sets gamePath if the current value is not valid and a valid path is found. + bool IsRepoBranchOldDefault() const; bool operator == (const GameSettings& rhs) const; //Compares names and folder names. @@ -68,6 +69,8 @@ public: GameSettings& SetGamePath(const boost::filesystem::path& path); private: + static const std::set oldDefaultBranches; + GameType type_; std::string name_; std::string masterFile_; diff --git a/src/tests/backend/game/game_settings_test.h b/src/tests/backend/game/game_settings_test.h index 48e7e290..d7b6d64c 100644 --- a/src/tests/backend/game/game_settings_test.h +++ b/src/tests/backend/game/game_settings_test.h @@ -98,6 +98,19 @@ TEST_P(GameSettingsTest, isInstalledShouldBeTrueIfGamePathIsValid) { EXPECT_TRUE(settings_.IsInstalled()); } +TEST_P(GameSettingsTest, isRepoBranchOldDefaultShouldBeTrueIfValueIsMaster) { + settings_ = GameSettings(GameType::tes5); + settings_.SetRepoBranch("master"); + + EXPECT_TRUE(settings_.IsRepoBranchOldDefault()); +} + +TEST_P(GameSettingsTest, isRepoBranchOldDefaultShouldBeFalseIfValueIsTheDefault) { + settings_ = GameSettings(GameType::tes5); + + EXPECT_FALSE(settings_.IsRepoBranchOldDefault()); +} + TEST_P(GameSettingsTest, gameSettingsWithTheSameIdsShouldBeEqual) { GameSettings game1 = GameSettings(GameType::tes5, "game1") .SetMaster("master1")