aboutsummaryrefslogtreecommitdiffstats
path: root/searchcore/src/tests/proton/reference/gid_to_lid_change_handler/gid_to_lid_change_handler_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'searchcore/src/tests/proton/reference/gid_to_lid_change_handler/gid_to_lid_change_handler_test.cpp')
-rw-r--r--searchcore/src/tests/proton/reference/gid_to_lid_change_handler/gid_to_lid_change_handler_test.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/searchcore/src/tests/proton/reference/gid_to_lid_change_handler/gid_to_lid_change_handler_test.cpp b/searchcore/src/tests/proton/reference/gid_to_lid_change_handler/gid_to_lid_change_handler_test.cpp
index 6aafb3217c7..263159cefea 100644
--- a/searchcore/src/tests/proton/reference/gid_to_lid_change_handler/gid_to_lid_change_handler_test.cpp
+++ b/searchcore/src/tests/proton/reference/gid_to_lid_change_handler/gid_to_lid_change_handler_test.cpp
@@ -260,6 +260,38 @@ TEST_F("Test that pending removes are merged", Fixture)
f.removeListeners("testdoc", {});
}
+TEST_F("Test that out of order notifyRemoveDone is handled", Fixture)
+{
+ auto &stats = f.addStats();
+ auto listener = std::make_unique<MyListener>(stats, "test", "testdoc");
+ f.addListener(std::move(listener));
+ f.notifyRemove(toGid(doc1), 20);
+ TEST_DO(stats.assertChanges(0, 1));
+ f.notifyRemove(toGid(doc1), 40);
+ TEST_DO(stats.assertChanges(0, 1));
+ f.notifyRemoveDone(toGid(doc1), 40);
+ TEST_DO(stats.assertChanges(0, 1));
+ f.notifyRemoveDone(toGid(doc1), 20);
+ TEST_DO(stats.assertChanges(0, 1));
+ f.notifyPutDone(toGid(doc1), 12, 50);
+ TEST_DO(stats.assertChanges(1, 1));
+ f.removeListeners("testdoc", {});
+}
+
+TEST_F("Test that out of order notifyPutDone is handled", Fixture)
+{
+ auto &stats = f.addStats();
+ auto listener = std::make_unique<MyListener>(stats, "test", "testdoc");
+ f.addListener(std::move(listener));
+ f.notifyRemove(toGid(doc1), 20);
+ TEST_DO(stats.assertChanges(0, 1));
+ f.notifyPutDone(toGid(doc1), 12, 50);
+ TEST_DO(stats.assertChanges(1, 1));
+ f.notifyRemoveDone(toGid(doc1), 20);
+ TEST_DO(stats.assertChanges(1, 1));
+ f.removeListeners("testdoc", {});
+}
+
}
TEST_MAIN()