diff --git a/src/api/api.cpp b/src/api/api.cpp index 81b6ca6d..eb0ec235 100644 --- a/src/api/api.cpp +++ b/src/api/api.cpp @@ -67,9 +67,9 @@ const unsigned int loot_game_fonv = loot::Game::fonv; const unsigned int loot_game_fo4 = loot::Game::fo4; // LOOT message types. -const unsigned int loot_message_say = loot::Message::say; -const unsigned int loot_message_warn = loot::Message::warn; -const unsigned int loot_message_error = loot::Message::error; +const unsigned int loot_message_say = static_cast(loot::Message::Type::say); +const unsigned int loot_message_warn = static_cast(loot::Message::Type::warn); +const unsigned int loot_message_error = static_cast(loot::Message::Type::error); // LOOT message languages. const unsigned int loot_lang_english = loot::Language::english; diff --git a/src/api/loot_db.cpp b/src/api/loot_db.cpp index 25c43fca..22e7d5c2 100644 --- a/src/api/loot_db.cpp +++ b/src/api/loot_db.cpp @@ -104,7 +104,7 @@ void loot_db::setPluginMessages(const std::list& pluginMessages) for (const auto& message : pluginMessages) { pluginMessageStrings[i] = message.ChooseContent(loot::Language::english).Text(); - cPluginMessages[i].type = message.Type(); + cPluginMessages[i].type = static_cast(message.GetType()); cPluginMessages[i].message = pluginMessageStrings[i].c_str(); ++i; diff --git a/src/backend/game/game_cache.cpp b/src/backend/game/game_cache.cpp index 3acaab51..a88224ab 100644 --- a/src/backend/game/game_cache.cpp +++ b/src/backend/game/game_cache.cpp @@ -115,7 +115,7 @@ namespace loot { std::vector GameCache::GetMessages() const { vector output(messages); if (!isLoadOrderSorted) - output.push_back(Message(Message::warn, "You have not sorted your load order this session.")); + output.push_back(Message(Message::Type::warn, "You have not sorted your load order this session.")); return output; } diff --git a/src/backend/metadata/message.cpp b/src/backend/metadata/message.cpp index 7e6744d7..6d1737d1 100644 --- a/src/backend/metadata/message.cpp +++ b/src/backend/metadata/message.cpp @@ -31,18 +31,14 @@ using namespace std; namespace loot { - const unsigned int Message::say = 0; - const unsigned int Message::warn = 1; - const unsigned int Message::error = 2; + Message::Message() : _type(Message::Type::say) {} - Message::Message() : _type(Message::say) {} - - Message::Message(const unsigned int type, const std::string& content, + Message::Message(const Type type, const std::string& content, const std::string& condition) : _type(type), ConditionalMetadata(condition) { _content.push_back(MessageContent(content, Language::english)); } - Message::Message(const unsigned int type, const std::vector& content, + Message::Message(const Type type, const std::vector& content, const std::string& condition) : _type(type), _content(content), ConditionalMetadata(condition) { if (content.size() > 1) { bool englishStringExists = false; @@ -56,16 +52,16 @@ namespace loot { } bool Message::operator < (const Message& rhs) const { - if (!_content.empty() && !rhs.Content().empty()) + if (!_content.empty() && !rhs.GetContent().empty()) return boost::ilexicographical_compare(ChooseContent(Language::english).Text(), rhs.ChooseContent(Language::english).Text()); - else if (_content.empty() && !rhs.Content().empty()) + else if (_content.empty() && !rhs.GetContent().empty()) return true; else return false; } bool Message::operator == (const Message& rhs) const { - return (_content == rhs.Content()); + return (_content == rhs.GetContent()); } bool Message::EvalCondition(loot::Game& game, const unsigned int language) { @@ -94,11 +90,11 @@ namespace loot { } } - unsigned int Message::Type() const { + Message::Type Message::GetType() const { return _type; } - std::vector Message::Content() const { + std::vector Message::GetContent() const { return _content; } } @@ -107,17 +103,17 @@ namespace YAML { Emitter& operator << (Emitter& out, const loot::Message& rhs) { out << BeginMap; - if (rhs.Type() == loot::Message::say) + if (rhs.GetType() == loot::Message::Type::say) out << Key << "type" << Value << "say"; - else if (rhs.Type() == loot::Message::warn) + else if (rhs.GetType() == loot::Message::Type::warn) out << Key << "type" << Value << "warn"; else out << Key << "type" << Value << "error"; - if (rhs.Content().size() == 1) - out << Key << "content" << Value << YAML::SingleQuoted << rhs.Content().front().Text(); + if (rhs.GetContent().size() == 1) + out << Key << "content" << Value << YAML::SingleQuoted << rhs.GetContent().front().Text(); else - out << Key << "content" << Value << rhs.Content(); + out << Key << "content" << Value << rhs.GetContent(); if (rhs.IsConditional()) out << Key << "condition" << Value << YAML::SingleQuoted << rhs.Condition(); diff --git a/src/backend/metadata/message.h b/src/backend/metadata/message.h index 3c5999fb..5ef77976 100644 --- a/src/backend/metadata/message.h +++ b/src/backend/metadata/message.h @@ -41,10 +41,16 @@ namespace loot { class Message : public ConditionalMetadata { public: + enum struct Type : unsigned int { + say = 0, + warn = 1, + error = 2, + }; + Message(); - Message(const unsigned int type, const std::string& content, + Message(const Type type, const std::string& content, const std::string& condition = ""); - Message(const unsigned int type, const std::vector& content, + Message(const Type type, const std::vector& content, const std::string& condition = ""); bool operator < (const Message& rhs) const; @@ -52,15 +58,11 @@ namespace loot { bool EvalCondition(Game& game, const unsigned int language); - unsigned int Type() const; - std::vector Content() const; + Type GetType() const; + std::vector GetContent() const; MessageContent ChooseContent(const unsigned int language) const; - - static const unsigned int say; - static const unsigned int warn; - static const unsigned int error; private: - unsigned int _type; + Type _type; std::vector _content; }; } @@ -70,11 +72,11 @@ namespace YAML { struct convert < loot::Message > { static Node encode(const loot::Message& rhs) { Node node; - node["content"] = rhs.Content(); + node["content"] = rhs.GetContent(); - if (rhs.Type() == loot::Message::say) + if (rhs.GetType() == loot::Message::Type::say) node["type"] = "say"; - else if (rhs.Type() == loot::Message::warn) + else if (rhs.GetType() == loot::Message::Type::warn) node["type"] = "warn"; else node["type"] = "error"; @@ -96,11 +98,11 @@ namespace YAML { std::string type; type = node["type"].as(); - unsigned int typeNo = loot::Message::say; + loot::Message::Type typeNo = loot::Message::Type::say; if (boost::iequals(type, "warn")) - typeNo = loot::Message::warn; + typeNo = loot::Message::Type::warn; else if (boost::iequals(type, "error")) - typeNo = loot::Message::error; + typeNo = loot::Message::Type::error; std::vector content; if (node["content"].IsSequence()) diff --git a/src/backend/metadata/plugin_dirty_info.cpp b/src/backend/metadata/plugin_dirty_info.cpp index e221e782..5fc9a07e 100644 --- a/src/backend/metadata/plugin_dirty_info.cpp +++ b/src/backend/metadata/plugin_dirty_info.cpp @@ -87,7 +87,7 @@ namespace loot { else if (this->_itm > 0 && this->_ref > 0 && this->_nav == 0) f = boost::format(boost::locale::translate("Contains %1% ITM records and %2% deleted references. Clean with %3%.")) % this->_itm % this->_ref % this->_utility; - return Message(Message::warn, f.str()); + return Message(Message::Type::warn, f.str()); } bool PluginDirtyInfo::EvalCondition(Game& game, const std::string& pluginName) const { diff --git a/src/backend/plugin/plugin.cpp b/src/backend/plugin/plugin.cpp index f96cfeb5..d8ea6381 100644 --- a/src/backend/plugin/plugin.cpp +++ b/src/backend/plugin/plugin.cpp @@ -111,7 +111,7 @@ namespace loot { } catch (std::exception& e) { BOOST_LOG_TRIVIAL(error) << "Cannot read plugin file \"" << name << "\". Details: " << e.what(); - messages.push_back(loot::Message(loot::Message::error, (boost::format(boost::locale::translate("Cannot read \"%1%\". Details: %2%")) % name % e.what()).str())); + messages.push_back(loot::Message(loot::Message::Type::error, (boost::format(boost::locale::translate("Cannot read \"%1%\". Details: %2%")) % name % e.what()).str())); } BOOST_LOG_TRIVIAL(trace) << Name() << ": " << "Plugin loading complete."; @@ -209,11 +209,11 @@ namespace loot { for (const auto &master : getMasters()) { if (!pluginExists(game, master)) { BOOST_LOG_TRIVIAL(error) << "\"" << Name() << "\" requires \"" << master << "\", but it is missing."; - messages.push_back(Message(Message::error, (boost::format(boost::locale::translate("This plugin requires \"%1%\" to be installed, but it is missing.")) % master).str())); + messages.push_back(Message(Message::Type::error, (boost::format(boost::locale::translate("This plugin requires \"%1%\" to be installed, but it is missing.")) % master).str())); } else if (!game.IsPluginActive(master)) { BOOST_LOG_TRIVIAL(error) << "\"" << Name() << "\" requires \"" << master << "\", but it is inactive."; - messages.push_back(Message(Message::error, (boost::format(boost::locale::translate("This plugin requires \"%1%\" to be active, but it is inactive.")) % master).str())); + messages.push_back(Message(Message::Type::error, (boost::format(boost::locale::translate("This plugin requires \"%1%\" to be active, but it is inactive.")) % master).str())); } } } @@ -221,13 +221,13 @@ namespace loot { for (const auto &req : Reqs()) { if (!pluginExists(game, req.Name())) { BOOST_LOG_TRIVIAL(error) << "\"" << Name() << "\" requires \"" << req.Name() << "\", but it is missing."; - messages.push_back(loot::Message(Message::error, (boost::format(boost::locale::translate("This plugin requires \"%1%\" to be installed, but it is missing.")) % req.Name()).str())); + messages.push_back(loot::Message(Message::Type::error, (boost::format(boost::locale::translate("This plugin requires \"%1%\" to be installed, but it is missing.")) % req.Name()).str())); } } for (const auto &inc : Incs()) { if (pluginExists(game, inc.Name()) && game.IsPluginActive(inc.Name())) { BOOST_LOG_TRIVIAL(error) << "\"" << Name() << "\" is incompatible with \"" << inc.Name() << "\", but both are present."; - messages.push_back(loot::Message(Message::error, (boost::format(boost::locale::translate("This plugin is incompatible with \"%1%\", but both are present.")) % inc.Name()).str())); + messages.push_back(loot::Message(Message::Type::error, (boost::format(boost::locale::translate("This plugin is incompatible with \"%1%\", but both are present.")) % inc.Name()).str())); } } } diff --git a/src/backend/plugin/plugin_sorter.cpp b/src/backend/plugin/plugin_sorter.cpp index a3fda771..b4f36bad 100644 --- a/src/backend/plugin/plugin_sorter.cpp +++ b/src/backend/plugin/plugin_sorter.cpp @@ -212,7 +212,7 @@ namespace loot { catch (std::exception& e) { BOOST_LOG_TRIVIAL(error) << "\"" << graph[v].Name() << "\" contains a condition that could not be evaluated. Details: " << e.what(); list messages(graph[v].Messages()); - messages.push_back(Message(Message::error, (boost::format(boost::locale::translate("\"%1%\" contains a condition that could not be evaluated. Details: %2%")) % graph[v].Name() % e.what()).str())); + messages.push_back(Message(Message::Type::error, (boost::format(boost::locale::translate("\"%1%\" contains a condition that could not be evaluated. Details: %2%")) % graph[v].Name() % e.what()).str())); graph[v].Messages(messages); } diff --git a/src/gui/query_handler.cpp b/src/gui/query_handler.cpp index 44ce348a..ad2169e2 100644 --- a/src/gui/query_handler.cpp +++ b/src/gui/query_handler.cpp @@ -645,7 +645,7 @@ namespace loot { _lootState.CurrentGame().GetMasterlist().Load(_lootState.CurrentGame().MasterlistPath()); } catch (exception &e) { - _lootState.CurrentGame().GetMasterlist().AppendMessage(Message(Message::error, (boost::format(loc::translate( + _lootState.CurrentGame().GetMasterlist().AppendMessage(Message(Message::Type::error, (boost::format(loc::translate( "An error occurred while parsing the masterlist: %1%. " "This probably happened because an update to LOOT changed " "its metadata syntax support. Try updating your masterlist " @@ -661,7 +661,7 @@ namespace loot { _lootState.CurrentGame().GetUserlist().Load(_lootState.CurrentGame().UserlistPath()); } catch (exception &e) { - _lootState.CurrentGame().GetUserlist().AppendMessage(Message(Message::error, (boost::format(loc::translate( + _lootState.CurrentGame().GetUserlist().AppendMessage(Message(Message::Type::error, (boost::format(loc::translate( "An error occurred while parsing the userlist: %1%. " "This probably happened because an update to LOOT changed " "its metadata syntax support. Your user metadata will have " @@ -793,7 +793,7 @@ namespace loot { // There was a parsing error, but roll-back was successful, so the process // should still complete. - _lootState.CurrentGame().GetMasterlist().AppendMessage(Message(Message::error, e.what())); + _lootState.CurrentGame().GetMasterlist().AppendMessage(Message(Message::Type::error, e.what())); wasChanged = true; } else { @@ -962,7 +962,7 @@ namespace loot { catch (loot::Error& e) { BOOST_LOG_TRIVIAL(error) << "Failed to sort plugins. Details: " << e.what(); if (e.code() == Error::Code::sorting_error) { - _lootState.CurrentGame().AppendMessage(Message(Message::error, e.what())); + _lootState.CurrentGame().AppendMessage(Message(Message::Type::error, e.what())); YAML::Node node; node["globalMessages"] = GetGeneralMessages(); @@ -1000,7 +1000,7 @@ namespace loot { } catch (std::exception& e) { BOOST_LOG_TRIVIAL(error) << "A global message contains a condition that could not be evaluated. Details: " << e.what(); - messages.push_back(Message(Message::error, (format(loc::translate("A global message contains a condition that could not be evaluated. Details: %1%")) % e.what()).str())); + messages.push_back(Message(Message::Type::error, (format(loc::translate("A global message contains a condition that could not be evaluated. Details: %1%")) % e.what()).str())); } return messages; @@ -1023,7 +1023,7 @@ namespace loot { catch (std::exception& e) { BOOST_LOG_TRIVIAL(error) << "\"" << tempPlugin.Name() << "\" contains a condition that could not be evaluated. Details: " << e.what(); list messages(tempPlugin.Messages()); - messages.push_back(Message(Message::error, (format(loc::translate("\"%1%\" contains a condition that could not be evaluated. Details: %2%")) % tempPlugin.Name() % e.what()).str())); + messages.push_back(Message(Message::Type::error, (format(loc::translate("\"%1%\" contains a condition that could not be evaluated. Details: %2%")) % tempPlugin.Name() % e.what()).str())); tempPlugin.Messages(messages); } diff --git a/src/tests/api/loot_db_test.h b/src/tests/api/loot_db_test.h index 6afca663..79b9b866 100644 --- a/src/tests/api/loot_db_test.h +++ b/src/tests/api/loot_db_test.h @@ -241,41 +241,41 @@ namespace loot { TEST_P(loot_db_test, settingPluginMessagesShouldCopyThem) { db->setPluginMessages(std::list({ - Message(Message::warn, "Test 1"), - Message(Message::error, "Test 2"), + Message(Message::Type::warn, "Test 1"), + Message(Message::Type::error, "Test 2"), })); EXPECT_EQ(2, db->getPluginMessages().size()); - EXPECT_EQ(Message::warn, db->getPluginMessages()[0].type); + EXPECT_EQ(static_cast(Message::Type::warn), db->getPluginMessages()[0].type); EXPECT_STREQ("Test 1", db->getPluginMessages()[0].message); - EXPECT_EQ(Message::error, db->getPluginMessages()[1].type); + EXPECT_EQ(static_cast(Message::Type::error), db->getPluginMessages()[1].type); EXPECT_STREQ("Test 2", db->getPluginMessages()[1].message); } TEST_P(loot_db_test, settingPluginMessagesTwiceShouldOverwriteTheFirstDataSet) { db->setPluginMessages(std::list({ - Message(Message::warn, "Test 1"), - Message(Message::error, "Test 2"), + Message(Message::Type::warn, "Test 1"), + Message(Message::Type::error, "Test 2"), })); db->setPluginMessages(std::list({ - Message(Message::error, "Test 3"), - Message(Message::warn, "Test 4"), - Message(Message::say, "Test 5"), + Message(Message::Type::error, "Test 3"), + Message(Message::Type::warn, "Test 4"), + Message(Message::Type::say, "Test 5"), })); EXPECT_EQ(3, db->getPluginMessages().size()); - EXPECT_EQ(Message::error, db->getPluginMessages()[0].type); + EXPECT_EQ(static_cast(Message::Type::error), db->getPluginMessages()[0].type); EXPECT_STREQ("Test 3", db->getPluginMessages()[0].message); - EXPECT_EQ(Message::warn, db->getPluginMessages()[1].type); + EXPECT_EQ(static_cast(Message::Type::warn), db->getPluginMessages()[1].type); EXPECT_STREQ("Test 4", db->getPluginMessages()[1].message); - EXPECT_EQ(Message::say, db->getPluginMessages()[2].type); + EXPECT_EQ(static_cast(Message::Type::say), db->getPluginMessages()[2].type); EXPECT_STREQ("Test 5", db->getPluginMessages()[2].message); } TEST_P(loot_db_test, clearingArraysShouldEmptyPluginNamesTagIdsAndMessages) { db->setPluginMessages(std::list({ - Message(Message::warn, "Test 1"), - Message(Message::error, "Test 2"), + Message(Message::Type::warn, "Test 1"), + Message(Message::Type::error, "Test 2"), })); db->setPluginNames(std::vector({ PluginMetadata("Blank.esm"), diff --git a/src/tests/backend/game/game_cache_test.h b/src/tests/backend/game/game_cache_test.h index 5b8445a0..1c08cedc 100644 --- a/src/tests/backend/game/game_cache_test.h +++ b/src/tests/backend/game/game_cache_test.h @@ -63,7 +63,7 @@ namespace loot { cache.CacheCondition(condition, true); cache.AddPlugin(Plugin(game, blankEsm, true)); - Message expectedMessage(Message::say, "1"); + Message expectedMessage(Message::Type::say, "1"); cache.AppendMessage(expectedMessage); cache.SetLoadOrderSorted(true); @@ -79,7 +79,7 @@ namespace loot { cache.CacheCondition(condition, true); cache.AddPlugin(Plugin(game, blankEsm, true)); - Message expectedMessage(Message::say, "1"); + Message expectedMessage(Message::Type::say, "1"); cache.AppendMessage(expectedMessage); cache.SetLoadOrderSorted(true); @@ -195,8 +195,8 @@ namespace loot { TEST_P(GameCacheTest, appendingMessagesShouldStoreThemInTheGivenOrder) { std::vector messages({ - Message(Message::say, "1"), - Message(Message::error, "2"), + Message(Message::Type::say, "1"), + Message(Message::Type::error, "2"), }); for (const auto& message : messages) cache.AppendMessage(message); @@ -208,8 +208,8 @@ namespace loot { TEST_P(GameCacheTest, clearingMessagesShouldRemoveAllAppendedMessages) { std::vector messages({ - Message(Message::say, "1"), - Message(Message::error, "2"), + Message(Message::Type::say, "1"), + Message(Message::Type::error, "2"), }); for (const auto& message : messages) cache.AppendMessage(message); diff --git a/src/tests/backend/metadata/message_test.h b/src/tests/backend/metadata/message_test.h index 69010e43..a92b3180 100644 --- a/src/tests/backend/metadata/message_test.h +++ b/src/tests/backend/metadata/message_test.h @@ -46,16 +46,16 @@ namespace loot { TEST_P(MessageTest, defaultConstructorShouldCreateNoteWithNoContent) { Message message; - EXPECT_EQ(Message::say, message.Type()); - EXPECT_EQ(MessageContents(), message.Content()); + EXPECT_EQ(Message::Type::say, message.GetType()); + EXPECT_EQ(MessageContents(), message.GetContent()); } TEST_P(MessageTest, scalarContentConstructorShouldCreateAMessageWithASingleContentString) { MessageContent content = MessageContent("content1", Language::english); - Message message(Message::warn, content.Text(), "condition1"); + Message message(Message::Type::warn, content.Text(), "condition1"); - EXPECT_EQ(Message::warn, message.Type()); - EXPECT_EQ(MessageContents({content}), message.Content()); + EXPECT_EQ(Message::Type::warn, message.GetType()); + EXPECT_EQ(MessageContents({content}), message.GetContent()); EXPECT_EQ("condition1", message.Condition()); } @@ -64,10 +64,10 @@ namespace loot { MessageContent("content1", Language::english), MessageContent("content2", Language::french), }); - Message message(Message::error, contents, "condition1"); + Message message(Message::Type::error, contents, "condition1"); - EXPECT_EQ(Message::error, message.Type()); - EXPECT_EQ(contents, message.Content()); + EXPECT_EQ(Message::Type::error, message.GetType()); + EXPECT_EQ(contents, message.GetContent()); EXPECT_EQ("condition1", message.Condition()); } @@ -76,31 +76,31 @@ namespace loot { MessageContent("content1", Language::german), MessageContent("content2", Language::french), }); - EXPECT_ANY_THROW(Message(Message::error, contents, "condition1")); + EXPECT_ANY_THROW(Message(Message::Type::error, contents, "condition1")); } TEST_P(MessageTest, messagesWithDifferentContentStringsShouldBeUnequal) { - Message message1(Message::say, "content1", "condition1"); - Message message2(Message::say, "content2", "condition1"); + Message message1(Message::Type::say, "content1", "condition1"); + Message message2(Message::Type::say, "content2", "condition1"); EXPECT_FALSE(message1 == message2); } TEST_P(MessageTest, messagesWithEqualContentStringsShouldBeEqual) { - Message message1(Message::say, MessageContents({MessageContent("content1", Language::english)}), "condition1"); - Message message2(Message::warn, MessageContents({MessageContent("content1", Language::french)}), "condition2"); + Message message1(Message::Type::say, MessageContents({MessageContent("content1", Language::english)}), "condition1"); + Message message2(Message::Type::warn, MessageContents({MessageContent("content1", Language::french)}), "condition2"); EXPECT_TRUE(message1 == message2); } TEST_P(MessageTest, LessThanOperatorShouldUseCaseInsensitiveLexicographicalContentStringComparison) { - Message message1(Message::say, MessageContents({MessageContent("content1", Language::english)}), "condition1"); - Message message2(Message::warn, MessageContents({MessageContent("content1", Language::french)}), "condition2"); + Message message1(Message::Type::say, MessageContents({MessageContent("content1", Language::english)}), "condition1"); + Message message2(Message::Type::warn, MessageContents({MessageContent("content1", Language::french)}), "condition2"); EXPECT_FALSE(message1 < message2); EXPECT_FALSE(message2 < message1); - message1 = Message(Message::say, "content1", "condition1"); - message2 = Message(Message::say, "content2", "condition1"); + message1 = Message(Message::Type::say, "content1", "condition1"); + message2 = Message(Message::Type::say, "content2", "condition1"); EXPECT_TRUE(message1 < message2); EXPECT_FALSE(message2 < message1); } @@ -112,7 +112,7 @@ namespace loot { Message message; EXPECT_TRUE(message.EvalCondition(game, Language::english)); - EXPECT_EQ(MessageContents({MessageContent()}), message.Content()); + EXPECT_EQ(MessageContents({MessageContent()}), message.GetContent()); } TEST_P(MessageTest, evalConditionShouldPickOneContentStringIfMoreThanOneExists) { @@ -120,15 +120,15 @@ namespace loot { game.SetGamePath(dataPath.parent_path()); ASSERT_NO_THROW(game.Init(false, localPath)); - Message message(Message::say, MessageContents({ + Message message(Message::Type::say, MessageContents({ MessageContent("content1", Language::german), MessageContent("content2", Language::english), MessageContent("content3", Language::french), })); EXPECT_TRUE(message.EvalCondition(game, Language::french)); - EXPECT_EQ(1, message.Content().size()); - EXPECT_EQ(MessageContent("content3", Language::french), message.Content()[0]); + EXPECT_EQ(1, message.GetContent().size()); + EXPECT_EQ(MessageContent("content3", Language::french), message.GetContent()[0]); } TEST_P(MessageTest, chooseContentShouldCreateADefaultContentObjectIfNoneExists) { @@ -137,7 +137,7 @@ namespace loot { TEST_P(MessageTest, chooseContentShouldLeaveTheContentUnchangedIfOnlyOneStringExists) { MessageContent content("content1", Language::english); - Message message(Message::say, MessageContents({content})); + Message message(Message::Type::say, MessageContents({content})); EXPECT_EQ(content, message.ChooseContent(Language::french)); EXPECT_EQ(content, message.ChooseContent(Language::english)); @@ -145,7 +145,7 @@ namespace loot { TEST_P(MessageTest, chooseContentShouldSelectTheEnglishStringIfNoStringExistsForTheGivenLanguage) { MessageContent content("content1", Language::english); - Message message(Message::say, MessageContents({ + Message message(Message::Type::say, MessageContents({ content, MessageContent("content1", Language::german), })); @@ -154,7 +154,7 @@ namespace loot { TEST_P(MessageTest, chooseContentShouldSelectTheStringForTheGivenLanguageIfOneExists) { MessageContent french("content3", Language::french); - Message message(Message::say, MessageContents({ + Message message(Message::Type::say, MessageContents({ MessageContent("content1", Language::german), MessageContent("content2", Language::english), french, @@ -164,7 +164,7 @@ namespace loot { } TEST_P(MessageTest, emittingAsYamlShouldOutputNoteMessageTypeCorrectly) { - Message message(Message::say, "content1"); + Message message(Message::Type::say, "content1"); YAML::Emitter emitter; emitter << message; @@ -173,7 +173,7 @@ namespace loot { } TEST_P(MessageTest, emittingAsYamlShouldOutputWarnMessageTypeCorrectly) { - Message message(Message::warn, "content1"); + Message message(Message::Type::warn, "content1"); YAML::Emitter emitter; emitter << message; @@ -182,7 +182,7 @@ namespace loot { } TEST_P(MessageTest, emittingAsYamlShouldOutputErrorMessageTypeCorrectly) { - Message message(Message::error, "content1"); + Message message(Message::Type::error, "content1"); YAML::Emitter emitter; emitter << message; @@ -191,7 +191,7 @@ namespace loot { } TEST_P(MessageTest, emittingAsYamlShouldOutputConditionIfItIsNotEmpty) { - Message message(Message::say, "content1", "condition1"); + Message message(Message::Type::say, "content1", "condition1"); YAML::Emitter emitter; emitter << message; @@ -201,7 +201,7 @@ namespace loot { } TEST_P(MessageTest, emittingAsYamlShouldOutputMultipleContentStringsAsAList) { - Message message(Message::say, MessageContents({ + Message message(Message::Type::say, MessageContents({ MessageContent("content1", Language::english), MessageContent("content2", Language::german) })); @@ -217,7 +217,7 @@ namespace loot { } TEST_P(MessageTest, encodingAsYamlShouldStoreNoteMessageTypeCorrectly) { - Message message(Message::say, "content1"); + Message message(Message::Type::say, "content1"); YAML::Node node; node = message; @@ -225,7 +225,7 @@ namespace loot { } TEST_P(MessageTest, encodingAsYamlShouldStoreWarningMessageTypeCorrectly) { - Message message(Message::warn, "content1"); + Message message(Message::Type::warn, "content1"); YAML::Node node; node = message; @@ -233,7 +233,7 @@ namespace loot { } TEST_P(MessageTest, encodingAsYamlShouldStoreErrorMessageTypeCorrectly) { - Message message(Message::error, "content1"); + Message message(Message::Type::error, "content1"); YAML::Node node; node = message; @@ -241,7 +241,7 @@ namespace loot { } TEST_P(MessageTest, encodingAsYamlShouldOmitConditionFieldIfItIsEmpty) { - Message message(Message::say, "content1"); + Message message(Message::Type::say, "content1"); YAML::Node node; node = message; @@ -249,7 +249,7 @@ namespace loot { } TEST_P(MessageTest, encodingAsYamlShouldStoreConditionFieldIfItIsNotEmpty) { - Message message(Message::say, "content1", "condition1"); + Message message(Message::Type::say, "content1", "condition1"); YAML::Node node; node = message; @@ -257,11 +257,11 @@ namespace loot { } TEST_P(MessageTest, encodingAsYamlShouldStoreASingleContentStringInAVector) { - Message message(Message::say, "content1"); + Message message(Message::Type::say, "content1"); YAML::Node node; node = message; - EXPECT_EQ(message.Content(), node["content"].as()); + EXPECT_EQ(message.GetContent(), node["content"].as()); } TEST_P(MessageTest, encodingAsYamlShouldMultipleContentStringsInAVector) { @@ -269,7 +269,7 @@ namespace loot { MessageContent("content1", Language::english), MessageContent("content2", Language::french), }); - Message message(Message::say, contents); + Message message(Message::Type::say, contents); YAML::Node node; node = message; @@ -281,7 +281,7 @@ namespace loot { "content: content1"); Message message = node.as(); - EXPECT_EQ(Message::say, message.Type()); + EXPECT_EQ(Message::Type::say, message.GetType()); } TEST_P(MessageTest, decodingFromYamlShouldSetWarningTypeCorrectly) { @@ -289,7 +289,7 @@ namespace loot { "content: content1"); Message message = node.as(); - EXPECT_EQ(Message::warn, message.Type()); + EXPECT_EQ(Message::Type::warn, message.GetType()); } TEST_P(MessageTest, decodingFromYamlShouldSetErrorTypeCorrectly) { @@ -297,7 +297,7 @@ namespace loot { "content: content1"); Message message = node.as(); - EXPECT_EQ(Message::error, message.Type()); + EXPECT_EQ(Message::Type::error, message.GetType()); } TEST_P(MessageTest, decodingFromYamlShouldHandleAnUnrecognisedTypeAsANote) { @@ -305,7 +305,7 @@ namespace loot { "content: content1"); Message message = node.as(); - EXPECT_EQ(Message::say, message.Type()); + EXPECT_EQ(Message::Type::say, message.GetType()); } TEST_P(MessageTest, decodingFromYamlShouldLeaveTheConditionEmptyIfNoneIsPresent) { @@ -331,7 +331,7 @@ namespace loot { Message message = node.as(); MessageContents expectedContent({MessageContent("content1", Language::english)}); - EXPECT_EQ(expectedContent, message.Content()); + EXPECT_EQ(expectedContent, message.GetContent()); } TEST_P(MessageTest, decodingFromYamlShouldStoreAListOfContentStringsCorrectly) { @@ -346,7 +346,7 @@ namespace loot { EXPECT_EQ(MessageContents({ MessageContent("content1", Language::english), MessageContent("content2", Language::german), - }), message.Content()); + }), message.GetContent()); } TEST_P(MessageTest, decodingFromYamlShouldNotThrowIfTheOnlyContentStringIsNotEnglish) { @@ -376,7 +376,7 @@ namespace loot { " - sub1"); Message message = node.as(); - EXPECT_EQ(MessageContents({MessageContent("consub1tent1", Language::english)}), message.Content()); + EXPECT_EQ(MessageContents({MessageContent("consub1tent1", Language::english)}), message.GetContent()); } TEST_P(MessageTest, decodingFromYamlShouldApplySubstitutionsToAllContentStrings) { @@ -393,7 +393,7 @@ namespace loot { EXPECT_EQ(MessageContents({ MessageContent("content1 sub", Language::english), MessageContent("content2 sub", Language::german), - }), message.Content()); + }), message.GetContent()); } TEST_P(MessageTest, decodingFromYamlShouldThrowIfTheContentStringExpectsMoreSubstitutionsThanExist) { @@ -411,7 +411,7 @@ namespace loot { "content: con%1%tent1\n"); Message message = node.as(); - EXPECT_EQ(MessageContents({MessageContent("con%1%tent1", Language::english)}), message.Content()); + EXPECT_EQ(MessageContents({MessageContent("con%1%tent1", Language::english)}), message.GetContent()); } TEST_P(MessageTest, decodingFromYamlShouldThrowIfAnInvalidConditionIsGiven) { diff --git a/src/tests/backend/metadata/plugin_dirty_info_test.h b/src/tests/backend/metadata/plugin_dirty_info_test.h index a72160c5..76bb0ad9 100644 --- a/src/tests/backend/metadata/plugin_dirty_info_test.h +++ b/src/tests/backend/metadata/plugin_dirty_info_test.h @@ -59,35 +59,35 @@ namespace loot { TEST_P(PluginDirtyInfoTest, asMessageShouldOutputAllNonZeroCounts) { Message message = PluginDirtyInfo(0x12345678, 2, 10, 30, "cleaner").AsMessage(); - EXPECT_EQ(Message::warn, message.Type()); + EXPECT_EQ(Message::Type::warn, message.GetType()); EXPECT_EQ("Contains 2 ITM records, 10 deleted references and 30 deleted navmeshes. Clean with cleaner.", message.ChooseContent(Language::english).Text()); message = PluginDirtyInfo(0x12345678, 0, 0, 0, "cleaner").AsMessage(); - EXPECT_EQ(Message::warn, message.Type()); + EXPECT_EQ(Message::Type::warn, message.GetType()); EXPECT_EQ("Clean with cleaner.", message.ChooseContent(Language::english).Text()); message = PluginDirtyInfo(0x12345678, 0, 10, 30, "cleaner").AsMessage(); - EXPECT_EQ(Message::warn, message.Type()); + EXPECT_EQ(Message::Type::warn, message.GetType()); EXPECT_EQ("Contains 10 deleted references and 30 deleted navmeshes. Clean with cleaner.", message.ChooseContent(Language::english).Text()); message = PluginDirtyInfo(0x12345678, 0, 0, 30, "cleaner").AsMessage(); - EXPECT_EQ(Message::warn, message.Type()); + EXPECT_EQ(Message::Type::warn, message.GetType()); EXPECT_EQ("Contains 30 deleted navmeshes. Clean with cleaner.", message.ChooseContent(Language::english).Text()); message = PluginDirtyInfo(0x12345678, 0, 10, 0, "cleaner").AsMessage(); - EXPECT_EQ(Message::warn, message.Type()); + EXPECT_EQ(Message::Type::warn, message.GetType()); EXPECT_EQ("Contains 10 deleted references. Clean with cleaner.", message.ChooseContent(Language::english).Text()); message = PluginDirtyInfo(0x12345678, 2, 0, 30, "cleaner").AsMessage(); - EXPECT_EQ(Message::warn, message.Type()); + EXPECT_EQ(Message::Type::warn, message.GetType()); EXPECT_EQ("Contains 2 ITM records and 30 deleted navmeshes. Clean with cleaner.", message.ChooseContent(Language::english).Text()); message = PluginDirtyInfo(0x12345678, 2, 0, 0, "cleaner").AsMessage(); - EXPECT_EQ(Message::warn, message.Type()); + EXPECT_EQ(Message::Type::warn, message.GetType()); EXPECT_EQ("Contains 2 ITM records. Clean with cleaner.", message.ChooseContent(Language::english).Text()); message = PluginDirtyInfo(0x12345678, 2, 10, 0, "cleaner").AsMessage(); - EXPECT_EQ(Message::warn, message.Type()); + EXPECT_EQ(Message::Type::warn, message.GetType()); EXPECT_EQ("Contains 2 ITM records and 10 deleted references. Clean with cleaner.", message.ChooseContent(Language::english).Text()); } diff --git a/src/tests/backend/metadata/plugin_metadata_test.h b/src/tests/backend/metadata/plugin_metadata_test.h index 4c7e1d69..b1b0a282 100644 --- a/src/tests/backend/metadata/plugin_metadata_test.h +++ b/src/tests/backend/metadata/plugin_metadata_test.h @@ -230,7 +230,7 @@ namespace loot { TEST_P(PluginMetadataTest, mergeMetadataShouldMergeMessages) { PluginMetadata plugin1; PluginMetadata plugin2; - Message message(Message::say, "content"); + Message message(Message::Type::say, "content"); plugin1.Messages({message}); plugin2.Messages({message}); @@ -383,9 +383,9 @@ namespace loot { TEST_P(PluginMetadataTest, diffMetadataShouldOutputMessagesThatAreNotCommonToBothInputPlugins) { PluginMetadata plugin1; PluginMetadata plugin2; - Message message1(Message::say, "content1"); - Message message2(Message::say, "content2"); - Message message3(Message::say, "content3"); + Message message1(Message::Type::say, "content1"); + Message message2(Message::Type::say, "content2"); + Message message3(Message::Type::say, "content3"); plugin1.Messages({message1, message2}); plugin2.Messages({message1, message3}); @@ -518,9 +518,9 @@ namespace loot { TEST_P(PluginMetadataTest, newMetadataShouldOutputMessagesThatAreNotCommonToBothInputPlugins) { PluginMetadata plugin1; PluginMetadata plugin2; - Message message1(Message::say, "content1"); - Message message2(Message::say, "content2"); - Message message3(Message::say, "content3"); + Message message1(Message::Type::say, "content1"); + Message message2(Message::Type::say, "content2"); + Message message3(Message::Type::say, "content3"); plugin1.Messages({message1, message2}); plugin2.Messages({message1, message3}); @@ -625,8 +625,8 @@ namespace loot { plugin.Reqs({file1, file2}); plugin.Incs({file1, file2}); - Message message1(Message::say, "content"); - Message message2(Message::say, "content", "file(\"" + missingEsp + "\")"); + Message message1(Message::Type::say, "content"); + Message message2(Message::Type::say, "content", "file(\"" + missingEsp + "\")"); plugin.Messages({message1, message2}); Tag tag1("Relev"); @@ -697,7 +697,7 @@ namespace loot { TEST_P(PluginMetadataTest, hasNameOnlyShouldBeFalseIfMessagesExist) { PluginMetadata plugin(blankEsp); - plugin.Messages({Message(Message::say, "content")}); + plugin.Messages({Message(Message::Type::say, "content")}); EXPECT_FALSE(plugin.HasNameOnly()); } @@ -835,7 +835,7 @@ namespace loot { TEST_P(PluginMetadataTest, emittingAsYamlShouldOutputAPluginWithMessagesCorrectly) { PluginMetadata plugin(blankEsp); - plugin.Messages({Message(Message::say, "content")}); + plugin.Messages({Message(Message::Type::say, "content")}); YAML::Emitter emitter; emitter << plugin; @@ -949,7 +949,7 @@ namespace loot { TEST_P(PluginMetadataTest, encodingAsYamlShouldSetMsgFieldIfMessagesExist) { PluginMetadata plugin(blankEsp); - plugin.Messages({Message(Message::say, "content")}); + plugin.Messages({Message(Message::Type::say, "content")}); YAML::Node node; node = plugin; @@ -1032,7 +1032,7 @@ namespace loot { File("Blank.esm") }), plugin.Incs()); EXPECT_EQ(std::list({ - Message(Message::say, "content") + Message(Message::Type::say, "content") }), plugin.Messages()); EXPECT_EQ(std::set({ Tag("Relev") diff --git a/src/tests/backend/metadata_list_test.h b/src/tests/backend/metadata_list_test.h index 7ef81c93..3b8df716 100644 --- a/src/tests/backend/metadata_list_test.h +++ b/src/tests/backend/metadata_list_test.h @@ -86,7 +86,7 @@ namespace loot { EXPECT_NO_THROW(metadataList.Load(metadataPath)); EXPECT_EQ(std::list({ - Message(Message::say, "A global message."), + Message(Message::Type::say, "A global message."), }), metadataList.Messages()); } @@ -174,7 +174,7 @@ namespace loot { }), metadataList.BashTags()); EXPECT_EQ(std::list({ - Message(Message::say, "A global message."), + Message(Message::Type::say, "A global message."), }), metadataList.Messages()); // Non-regex plugins can be outputted in any order, and regex entries can @@ -294,8 +294,8 @@ namespace loot { PluginMetadata plugin = metadataList.FindPlugin(PluginMetadata(blankEsm)); ASSERT_EQ(std::list({ - Message(Message::warn, "This is a warning."), - Message(Message::say, "This message should be removed when evaluating conditions."), + Message(Message::Type::warn, "This is a warning."), + Message(Message::Type::say, "This message should be removed when evaluating conditions."), }), plugin.Messages()); plugin = metadataList.FindPlugin(PluginMetadata(blankEsp)); @@ -306,7 +306,7 @@ namespace loot { plugin = metadataList.FindPlugin(PluginMetadata(blankEsm)); EXPECT_EQ(std::list({ - Message(Message::warn, "This is a warning."), + Message(Message::Type::warn, "This is a warning."), }), plugin.Messages()); plugin = metadataList.FindPlugin(PluginMetadata(blankEsp)); diff --git a/src/tests/backend/plugin/plugin_sorter_test.h b/src/tests/backend/plugin/plugin_sorter_test.h index 0a409e53..322acbf7 100644 --- a/src/tests/backend/plugin/plugin_sorter_test.h +++ b/src/tests/backend/plugin/plugin_sorter_test.h @@ -73,7 +73,7 @@ namespace loot { TEST_P(PluginSorterTest, sortingShouldClearExistingGameMessages) { ASSERT_NO_THROW(game.LoadPlugins(false)); - game.AppendMessage(Message(Message::say, "1")); + game.AppendMessage(Message(Message::Type::say, "1")); ASSERT_FALSE(game.GetMessages().empty()); PluginSorter ps; @@ -86,7 +86,7 @@ namespace loot { PluginMetadata plugin(blankEsm); plugin.LoadAfter({File(blankMasterDependentEsm)}); game.GetUserlist().AddPlugin(plugin); - game.AppendMessage(Message(Message::say, "1")); + game.AppendMessage(Message(Message::Type::say, "1")); ASSERT_FALSE(game.GetMessages().empty()); PluginSorter ps; diff --git a/src/tests/backend/plugin/plugin_test.h b/src/tests/backend/plugin/plugin_test.h index 6d052aa0..96a61d65 100644 --- a/src/tests/backend/plugin/plugin_test.h +++ b/src/tests/backend/plugin/plugin_test.h @@ -280,7 +280,7 @@ namespace loot { EXPECT_FALSE(plugin.CheckInstallValidity(game)); EXPECT_EQ(std::list({ - Message(Message::error, "This plugin requires \"" + missingEsp + "\" to be installed, but it is missing."), + Message(Message::Type::error, "This plugin requires \"" + missingEsp + "\" to be installed, but it is missing."), }), plugin.Messages()); } @@ -293,7 +293,7 @@ namespace loot { EXPECT_FALSE(plugin.CheckInstallValidity(game)); EXPECT_EQ(std::list({ - Message(Message::error, "This plugin is incompatible with \"" + masterFile + "\", but both are present."), + Message(Message::Type::error, "This plugin is incompatible with \"" + masterFile + "\", but both are present."), }), plugin.Messages()); } @@ -316,7 +316,7 @@ namespace loot { EXPECT_FALSE(plugin.CheckInstallValidity(game)); EXPECT_EQ(std::list({ - Message(Message::error, "This plugin requires \"" + blankDifferentEsm + "\" to be active, but it is inactive."), + Message(Message::Type::error, "This plugin requires \"" + blankDifferentEsm + "\" to be active, but it is inactive."), }), plugin.Messages()); } diff --git a/src/tests/printers.h b/src/tests/printers.h index a5f105a2..74705b77 100644 --- a/src/tests/printers.h +++ b/src/tests/printers.h @@ -55,15 +55,15 @@ namespace loot { void PrintTo(const Message& value, ::std::ostream* os) { std::string type; - if (value.Type() == Message::warn) + if (value.GetType() == Message::Type::warn) type = "warn"; - else if (value.Type() == Message::error) + else if (value.GetType() == Message::Type::error) type = "error"; else type = "say"; *os << "Message(\"" << type << "\", " - << ::testing::PrintToString(value.Content()) << ", " + << ::testing::PrintToString(value.GetContent()) << ", " << "\"" << value.Condition() << "\"" << ")"; }