summaryrefslogtreecommitdiffstats
path: root/config-model/src/test/java/com/yahoo/searchdefinition
diff options
context:
space:
mode:
authorGeir Storli <geirst@oath.com>2018-04-23 16:26:14 +0200
committerGeir Storli <geirst@oath.com>2018-04-23 16:26:14 +0200
commit09c54b6fdd0a19e4edbb02dba48428ed9f35e55b (patch)
treeba4f094240d4685788f779aac8b92c636fa9ff16 /config-model/src/test/java/com/yahoo/searchdefinition
parent3cd5365b10b30b0be89ed3a286510e5ffcf8f441 (diff)
Allow importing a field from a parent document type that also is imported.
This functionality is now supported by the search backend.
Diffstat (limited to 'config-model/src/test/java/com/yahoo/searchdefinition')
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolverTestCase.java29
1 files changed, 15 insertions, 14 deletions
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolverTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolverTestCase.java
index ff801c122b2..815f696acdc 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolverTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolverTestCase.java
@@ -11,6 +11,8 @@ import com.yahoo.document.TensorDataType;
import com.yahoo.searchdefinition.DocumentReference;
import com.yahoo.searchdefinition.DocumentReferences;
import com.yahoo.searchdefinition.Search;
+import com.yahoo.searchdefinition.document.ImmutableImportedSDField;
+import com.yahoo.searchdefinition.document.ImmutableSDField;
import com.yahoo.searchdefinition.document.ImportedField;
import com.yahoo.searchdefinition.document.ImportedFields;
import com.yahoo.searchdefinition.document.SDDocumentType;
@@ -48,13 +50,23 @@ public class ImportedFieldsResolverTestCase {
assertEquals(fieldName, myField.fieldName());
assertSame(model.childSearch.getConcreteField("ref"), myField.reference().referenceField());
assertSame(model.parentSearch, myField.reference().targetSearch());
- assertSame(model.parentSearch.getConcreteField(targetFieldName), myField.targetField());
+ ImmutableSDField targetField = model.parentSearch.getField(targetFieldName);
+ if (targetField instanceof SDField) {
+ assertSame(targetField, myField.targetField());
+ } else {
+ assertSame(getImportedField(targetField), getImportedField(myField.targetField()));
+ }
+ }
+
+ private static ImportedField getImportedField(ImmutableSDField field) {
+ return ((ImmutableImportedSDField) field).getImportedField();
}
@Test
public void valid_imported_fields_are_resolved() {
- resolve_imported_field("my_attribute_field", "attribute_field");
- resolve_imported_field("my_tensor_field", "tensor_field");
+ resolve_imported_field("my_attribute_field", "attribute_field");
+ resolve_imported_field("my_tensor_field", "tensor_field");
+ resolve_imported_field("my_ancient_field", "ancient_field");
}
@Test
@@ -92,17 +104,6 @@ public class ImportedFieldsResolverTestCase {
.resolve();
}
- @Test
- public void resolver_fails_if_imported_field_is_also_an_imported_field() {
- exceptionRule.expect(IllegalArgumentException.class);
- exceptionRule.expectMessage(
- "For search 'child', import field 'my_ancient_field': " +
- "Field 'ancient_field' via reference field 'ref': Is an imported field. Not supported");
- new SearchModel()
- .addImportedField("my_ancient_field", "ref", "ancient_field")
- .resolve();
- }
-
static class SearchModel {
private final ApplicationPackage app = MockApplicationPackage.createEmpty();