mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
Add a Message constructor that takes a SimpleMessage
This commit is contained in:
@@ -76,6 +76,14 @@ public:
|
||||
const std::vector<MessageContent>& content,
|
||||
const std::string& condition = "");
|
||||
|
||||
/**
|
||||
* Construct a Message object from a SimpleMessage object.
|
||||
* @param message
|
||||
* The SimpleMessage object.
|
||||
* @return A Message object.
|
||||
*/
|
||||
LOOT_API explicit Message(const SimpleMessage& message);
|
||||
|
||||
/**
|
||||
* A less-than operator implemented with no semantics so that Message objects
|
||||
* can be stored in sets.
|
||||
|
||||
@@ -34,10 +34,9 @@ Message::Message() : type_(MessageType::say) {}
|
||||
Message::Message(const MessageType type,
|
||||
const std::string& content,
|
||||
const std::string& condition) :
|
||||
type_(type),
|
||||
ConditionalMetadata(condition) {
|
||||
content_.push_back(MessageContent(content));
|
||||
}
|
||||
type_(type),
|
||||
content_({MessageContent(content)}),
|
||||
ConditionalMetadata(condition) {}
|
||||
|
||||
Message::Message(const MessageType type,
|
||||
const std::vector<MessageContent>& content,
|
||||
@@ -58,6 +57,11 @@ Message::Message(const MessageType type,
|
||||
}
|
||||
}
|
||||
|
||||
Message::Message(const SimpleMessage& message) :
|
||||
type_(message.type),
|
||||
content_({MessageContent(message.text, message.language)}),
|
||||
ConditionalMetadata(message.condition) {}
|
||||
|
||||
bool Message::operator<(const Message& rhs) const {
|
||||
if (type_ < rhs.type_) {
|
||||
return true;
|
||||
|
||||
@@ -82,6 +82,22 @@ TEST_P(
|
||||
std::invalid_argument);
|
||||
}
|
||||
|
||||
TEST_P(MessageTest,
|
||||
simpleMessageConstructorShouldCreateAMessageWithASingleContentString) {
|
||||
SimpleMessage simple;
|
||||
simple.type = MessageType::error;
|
||||
simple.text = "ERROR";
|
||||
simple.language = "fr";
|
||||
simple.condition = "condition";
|
||||
|
||||
Message message(simple);
|
||||
|
||||
EXPECT_EQ(MessageType::error, message.GetType());
|
||||
EXPECT_EQ(MessageContents({MessageContent(simple.text, simple.language)}),
|
||||
message.GetContent());
|
||||
EXPECT_EQ("condition", message.GetCondition());
|
||||
}
|
||||
|
||||
TEST_P(MessageTest, equalityShouldRequireEqualMessageTypes) {
|
||||
Message message1(MessageType::say, "content");
|
||||
Message message2(MessageType::say, "content");
|
||||
|
||||
Reference in New Issue
Block a user