aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/attribute/reference_attribute/reference_attribute_test.cpp
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@yahoo-inc.com>2017-02-22 15:40:25 +0000
committerTor Egge <Tor.Egge@yahoo-inc.com>2017-02-22 15:40:25 +0000
commit2cf79892f7ce7ae3492825f048a81185efc75550 (patch)
treef821e81674d5ffae9c1e2d8621edc8533802c39b /searchlib/src/tests/attribute/reference_attribute/reference_attribute_test.cpp
parentf7f8822f4a690cd341379f4c6952119c86176fe1 (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.cpp32
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(); }