aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/test/java/com/yahoo
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/test/java/com/yahoo')
-rw-r--r--config-model/src/test/java/com/yahoo/schema/SummaryTestCase.java93
-rw-r--r--config-model/src/test/java/com/yahoo/schema/derived/SummaryTestCase.java2
-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.java2
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();