summaryrefslogtreecommitdiffstats
path: root/searchcore/src/tests/proton/reference
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@oath.com>2017-08-31 13:06:02 +0000
committerTor Egge <Tor.Egge@oath.com>2017-08-31 13:14:54 +0000
commit4c2c98fbf3ecd1ae88fb97a01aa8dcf5b2863bbc (patch)
tree679b2fde8b805e93d671893ac7a0c32f90090d88 /searchcore/src/tests/proton/reference
parent033d298bc2e29fb43640e478c2ecabad21e4e4da (diff)
Keep track of mapping from gid to referenced lid in reference attribute
even when no documents currently reference that gid in the reference attribute. This eliminates the need for using the gid to lid mapper after populateReferencedLids() has been called.
Diffstat (limited to 'searchcore/src/tests/proton/reference')
-rw-r--r--searchcore/src/tests/proton/reference/gid_to_lid_change_listener/gid_to_lid_change_listener_test.cpp31
1 files changed, 4 insertions, 27 deletions
diff --git a/searchcore/src/tests/proton/reference/gid_to_lid_change_listener/gid_to_lid_change_listener_test.cpp b/searchcore/src/tests/proton/reference/gid_to_lid_change_listener/gid_to_lid_change_listener_test.cpp
index 08787e41438..4c6f9017000 100644
--- a/searchcore/src/tests/proton/reference/gid_to_lid_change_listener/gid_to_lid_change_listener_test.cpp
+++ b/searchcore/src/tests/proton/reference/gid_to_lid_change_listener/gid_to_lid_change_listener_test.cpp
@@ -7,6 +7,7 @@
#include <vespa/searchcore/proton/reference/gid_to_lid_change_listener.h>
#include <vespa/searchlib/common/i_gid_to_lid_mapper_factory.h>
#include <vespa/searchlib/common/i_gid_to_lid_mapper.h>
+#include <vespa/searchlib/test/mock_gid_to_lid_mapping.h>
#include <map>
#include <vespa/log/log.h>
LOG_SETUP("gid_to_lid_change_listener_test");
@@ -19,6 +20,7 @@ using search::attribute::Config;
using search::attribute::BasicType;
using search::attribute::Reference;
using search::attribute::ReferenceAttribute;
+using search::attribute::test::MockGidToLidMapperFactory;
namespace proton {
@@ -32,39 +34,14 @@ vespalib::string doc1("id:test:music::1");
vespalib::string doc2("id:test:music::2");
vespalib::string doc3("id:test:music::3");
-using MockGidToLidMap = std::map<GlobalId, uint32_t>;
-
-struct MyGidToLidMapper : public search::IGidToLidMapper
+struct MyGidToLidMapperFactory : public MockGidToLidMapperFactory
{
- const MockGidToLidMap &_map;
- MyGidToLidMapper(const MockGidToLidMap &map)
- : _map(map)
- {
- }
- virtual uint32_t mapGidToLid(const document::GlobalId &gid) const override {
- auto itr = _map.find(gid);
- if (itr != _map.end()) {
- return itr->second;
- } else {
- return 0u;
- }
- }
-};
-
-struct MyGidToLidMapperFactory : public search::IGidToLidMapperFactory
-{
- MockGidToLidMap _map;
-
MyGidToLidMapperFactory()
- : _map()
+ : MockGidToLidMapperFactory()
{
_map.insert({toGid(doc1), 10});
_map.insert({toGid(doc2), 17});
}
-
- virtual std::unique_ptr<search::IGidToLidMapper> getMapper() const override {
- return std::make_unique<MyGidToLidMapper>(_map);
- }
};
}