return (false);
}
+void
+StampedElement::delServerTag(const std::string& server_tag) {
+ for (auto it = server_tags_.begin(); it < server_tags_.end(); ++it) {
+ if (it->get() == server_tag) {
+ server_tags_.erase(it);
+ return;
+ }
+ }
+ isc_throw(NotFound, "can't find server tag '" << server_tag << "' to delete");
+}
+
bool
StampedElement::hasAllServerTag() const {
return (hasServerTag(ServerTag(ServerTag::ALL)));
server_tags_.push_back(ServerTag(server_tag));
}
+ /// @brief Deletes server tag.
+ ///
+ /// Remove the first occurrence of the given server tag.
+ ///
+ /// @param server_tag server tag to delete.
+ /// @throw NotFound if the server tag cannot be found.
+ void delServerTag(const std::string& server_tag);
+
/// @brief Returns server tags.
///
/// @return Server tag as string.
}
// Tests that one or more server tag can be specified.
-TEST(StampedElementTest, setServerTags) {
+TEST(StampedElementTest, setServerTag) {
StampedElement element;
element.setServerTag("foo");
EXPECT_EQ(1, element.getServerTags().size());
EXPECT_TRUE(element.hasAllServerTag());
}
+// Tests that a server tag can be deleted.
+TEST(StampedElementTest, delServerTag) {
+ StampedElement element;
+ EXPECT_THROW(element.delServerTag("foo"), isc::NotFound);
+ element.setServerTag("foo");
+ element.setServerTag("foo");
+ ASSERT_EQ(2, element.getServerTags().size());
+ EXPECT_EQ("foo", element.getServerTags()[0].get());
+ EXPECT_EQ("foo", element.getServerTags()[1].get());
+
+ EXPECT_NO_THROW(element.delServerTag("foo"));
+ ASSERT_EQ(1, element.getServerTags().size());
+ EXPECT_EQ("foo", element.getServerTags()[0].get());
+
+ EXPECT_NO_THROW(element.delServerTag("foo"));
+ EXPECT_EQ(0, element.getServerTags().size());
+ EXPECT_THROW(element.delServerTag("foo"), isc::NotFound);
+}
+
+
// Test that metadata can be created from the StampedElement.
TEST(StampedElementTest, getMetadata) {
StampedElement element;