diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-09-02 07:15:37 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-09-02 07:15:37 +0000 |
commit | ff30bfb66ae9955ce3ecca837ae277f6f0f3808c (patch) | |
tree | 8b7c4ba2b3819699cb5ab7d739ca9dc564040d19 /searchcore/src/tests/proton/docsummary | |
parent | b329203e7093e3c770065ea05d6a8cd01ecf01f6 (diff) |
Add unit test for field filtering.
Diffstat (limited to 'searchcore/src/tests/proton/docsummary')
-rw-r--r-- | searchcore/src/tests/proton/docsummary/docsummary.cpp | 35 | ||||
-rw-r--r-- | searchcore/src/tests/proton/docsummary/summary.cfg | 7 |
2 files changed, 42 insertions, 0 deletions
diff --git a/searchcore/src/tests/proton/docsummary/docsummary.cpp b/searchcore/src/tests/proton/docsummary/docsummary.cpp index e470274d42e..93e8f3d248b 100644 --- a/searchcore/src/tests/proton/docsummary/docsummary.cpp +++ b/searchcore/src/tests/proton/docsummary/docsummary.cpp @@ -570,6 +570,41 @@ addField(Schema & s, s.addAttributeField(Schema::AttributeField(name, dtype, ctype, tensor_spec)); } +void verifyFieldListHonoured(DocsumRequest::FieldList fields, const std::string & json) { + Schema s; + addField(s, "ba", schema::DataType::INT32, CollectionType::SINGLE); + addField(s, "bb", schema::DataType::FLOAT, CollectionType::SINGLE); + + BuildContext bc(s); + DBContext dc(bc._repo, getDocTypeName()); + dc.put(*bc._bld.startDocument("id:ns:searchdocument::1"). + startAttributeField("ba"). + addInt(10). + endField(). + startAttributeField("bb"). + addFloat(10.1250). + endField(). + endDocument(), + 1); + + DocsumRequest req; + req.resultClassName = "class6"; + req.hits.emplace_back(gid1); + req.setFields(fields); + DocsumReply::UP rep = dc._ddb->getDocsums(req); + EXPECT_TRUE(assertSlime(json, *rep)); +} + +TEST("requireThatFieldListIsHonoured") +{ + verifyFieldListHonoured({}, "{docsums:[ {docsum:{ba:10,bb:10.1250}} ]}"); + verifyFieldListHonoured({"ba","bb"}, "{docsums:[ {docsum:{ba:10,bb:10.1250}} ]}"); + verifyFieldListHonoured({"ba"}, "{docsums:[ {docsum:{ba:10}} ]}"); + verifyFieldListHonoured({"bb"}, "{docsums:[ {docsum:{bb:10.1250}} ]}"); + verifyFieldListHonoured({"unknown"}, "{docsums:[ {docsum:{}} ]}"); + verifyFieldListHonoured({"ba", "unknown"}, "{docsums:[ {docsum:{ba:10}} ]}"); +} + TEST("requireThatAttributesAreUsed") { Schema s; diff --git a/searchcore/src/tests/proton/docsummary/summary.cfg b/searchcore/src/tests/proton/docsummary/summary.cfg index db18babb03b..cceb15c8fd2 100644 --- a/searchcore/src/tests/proton/docsummary/summary.cfg +++ b/searchcore/src/tests/proton/docsummary/summary.cfg @@ -106,3 +106,10 @@ classes[5].fields[4].name "wp2" classes[5].fields[4].type "jsonstring" classes[5].fields[5].name "wp2x" classes[5].fields[5].type "xmlstring" +classes[6].name "class6" +classes[6].id 6 +classes[6].fields[6] +classes[6].fields[0].name "ba" +classes[6].fields[0].type "integer" +classes[6].fields[1].name "bb" +classes[6].fields[1].type "float" |