diff options
author | Tor Egge <Tor.Egge@yahoo-inc.com> | 2017-02-22 15:40:25 +0000 |
---|---|---|
committer | Tor Egge <Tor.Egge@yahoo-inc.com> | 2017-02-22 15:40:25 +0000 |
commit | 2cf79892f7ce7ae3492825f048a81185efc75550 (patch) | |
tree | f821e81674d5ffae9c1e2d8621edc8533802c39b /searchlib/src/tests/attribute/reference_attribute/reference_attribute_test.cpp | |
parent | f7f8822f4a690cd341379f4c6952119c86176fe1 (diff) |
Add gid to lid change handler and gid to lid change registrator.
Diffstat (limited to 'searchlib/src/tests/attribute/reference_attribute/reference_attribute_test.cpp')
-rw-r--r-- | searchlib/src/tests/attribute/reference_attribute/reference_attribute_test.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/searchlib/src/tests/attribute/reference_attribute/reference_attribute_test.cpp b/searchlib/src/tests/attribute/reference_attribute/reference_attribute_test.cpp index 61ac12e634f..a60cda51703 100644 --- a/searchlib/src/tests/attribute/reference_attribute/reference_attribute_test.cpp +++ b/searchlib/src/tests/attribute/reference_attribute/reference_attribute_test.cpp @@ -143,6 +143,11 @@ struct Fixture EXPECT_EQUAL(expLid, ref->lid()); } + void assertNoRefLid(uint32_t doc) { + auto ref = getRef(doc); + EXPECT_TRUE(ref == nullptr); + } + void save() { attr().save(); } @@ -179,6 +184,9 @@ struct Fixture void notifyGidToLidChange(const GlobalId &gid, uint32_t referencedDoc) { _attr->notifyGidToLidChange(gid, referencedDoc); } + void notifyGidToLidChangeListenerRegistered() { + _attr->notifyGidToLidChangeListenerRegistered(); + } }; TEST_F("require that we can instantiate reference attribute", Fixture) @@ -309,4 +317,28 @@ TEST_F("require that notifyGidToLidChange works", Fixture) TEST_DO(f.assertRefLid(10, 3)); } +TEST_F("require that notifyGidToLidChangeListenerRegistered works", Fixture) +{ + f.ensureDocIdLimit(6); + f.set(1, toGid(doc1)); + f.set(2, toGid(doc2)); + f.set(3, toGid(doc1)); + f.set(4, toGid(doc3)); + f.commit(); + TEST_DO(f.assertRefLid(0, 1)); + TEST_DO(f.assertRefLid(0, 2)); + TEST_DO(f.assertRefLid(0, 3)); + TEST_DO(f.assertRefLid(0, 4)); + TEST_DO(f.assertNoRefLid(5)); + std::shared_ptr<search::IGidToLidMapperFactory> factory = + std::make_shared<MyGidToLidMapperFactory>(); + f._attr->setGidToLidMapperFactory(factory); + f.notifyGidToLidChangeListenerRegistered(); + TEST_DO(f.assertRefLid(10, 1)); + TEST_DO(f.assertRefLid(17, 2)); + TEST_DO(f.assertRefLid(10, 3)); + TEST_DO(f.assertRefLid(0, 4)); + TEST_DO(f.assertNoRefLid(5)); +} + TEST_MAIN() { TEST_RUN_ALL(); } |