aboutsummaryrefslogtreecommitdiffstats
path: root/searchcore/src/tests/proton/docsummary
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-09-02 07:15:37 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-09-02 07:15:37 +0000
commitff30bfb66ae9955ce3ecca837ae277f6f0f3808c (patch)
tree8b7c4ba2b3819699cb5ab7d739ca9dc564040d19 /searchcore/src/tests/proton/docsummary
parentb329203e7093e3c770065ea05d6a8cd01ecf01f6 (diff)
Add unit test for field filtering.
Diffstat (limited to 'searchcore/src/tests/proton/docsummary')
-rw-r--r--searchcore/src/tests/proton/docsummary/docsummary.cpp35
-rw-r--r--searchcore/src/tests/proton/docsummary/summary.cfg7
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"