From 41519ce71ca1b9fca34205c2bbd9cc11d56b689e Mon Sep 17 00:00:00 2001 From: Tor Egge Date: Sun, 3 Sep 2017 13:02:29 +0000 Subject: Test that gid mapper can iterate over known gids. --- .../gid_to_lid_mapper/gid_to_lid_mapper_test.cpp | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'searchcore/src/tests/proton/reference/gid_to_lid_mapper/gid_to_lid_mapper_test.cpp') diff --git a/searchcore/src/tests/proton/reference/gid_to_lid_mapper/gid_to_lid_mapper_test.cpp b/searchcore/src/tests/proton/reference/gid_to_lid_mapper/gid_to_lid_mapper_test.cpp index c3181d27bef..5445ba9c585 100644 --- a/searchcore/src/tests/proton/reference/gid_to_lid_mapper/gid_to_lid_mapper_test.cpp +++ b/searchcore/src/tests/proton/reference/gid_to_lid_mapper/gid_to_lid_mapper_test.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -40,6 +41,31 @@ void assertLid(const std::unique_ptr &mapper, const ves EXPECT_EQUAL(lid, mapper->mapGidToLid(toGid(docId))); } +using GidMap = std::map; + +struct GidCollector : public search::IGidToLidMapperVisitor +{ + GidMap &_map; + GidCollector(GidMap &map) + : IGidToLidMapperVisitor(), + _map(map) + { + } + virtual void visit(const document::GlobalId &gid, uint32_t lid) const override { _map.insert(std::make_pair(gid, lid)); } +}; + +GidMap collectGids(const std::unique_ptr &mapper) +{ + GidMap result; + mapper->foreach(GidCollector(result)); + return result; +} + +void assertGids(const GidMap &expGids, const GidMap &gids) +{ + EXPECT_EQUAL(expGids, gids); +} + } struct Fixture @@ -136,6 +162,17 @@ TEST_F("Test that mapper holds read guard", Fixture) TEST_DO(f.assertPut(doc3, 2, 10, 7, [&]() -> auto & { return mapper; })); } +TEST_F("Test that gid mapper can iterate over known gids", Fixture) +{ + auto factory = f.getGidToLidMapperFactory(); + auto mapper = factory->getMapper(); + TEST_DO(assertGids({{toGid(doc1), 4}, {toGid(doc2), 7}}, collectGids(mapper))); + f.put(doc3); + TEST_DO(assertGids({{toGid(doc1), 4}, {toGid(doc2), 7}, {toGid(doc3), 1}}, collectGids(mapper))); + f.remove(4); + TEST_DO(assertGids({{toGid(doc2), 7}, {toGid(doc3), 1}}, collectGids(mapper))); +} + } TEST_MAIN() -- cgit v1.2.3