mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
Reimplement message types as strongly-typed enums
This commit is contained in:
+3
-3
@@ -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<unsigned int>(loot::Message::Type::say);
|
||||
const unsigned int loot_message_warn = static_cast<unsigned int>(loot::Message::Type::warn);
|
||||
const unsigned int loot_message_error = static_cast<unsigned int>(loot::Message::Type::error);
|
||||
|
||||
// LOOT message languages.
|
||||
const unsigned int loot_lang_english = loot::Language::english;
|
||||
|
||||
+1
-1
@@ -104,7 +104,7 @@ void loot_db::setPluginMessages(const std::list<loot::Message>& pluginMessages)
|
||||
for (const auto& message : pluginMessages) {
|
||||
pluginMessageStrings[i] = message.ChooseContent(loot::Language::english).Text();
|
||||
|
||||
cPluginMessages[i].type = message.Type();
|
||||
cPluginMessages[i].type = static_cast<unsigned int>(message.GetType());
|
||||
cPluginMessages[i].message = pluginMessageStrings[i].c_str();
|
||||
|
||||
++i;
|
||||
|
||||
@@ -115,7 +115,7 @@ namespace loot {
|
||||
std::vector<Message> GameCache::GetMessages() const {
|
||||
vector<Message> 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;
|
||||
}
|
||||
|
||||
@@ -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<MessageContent>& content,
|
||||
Message::Message(const Type type, const std::vector<MessageContent>& 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<MessageContent> Message::Content() const {
|
||||
std::vector<MessageContent> 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();
|
||||
|
||||
@@ -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<MessageContent>& content,
|
||||
Message(const Type type, const std::vector<MessageContent>& 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<MessageContent> Content() const;
|
||||
Type GetType() const;
|
||||
std::vector<MessageContent> 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<MessageContent> _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<std::string>();
|
||||
|
||||
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<loot::MessageContent> content;
|
||||
if (node["content"].IsSequence())
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<Message> 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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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<Message> 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);
|
||||
}
|
||||
|
||||
|
||||
@@ -241,41 +241,41 @@ namespace loot {
|
||||
|
||||
TEST_P(loot_db_test, settingPluginMessagesShouldCopyThem) {
|
||||
db->setPluginMessages(std::list<Message>({
|
||||
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<unsigned int>(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<unsigned int>(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(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(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<unsigned int>(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<unsigned int>(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<unsigned int>(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(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>({
|
||||
PluginMetadata("Blank.esm"),
|
||||
|
||||
@@ -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<Message> 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<Message> 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);
|
||||
|
||||
@@ -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<MessageContents>());
|
||||
EXPECT_EQ(message.GetContent(), node["content"].as<MessageContents>());
|
||||
}
|
||||
|
||||
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<Message>();
|
||||
|
||||
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<Message>();
|
||||
|
||||
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<Message>();
|
||||
|
||||
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<Message>();
|
||||
|
||||
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<Message>();
|
||||
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<Message>();
|
||||
|
||||
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<Message>();
|
||||
|
||||
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) {
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
@@ -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(Message::say, "content")
|
||||
Message(Message::Type::say, "content")
|
||||
}), plugin.Messages());
|
||||
EXPECT_EQ(std::set<Tag>({
|
||||
Tag("Relev")
|
||||
|
||||
@@ -86,7 +86,7 @@ namespace loot {
|
||||
|
||||
EXPECT_NO_THROW(metadataList.Load(metadataPath));
|
||||
EXPECT_EQ(std::list<Message>({
|
||||
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(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(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(Message::warn, "This is a warning."),
|
||||
Message(Message::Type::warn, "This is a warning."),
|
||||
}), plugin.Messages());
|
||||
|
||||
plugin = metadataList.FindPlugin(PluginMetadata(blankEsp));
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -280,7 +280,7 @@ namespace loot {
|
||||
|
||||
EXPECT_FALSE(plugin.CheckInstallValidity(game));
|
||||
EXPECT_EQ(std::list<Message>({
|
||||
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(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(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());
|
||||
}
|
||||
|
||||
|
||||
@@ -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() << "\""
|
||||
<< ")";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user