Add language field to PluginMessage

The language selected is not always the language asked for, so this
could be useful for checking.
This commit is contained in:
Oliver Hamlet
2016-08-24 08:08:23 +01:00
parent 8a7862dbab
commit 5cc6a81016
4 changed files with 23 additions and 8 deletions
+3
View File
@@ -37,6 +37,9 @@ struct PluginMessage {
/** @brief The type of the message. */
MessageType type;
/** @brief The language the message string is written in. */
LanguageCode language;
/**
* @brief The message string, which may be formatted using
* [GitHub Flavored Markdown](https://help.github.com/articles/github-flavored-markdown).
+12 -8
View File
@@ -169,18 +169,12 @@ std::vector<PluginMessage> ApiDatabase::GetPluginMessages(const std::string& plu
PluginMetadata pluginMetadata = game_.GetMasterlist().FindPlugin(PluginMetadata(plugin));
for (const auto& message : pluginMetadata.Messages()) {
PluginMessage pluginMessage;
pluginMessage.type = message.GetType();
pluginMessage.text = message.GetContent(language).GetText();
messages.push_back(pluginMessage);
messages.push_back(convertMessage(message, language));
}
pluginMetadata = game_.GetUserlist().FindPlugin(PluginMetadata(plugin));
for (const auto& message : pluginMetadata.Messages()) {
PluginMessage pluginMessage;
pluginMessage.type = message.GetType();
pluginMessage.text = message.GetContent(language).GetText();
messages.push_back(pluginMessage);
messages.push_back(convertMessage(message, language));
}
return messages;
@@ -249,4 +243,14 @@ void ApiDatabase::WriteMinimalList(const std::string& outputFile, const bool ove
out << yout.c_str();
out.close();
}
PluginMessage ApiDatabase::convertMessage(const Message& message, const LanguageCode language) {
PluginMessage pluginMessage;
MessageContent content = message.GetContent(language);
pluginMessage.type = message.GetType();
pluginMessage.language = content.GetLanguage();
pluginMessage.text = content.GetText();
return pluginMessage;
}
}
+2
View File
@@ -62,6 +62,8 @@ struct ApiDatabase : public DatabaseInterface {
void WriteMinimalList(const std::string& outputFile,
const bool overwrite);
private:
PluginMessage convertMessage(const Message& message, const LanguageCode language);
Game game_;
Masterlist unevaluatedMasterlist_;
+6
View File
@@ -362,6 +362,7 @@ TEST_P(DatabaseInterfaceTest, getPluginMessagesShouldReturnOkAndOutputANoteIfAPl
EXPECT_NO_THROW(messages = db_->GetPluginMessages(blankEsm, LanguageCode::english));
ASSERT_EQ(1, messages.size());
EXPECT_EQ(MessageType::say, messages[0].type);
EXPECT_EQ(LanguageCode::english, messages[0].language);
EXPECT_EQ(noteMessage, messages[0].text);
}
@@ -373,6 +374,7 @@ TEST_P(DatabaseInterfaceTest, getPluginMessagesShouldReturnOkAndOutputAWarningIf
EXPECT_NO_THROW(messages = db_->GetPluginMessages(blankDifferentEsm, LanguageCode::english));
ASSERT_EQ(1, messages.size());
EXPECT_EQ(MessageType::warn, messages[0].type);
EXPECT_EQ(LanguageCode::english, messages[0].language);
EXPECT_EQ(warningMessage, messages[0].text);
}
@@ -384,6 +386,7 @@ TEST_P(DatabaseInterfaceTest, getPluginMessagesShouldReturnOkAndOutputAnErrorIfA
EXPECT_NO_THROW(messages = db_->GetPluginMessages(blankDifferentEsp, LanguageCode::english));
ASSERT_EQ(1, messages.size());
EXPECT_EQ(MessageType::error, messages[0].type);
EXPECT_EQ(LanguageCode::english, messages[0].language);
EXPECT_EQ(errorMessage, messages[0].text);
}
@@ -395,10 +398,13 @@ TEST_P(DatabaseInterfaceTest, getPluginMessagesShouldReturnOkAndOutputMultipleMe
EXPECT_NO_THROW(messages = db_->GetPluginMessages(blankDifferentMasterDependentEsp, LanguageCode::english));
ASSERT_EQ(3, messages.size());
EXPECT_EQ(MessageType::say, messages[0].type);
EXPECT_EQ(LanguageCode::english, messages[0].language);
EXPECT_EQ(noteMessage, messages[0].text);
EXPECT_EQ(MessageType::warn, messages[1].type);
EXPECT_EQ(LanguageCode::english, messages[1].language);
EXPECT_EQ(warningMessage, messages[1].text);
EXPECT_EQ(MessageType::error, messages[2].type);
EXPECT_EQ(LanguageCode::english, messages[2].language);
EXPECT_EQ(errorMessage, messages[2].text);
}