diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2019-01-13 15:24:00 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-13 15:24:00 +0100 |
commit | 44c89edf64fcae684ab39c42b59fe8b22183f173 (patch) | |
tree | 6bfe2ca36265bcd642106e77e37e2c0335b565da /config-model/src/test/java/com/yahoo | |
parent | 03a344eba3265b5fc5d99d849e9d52ba05a31832 (diff) | |
parent | 028fd60d61854d074d2d8e5a4fb8b416abc7a62c (diff) |
Merge branch 'master' into jvenstad/remove-feature-flag-for-cache-invalidation-strategy
Diffstat (limited to 'config-model/src/test/java/com/yahoo')
3 files changed, 29 insertions, 8 deletions
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFieldsTest.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFieldsTest.java index 3735b997073..defaf565a8b 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFieldsTest.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFieldsTest.java @@ -8,6 +8,7 @@ import com.yahoo.searchdefinition.DocumentReference; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.document.ImportedField; import com.yahoo.searchdefinition.document.ImportedFields; +import com.yahoo.searchdefinition.document.ImportedSimpleField; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.vespa.documentmodel.DocumentSummary; @@ -53,8 +54,8 @@ public class AddAttributeTransformToSummaryOfImportedFieldsTest { Search targetSearch = new Search("target_doc", MockApplicationPackage.createEmpty()); SDField targetField = new SDField("target_field", DataType.INT); DocumentReference documentReference = new DocumentReference(new Field("reference_field"), targetSearch); - ImportedField importedField = new ImportedField(fieldName, documentReference, targetField); - return new ImportedFields(Collections.singletonMap(fieldName, importedField), Collections.emptyMap()); + ImportedField importedField = new ImportedSimpleField(fieldName, documentReference, targetField); + return new ImportedFields(Collections.singletonMap(fieldName, importedField)); } private static DocumentSummary createDocumentSummary(String fieldName) { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImportedFieldsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImportedFieldsTestCase.java index 48b79dade1f..724c15c3ef4 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImportedFieldsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImportedFieldsTestCase.java @@ -3,6 +3,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; +import com.yahoo.searchdefinition.document.ImportedComplexField; import com.yahoo.searchdefinition.document.ImportedField; import com.yahoo.searchdefinition.parser.ParseException; import org.junit.Rule; @@ -91,7 +92,7 @@ public class ImportedFieldsTestCase { " import field parent_ref.elem_map as my_elem_map {}", " import field parent_ref.str_int_map as my_str_int_map {}", "}")); - assertEquals(parentBuilder.countAttrs(), search.importedFields().get().fields().size()); + assertEquals(3, search.importedFields().get().fields().size()); checkImportedField("my_elem_array.name", "parent_ref", "parent", "elem_array.name", search, parentBuilder.elem_array_name_attr); checkImportedField("my_elem_array.weight", "parent_ref", "parent", "elem_array.weight", search, parentBuilder.elem_array_weight_attr); checkImportedField("my_elem_map.key", "parent_ref", "parent", "elem_map.key", search, parentBuilder.elem_map_key_attr); @@ -99,6 +100,9 @@ public class ImportedFieldsTestCase { checkImportedField("my_elem_map.value.weight", "parent_ref", "parent", "elem_map.value.weight", search, parentBuilder.elem_map_value_weight_attr); checkImportedField("my_str_int_map.key", "parent_ref", "parent", "str_int_map.key", search, parentBuilder.str_int_map_key_attr); checkImportedField("my_str_int_map.value", "parent_ref", "parent", "str_int_map.value", search, parentBuilder.str_int_map_value_attr); + checkImportedField("my_elem_array", "parent_ref", "parent", "elem_array", search, true); + checkImportedField("my_elem_map", "parent_ref", "parent", "elem_map", search, true); + checkImportedField("my_str_int_map", "parent_ref", "parent", "str_int_map", search, true); } @Test @@ -275,8 +279,9 @@ public class ImportedFieldsTestCase { private static void checkPosImport(ParentPosSdBuilder parentBuilder, ChildPosSdBuilder childBuilder) throws ParseException { Search search = buildChildSearch(parentBuilder.build(), childBuilder.build()); - assertEquals(1, search.importedFields().get().fields().size()); + assertEquals(2, search.importedFields().get().fields().size()); assertSearchContainsImportedField("my_pos_zcurve", "parent_ref", "parent", "pos_zcurve", search); + assertSearchContainsImportedField("my_pos", "parent_ref", "parent", "pos", search); } @Test @@ -291,8 +296,22 @@ public class ImportedFieldsTestCase { checkPosImport(new ParentPosSdBuilder(), new ChildPosSdBuilder().import_pos_zcurve_before(true)); } + private static ImportedField getImportedField(String name, Search search) { + if (name.contains(".")) { + assertNull(search.importedFields().get().fields().get(name)); + String superFieldName = name.substring(0,name.indexOf(".")); + String subFieldName = name.substring(name.indexOf(".")+1); + ImportedField superField = search.importedFields().get().fields().get(superFieldName); + if (superField != null && superField instanceof ImportedComplexField) { + return ((ImportedComplexField)superField).getNestedField(subFieldName); + } + return null; + } + return search.importedFields().get().fields().get(name); + } + private static void assertSearchNotContainsImportedField(String fieldName, Search search) { - ImportedField importedField = search.importedFields().get().fields().get(fieldName); + ImportedField importedField = getImportedField(fieldName, search); assertNull(importedField); } @@ -301,7 +320,7 @@ public class ImportedFieldsTestCase { String referenceDocType, String targetFieldName, Search search) { - ImportedField importedField = search.importedFields().get().fields().get(fieldName); + ImportedField importedField = getImportedField(fieldName, search); assertNotNull(importedField); assertEquals(fieldName, importedField.fieldName()); assertEquals(referenceFieldName, importedField.reference().referenceField().getName()); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesTest.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesTest.java index e4c23f407c8..cec313f98d8 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesTest.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesTest.java @@ -8,6 +8,7 @@ import com.yahoo.searchdefinition.DocumentReference; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.document.ImportedField; import com.yahoo.searchdefinition.document.ImportedFields; +import com.yahoo.searchdefinition.document.ImportedSimpleField; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.vespa.documentmodel.DocumentSummary; @@ -54,8 +55,8 @@ public class ValidateFieldTypesTest { Search targetSearch = new Search("target_doc", MockApplicationPackage.createEmpty()); SDField targetField = new SDField("target_field", dataType); DocumentReference documentReference = new DocumentReference(new Field("reference_field"), targetSearch); - ImportedField importedField = new ImportedField(fieldName, documentReference, targetField); - return new ImportedFields(Collections.singletonMap(fieldName, importedField), Collections.emptyMap()); + ImportedField importedField = new ImportedSimpleField(fieldName, documentReference, targetField); + return new ImportedFields(Collections.singletonMap(fieldName, importedField)); } private static DocumentSummary createDocumentSummary(String fieldName, DataType dataType) { |