diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-08-12 20:19:29 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-08-12 21:02:17 +0000 |
commit | d972c7ff721a5006b5e4ae4d467cd015ac3a09dc (patch) | |
tree | 4a7eb3d78390168e6d3ca1493d4187ab472c6bf3 /searchcore/src/tests/proton/server/documentretriever_test.cpp | |
parent | c15cc38f296e37ed95f05445b0a7c569b7b28b7f (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.cpp | 43 |
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(¬_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(); } |