aboutsummaryrefslogtreecommitdiffstats
path: root/searchcore/src/tests/proton/server/documentretriever_test.cpp
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-08-12 20:19:29 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-08-12 21:02:17 +0000
commitd972c7ff721a5006b5e4ae4d467cd015ac3a09dc (patch)
tree4a7eb3d78390168e6d3ca1493d4187ab472c6bf3 /searchcore/src/tests/proton/server/documentretriever_test.cpp
parentc15cc38f296e37ed95f05445b0a7c569b7b28b7f (diff)
Control your negations... And test that you do.
Diffstat (limited to 'searchcore/src/tests/proton/server/documentretriever_test.cpp')
-rw-r--r--searchcore/src/tests/proton/server/documentretriever_test.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/searchcore/src/tests/proton/server/documentretriever_test.cpp b/searchcore/src/tests/proton/server/documentretriever_test.cpp
index 09aaa383f1e..d956e1ff647 100644
--- a/searchcore/src/tests/proton/server/documentretriever_test.cpp
+++ b/searchcore/src/tests/proton/server/documentretriever_test.cpp
@@ -567,6 +567,49 @@ TEST_F("require that tensor attribute can be retrieved", Fixture) {
ASSERT_TRUE(tensor_value->getAsTensorPtr()->equals(*dynamic_tensor));
}
+struct Lookup : public IFieldInfo
+{
+ Lookup() : _count(0) {}
+ bool isFieldAttribute(const document::Field & field) const override {
+ _count++;
+ return (field.getName()[0] == 'a');
+ }
+ mutable unsigned _count;
+};
+
+TEST("require ") {
+ Lookup lookup;
+ FieldSetAttributeDB fsDB(lookup);
+ document::Field attr1("attr1", 1, *document::DataType::LONG, true);
+ document::Field attr2("attr2", 2, *document::DataType::LONG, true);
+ document::Field not_attr1("not_attr1", 3, *document::DataType::LONG, true);
+ document::Field::Set allAttr;
+ allAttr.insert(&attr1);
+ EXPECT_TRUE(fsDB.areAllFieldsAttributes(13, allAttr));
+ EXPECT_EQUAL(1u, lookup._count);
+ EXPECT_TRUE(fsDB.areAllFieldsAttributes(13, allAttr));
+ EXPECT_EQUAL(1u, lookup._count);
+
+ allAttr.insert(&attr2);
+ EXPECT_TRUE(fsDB.areAllFieldsAttributes(17, allAttr));
+ EXPECT_EQUAL(3u, lookup._count);
+ EXPECT_TRUE(fsDB.areAllFieldsAttributes(17, allAttr));
+ EXPECT_EQUAL(3u, lookup._count);
+
+ document::Field::Set notAllAttr;
+ notAllAttr.insert(&not_attr1);
+ EXPECT_FALSE(fsDB.areAllFieldsAttributes(33, notAllAttr));
+ EXPECT_EQUAL(4u, lookup._count);
+ EXPECT_FALSE(fsDB.areAllFieldsAttributes(33, notAllAttr));
+ EXPECT_EQUAL(4u, lookup._count);
+
+ allAttr.insert(&attr1);
+ EXPECT_FALSE(fsDB.areAllFieldsAttributes(39, notAllAttr));
+ EXPECT_EQUAL(5u, lookup._count);
+ EXPECT_FALSE(fsDB.areAllFieldsAttributes(39, notAllAttr));
+ EXPECT_EQUAL(5u, lookup._count);
+}
+
} // namespace
TEST_MAIN() { TEST_RUN_ALL(); }