shill: key_value_store: Implement "Remove"
BUG=chromium-os:28303
TEST=New unit tests
Change-Id: I62836142eed1fd69ec71039c5556fe8f31d16b59
Reviewed-on: https://gerrit.chromium.org/gerrit/19068
Commit-Ready: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/key_value_store_unittest.cc b/key_value_store_unittest.cc
index 03964da..33123d2 100644
--- a/key_value_store_unittest.cc
+++ b/key_value_store_unittest.cc
@@ -24,4 +24,15 @@
EXPECT_EQ("zoo", store_.LookupString("foo", "bar"));
}
+TEST_F(KeyValueStoreTest, RemoveString) {
+ const std::string kKey("foo");
+ store_.SetString(kKey, "zoo");
+ EXPECT_EQ("zoo", store_.LookupString(kKey, "bar"));
+ store_.RemoveString(kKey);
+ EXPECT_EQ("bar", store_.LookupString(kKey, "bar"));
+ // Make sure we don't get an exception/infinite loop if we do a
+ // "RemoveString()" when the key does not exist.
+ store_.RemoveString(kKey);
+}
+
} // namespace shill