diff options
Diffstat (limited to 'config-model/src/test/java/com/yahoo')
-rw-r--r-- | config-model/src/test/java/com/yahoo/schema/SummaryTestCase.java | 93 | ||||
-rw-r--r-- | config-model/src/test/java/com/yahoo/schema/derived/SummaryTestCase.java | 2 | ||||
-rw-r--r-- | config-model/src/test/java/com/yahoo/schema/processing/AddDataTypeAndTransformToSummaryOfImportedFieldsTest.java (renamed from config-model/src/test/java/com/yahoo/schema/processing/AddAttributeTransformToSummaryOfImportedFieldsTest.java) | 4 | ||||
-rw-r--r-- | config-model/src/test/java/com/yahoo/schema/processing/SummaryDiskAccessValidatorTestCase.java | 2 |
4 files changed, 95 insertions, 6 deletions
diff --git a/config-model/src/test/java/com/yahoo/schema/SummaryTestCase.java b/config-model/src/test/java/com/yahoo/schema/SummaryTestCase.java index 3c83e79157a..e1dcfe70e91 100644 --- a/config-model/src/test/java/com/yahoo/schema/SummaryTestCase.java +++ b/config-model/src/test/java/com/yahoo/schema/SummaryTestCase.java @@ -6,6 +6,7 @@ import com.yahoo.vespa.documentmodel.DocumentSummary; import com.yahoo.vespa.model.test.utils.DeployLoggerStub; import com.yahoo.vespa.objects.FieldBase; import com.yahoo.yolean.Exceptions; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import static com.yahoo.config.model.test.TestUtil.joinLines; @@ -259,12 +260,12 @@ public class SummaryTestCase { } } document-summary parent1 { - summary s1 type string { + summary s1 { source: field1 } } document-summary parent2 { - summary field1 type int { + summary field1 { source: field2 } } @@ -343,6 +344,94 @@ public class SummaryTestCase { DeployLoggerStub logger = new DeployLoggerStub(); ApplicationBuilder.createFromStrings(logger, parent, child); assertTrue(logger.entries.isEmpty()); + + } + private void testSummaryTypeInField(boolean explicit) throws ParseException { + String sd = joinLines("schema test {", + " document test {", + " field foo type string {", + " indexing: summary", + " summary bar " + (explicit ? "type string ": "") + "{ }", + " }", + " }", + "}"); + DeployLoggerStub logger = new DeployLoggerStub(); + ApplicationBuilder.createFromStrings(logger, sd); + if (explicit) { + assertEquals(1, logger.entries.size()); + assertEquals(Level.FINE, logger.entries.get(0).level); + assertEquals("For test, field 'foo', summary 'bar':" + + " Specifying the type is deprecated, ignored and will be an error in Vespa 9." + + " Remove the type specification to silence this warning.", logger.entries.get(0).message); + } else { + assertTrue(logger.entries.isEmpty()); + } + } + + @Test + void testSummaryInFieldWithoutTypeEmitsNoWarning() throws ParseException { + testSummaryTypeInField(false); + } + + @Test + void testSummaryInFieldWithTypeEmitsWarning() throws ParseException { + testSummaryTypeInField(true); + } + + private void testSummaryField(boolean explicit) throws ParseException { + String sd = joinLines("schema test {", + " document test {", + " field foo type string { indexing: summary }", + " }", + " document-summary bar {", + " summary foo " + (explicit ? "type string" : "") + "{ }", + " from-disk", + " }", + "}"); + DeployLoggerStub logger = new DeployLoggerStub(); + ApplicationBuilder.createFromStrings(logger, sd); + if (explicit) { + assertEquals(1, logger.entries.size()); + assertEquals(Level.FINE, logger.entries.get(0).level); + assertEquals("For test, document-summary 'bar', summary field 'foo':" + + " Specifying the type is deprecated, ignored and will be an error in Vespa 9." + + " Remove the type specification to silence this warning.", logger.entries.get(0).message); + } else { + assertTrue(logger.entries.isEmpty()); + } + } + + @Test + void testSummaryFieldWithoutTypeEmitsNoWarning() throws ParseException { + testSummaryField(false); + } + + @Test + void testSummaryFieldWithTypeEmitsWarning() throws ParseException { + testSummaryField(true); + } + + @Test + void testSummarySourceLoop() throws ParseException { + String sd = joinLines("schema test {", + " document test {", + " field foo type string { indexing: summary }", + " }", + " document-summary bar {", + " summary foo { source: foo2 }", + " summary foo2 { source: foo3 }", + " summary foo3 { source: foo2 }", + " from-disk", + " }", + "}"); + DeployLoggerStub logger = new DeployLoggerStub(); + try { + ApplicationBuilder.createFromStrings(logger, sd); + fail("expected exception"); + } catch (IllegalArgumentException e) { + assertEquals("For schema 'test' summary class 'bar' summary field 'foo'" + + ": Source loop detected for summary field 'foo2'", e.getMessage()); + } } private static class TestValue { diff --git a/config-model/src/test/java/com/yahoo/schema/derived/SummaryTestCase.java b/config-model/src/test/java/com/yahoo/schema/derived/SummaryTestCase.java index 2fb7955546c..1c03c66d17b 100644 --- a/config-model/src/test/java/com/yahoo/schema/derived/SummaryTestCase.java +++ b/config-model/src/test/java/com/yahoo/schema/derived/SummaryTestCase.java @@ -221,7 +221,7 @@ public class SummaryTestCase extends AbstractSchemaTestCase { void documentid_summary_field_has_corresponding_summary_transform() throws ParseException { var schema = buildSchema("field foo type string { indexing: summary }", joinLines("document-summary bar {", - " summary documentid type string {}", + " summary documentid {}", "}")); assertOverride(schema, "documentid", SummaryTransform.DOCUMENT_ID.getName(), "", "bar"); } diff --git a/config-model/src/test/java/com/yahoo/schema/processing/AddAttributeTransformToSummaryOfImportedFieldsTest.java b/config-model/src/test/java/com/yahoo/schema/processing/AddDataTypeAndTransformToSummaryOfImportedFieldsTest.java index 3b4a6c0a67b..f09a95b89a0 100644 --- a/config-model/src/test/java/com/yahoo/schema/processing/AddAttributeTransformToSummaryOfImportedFieldsTest.java +++ b/config-model/src/test/java/com/yahoo/schema/processing/AddDataTypeAndTransformToSummaryOfImportedFieldsTest.java @@ -26,7 +26,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author bjorncs */ -public class AddAttributeTransformToSummaryOfImportedFieldsTest { +public class AddDataTypeAndTransformToSummaryOfImportedFieldsTest { private static final String IMPORTED_FIELD_NAME = "imported_myfield"; private static final String DOCUMENT_NAME = "mydoc"; @@ -38,7 +38,7 @@ public class AddAttributeTransformToSummaryOfImportedFieldsTest { schema.setImportedFields(createSingleImportedField(IMPORTED_FIELD_NAME)); schema.addSummary(createDocumentSummary(IMPORTED_FIELD_NAME, schema)); - AddAttributeTransformToSummaryOfImportedFields processor = new AddAttributeTransformToSummaryOfImportedFields( + AddDataTypeAndTransformToSummaryOfImportedFields processor = new AddDataTypeAndTransformToSummaryOfImportedFields( schema, null, null, null); processor.process(true, false); SummaryField summaryField = schema.getSummaries().get(SUMMARY_NAME).getSummaryField(IMPORTED_FIELD_NAME); diff --git a/config-model/src/test/java/com/yahoo/schema/processing/SummaryDiskAccessValidatorTestCase.java b/config-model/src/test/java/com/yahoo/schema/processing/SummaryDiskAccessValidatorTestCase.java index a5145588136..bac29b52949 100644 --- a/config-model/src/test/java/com/yahoo/schema/processing/SummaryDiskAccessValidatorTestCase.java +++ b/config-model/src/test/java/com/yahoo/schema/processing/SummaryDiskAccessValidatorTestCase.java @@ -58,7 +58,7 @@ public class SummaryDiskAccessValidatorTestCase { " }", " import field ref.str_map as ref_str_map {}", " document-summary my_sum {", - " summary ref_str_map type map<string, string> { source: ref_str_map }", + " summary ref_str_map { source: ref_str_map }", " }", "}"); var logger = new TestableDeployLogger(); |