Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'indexer/indexer_tests/feature_metadata_test.cpp')
-rw-r--r--indexer/indexer_tests/feature_metadata_test.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/indexer/indexer_tests/feature_metadata_test.cpp b/indexer/indexer_tests/feature_metadata_test.cpp
index b61a17df5c..38647b56ce 100644
--- a/indexer/indexer_tests/feature_metadata_test.cpp
+++ b/indexer/indexer_tests/feature_metadata_test.cpp
@@ -9,6 +9,42 @@
using feature::Metadata;
+UNIT_TEST(Feature_Metadata_GetSet)
+{
+ Metadata m;
+ Metadata::EType const type = Metadata::FMD_ELE;
+ // Absent types should return empty values.
+ TEST_EQUAL(m.Get(type), "", ());
+ m.Set(type, "12345");
+ TEST_EQUAL(m.Get(type), "12345", ());
+ TEST_EQUAL(m.Size(), 1, ());
+ // Same types should replace old metadata values.
+ m.Set(type, "5678");
+ TEST_EQUAL(m.Get(type), "5678", ());
+ // Empty values should drop fields.
+ m.Set(type, "");
+ TEST_EQUAL(m.Get(type), "", ());
+ TEST_EQUAL(m.Size(), 0, ());
+ TEST(m.Empty(), ());
+}
+
+static map<Metadata::EType, string> const kPairs = { {Metadata::FMD_ELE, "12345"},
+ {Metadata::FMD_CUISINE, "greek;mediterranean"},
+ {Metadata::FMD_EMAIL, "cool@email.at"} };
+
+UNIT_TEST(Feature_Metadata_PresentTypes)
+{
+ Metadata m;
+ for (auto const & value : kPairs)
+ m.Set(value.first, value.second);
+ TEST_EQUAL(m.Size(), kPairs.size(), ());
+
+ auto const types = m.GetPresentTypes();
+ TEST_EQUAL(types.size(), m.Size(), ());
+ for (auto const & type : types)
+ TEST_EQUAL(m.Get(type), kPairs.find(type)->second, ());
+}
+
UNIT_TEST(Feature_Serialization)
{
Metadata original;