From f83e44760a72cc7d0226352b1114ffc3a8f97dee Mon Sep 17 00:00:00 2001 From: Arne H Juul Date: Tue, 15 Feb 2022 14:17:12 +0000 Subject: add special DocumentOnly fieldset in Java as well * should have same behavior in Java and C++ * extend unit tests to verify * note various places where we want to change the default on Vespa 8 branch --- .../test/java/com/yahoo/document/DocumentTestCaseBase.java | 4 ++++ .../java/com/yahoo/document/fieldset/FieldSetTestCase.java | 14 ++++++++++++++ 2 files changed, 18 insertions(+) (limited to 'document/src/test/java/com/yahoo') diff --git a/document/src/test/java/com/yahoo/document/DocumentTestCaseBase.java b/document/src/test/java/com/yahoo/document/DocumentTestCaseBase.java index bf9960c3ca3..871e54ca46c 100644 --- a/document/src/test/java/com/yahoo/document/DocumentTestCaseBase.java +++ b/document/src/test/java/com/yahoo/document/DocumentTestCaseBase.java @@ -5,6 +5,8 @@ import com.yahoo.document.datatypes.FloatFieldValue; import com.yahoo.document.datatypes.Raw; import java.nio.ByteBuffer; +import java.util.List; +import java.util.Map; import static org.junit.Assert.assertNotNull; @@ -61,6 +63,8 @@ public class DocumentTestCaseBase { stringField = testDocType.getField("stringattr"); minField = testDocType.getField("Minattr"); + testDocType.addFieldSets(Map.of("[document]", List.of("stringattr", "intattr"))); + docMan.registerDocumentType(testDocType); } diff --git a/document/src/test/java/com/yahoo/document/fieldset/FieldSetTestCase.java b/document/src/test/java/com/yahoo/document/fieldset/FieldSetTestCase.java index e1e93adfb6d..b6dff63ac7b 100644 --- a/document/src/test/java/com/yahoo/document/fieldset/FieldSetTestCase.java +++ b/document/src/test/java/com/yahoo/document/fieldset/FieldSetTestCase.java @@ -23,6 +23,7 @@ public class FieldSetTestCase extends DocumentTestCaseBase { @Test public void testClone() throws Exception { assertTrue(new AllFields().clone() instanceof AllFields); + assertTrue(new DocumentOnly().clone() instanceof DocumentOnly); assertTrue(new NoFields().clone() instanceof NoFields); assertTrue(new DocIdOnly().clone() instanceof DocIdOnly); } @@ -32,6 +33,7 @@ public class FieldSetTestCase extends DocumentTestCaseBase { FieldSetRepo repo = new FieldSetRepo(); assertTrue(repo.parse(docMan, AllFields.NAME) instanceof AllFields); + assertTrue(repo.parse(docMan, DocumentOnly.NAME) instanceof DocumentOnly); assertTrue(repo.parse(docMan, NoFields.NAME) instanceof NoFields); assertTrue(repo.parse(docMan, DocIdOnly.NAME) instanceof DocIdOnly); @@ -72,21 +74,30 @@ public class FieldSetTestCase extends DocumentTestCaseBase { assertTrue(intAttr.contains(new DocIdOnly())); assertTrue(intAttr.contains(new NoFields())); assertFalse(intAttr.contains(new AllFields())); + assertFalse(intAttr.contains(new DocumentOnly())); assertFalse(new NoFields().contains(intAttr)); assertFalse(new NoFields().contains(new AllFields())); assertFalse(new NoFields().contains(new DocIdOnly())); + assertFalse(new NoFields().contains(new DocumentOnly())); assertTrue(new AllFields().contains(intAttr)); assertTrue(new AllFields().contains(rawAttr)); assertTrue(new AllFields().contains(new DocIdOnly())); + assertTrue(new AllFields().contains(new DocumentOnly())); assertTrue(new AllFields().contains(new NoFields())); assertTrue(new AllFields().contains(new AllFields())); assertTrue(new DocIdOnly().contains(new NoFields())); assertTrue(new DocIdOnly().contains(new DocIdOnly())); + assertFalse(new DocIdOnly().contains(new DocumentOnly())); assertFalse(new DocIdOnly().contains(intAttr)); + assertTrue(new DocumentOnly().contains(new NoFields())); + assertTrue(new DocumentOnly().contains(new DocIdOnly())); + assertTrue(new DocumentOnly().contains(new DocumentOnly())); + assertFalse(new DocumentOnly().contains(intAttr)); + assertContains("testdoc:rawattr,intattr", "testdoc:intattr"); assertNotContains("testdoc:intattr", "testdoc:rawattr,intattr"); assertContains("testdoc:intattr,rawattr", "testdoc:rawattr,intattr"); @@ -124,6 +135,7 @@ public class FieldSetTestCase extends DocumentTestCaseBase { doc.removeFieldValue("rawattr"); assertEquals("floatattr:3.56,stringattr:tjohei,intattr:50,byteattr:30", doCopyFields(doc, AllFields.NAME)); + assertEquals("stringattr:tjohei,intattr:50", doCopyFields(doc, DocumentOnly.NAME)); assertEquals("floatattr:3.56,byteattr:30", doCopyFields(doc, "testdoc:floatattr,byteattr")); } @@ -140,6 +152,7 @@ public class FieldSetTestCase extends DocumentTestCaseBase { doc.removeFieldValue("rawattr"); assertEquals("floatattr:3.56,stringattr:tjohei,intattr:50,byteattr:30", doStripFields(doc, AllFields.NAME)); + assertEquals("stringattr:tjohei,intattr:50", doStripFields(doc, DocumentOnly.NAME)); assertEquals("floatattr:3.56,byteattr:30", doStripFields(doc, "testdoc:floatattr,byteattr")); } @@ -150,6 +163,7 @@ public class FieldSetTestCase extends DocumentTestCaseBase { AllFields.NAME, NoFields.NAME, DocIdOnly.NAME, + DocumentOnly.NAME, "testdoc:rawattr", "testdoc:rawattr,intattr" }; -- cgit v1.2.3