summaryrefslogtreecommitdiffstats
path: root/document
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-09-12 14:33:24 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2018-09-12 20:35:01 +0200
commit291ff93582e6369f58de3f0e9927b9f03fbcab14 (patch)
treeab53feb9bcb84e66b65beb0eef0f459f54799c88 /document
parent34521bcca18e3b6579deacd8a1806d680ae47ba9 (diff)
Add test for proper setup and fix dirty retyping of ReferenceDataType target to also do renaming.
Diffstat (limited to 'document')
-rw-r--r--document/src/main/java/com/yahoo/document/ReferenceDataType.java1
-rw-r--r--document/src/test/document/documentmanager.replaced_temporary.cfg55
-rw-r--r--document/src/test/java/com/yahoo/document/DocumentTypeManagerTestCase.java10
3 files changed, 66 insertions, 0 deletions
diff --git a/document/src/main/java/com/yahoo/document/ReferenceDataType.java b/document/src/main/java/com/yahoo/document/ReferenceDataType.java
index 5b5ba256f43..fa6e45ddacd 100644
--- a/document/src/main/java/com/yahoo/document/ReferenceDataType.java
+++ b/document/src/main/java/com/yahoo/document/ReferenceDataType.java
@@ -75,6 +75,7 @@ public class ReferenceDataType extends DataType {
"type in ReferenceDataType instance (type is '%s')", this.targetType.getName()));
}
this.targetType = targetType;
+ setName(buildTypeName(targetType));
}
@Override
diff --git a/document/src/test/document/documentmanager.replaced_temporary.cfg b/document/src/test/document/documentmanager.replaced_temporary.cfg
new file mode 100644
index 00000000000..06a5364cfb1
--- /dev/null
+++ b/document/src/test/document/documentmanager.replaced_temporary.cfg
@@ -0,0 +1,55 @@
+enablecompression false
+datatype[12].id 1191756824
+datatype[12].referencetype[0].target_type_id 886149367
+datatype[13].id -2054976470
+datatype[13].arraytype[0].datatype 5
+datatype[14].id 959075962
+datatype[14].structtype[0].name "ad.header"
+datatype[14].structtype[0].version 0
+datatype[14].structtype[0].compresstype "NONE"
+datatype[14].structtype[0].compresslevel 0
+datatype[14].structtype[0].compressthreshold 95
+datatype[14].structtype[0].compressminsize 800
+datatype[14].structtype[0].field[286].datatype 1191756824
+datatype[14].structtype[0].field[286].name "campaign_ref"
+datatype[14].structtype[0].field[286].detailedtype ""
+datatype[15].id -255288561
+datatype[15].structtype[0].name "ad.body"
+datatype[15].structtype[0].version 0
+datatype[15].structtype[0].compresstype "NONE"
+datatype[15].structtype[0].compresslevel 0
+datatype[15].structtype[0].compressthreshold 95
+datatype[15].structtype[0].compressminsize 800
+datatype[16].id 2987301
+datatype[16].documenttype[0].name "ad"
+datatype[16].documenttype[0].version 0
+datatype[16].documenttype[0].inherits[0].name "document"
+datatype[16].documenttype[0].inherits[0].version 0
+datatype[16].documenttype[0].headerstruct 959075962
+datatype[16].documenttype[0].bodystruct -255288561
+datatype[16].documenttype[0].fieldsets.[document].fields[722] "campaign_ref"
+datatype[57].id 350014056
+datatype[57].structtype[0].name "mystiqueCampaign.header"
+datatype[57].structtype[0].version 0
+datatype[57].structtype[0].compresstype "NONE"
+datatype[57].structtype[0].compresslevel 0
+datatype[57].structtype[0].compressthreshold 95
+datatype[57].structtype[0].compressminsize 800
+datatype[57].structtype[0].field[0].datatype 4
+datatype[57].structtype[0].field[0].name "campaign_id"
+datatype[57].structtype[0].field[0].detailedtype ""
+datatype[58].id -524078467
+datatype[58].structtype[0].name "mystiqueCampaign.body"
+datatype[58].structtype[0].version 0
+datatype[58].structtype[0].compresstype "NONE"
+datatype[58].structtype[0].compresslevel 0
+datatype[58].structtype[0].compressthreshold 95
+datatype[58].structtype[0].compressminsize 800
+datatype[59].id 886149367
+datatype[59].documenttype[0].name "mystiqueCampaign"
+datatype[59].documenttype[0].version 0
+datatype[59].documenttype[0].inherits[0].name "document"
+datatype[59].documenttype[0].inherits[0].version 0
+datatype[59].documenttype[0].headerstruct 350014056
+datatype[59].documenttype[0].bodystruct -524078467
+datatype[59].documenttype[0].fieldsets.[document].fields[0] "campaign_id"
diff --git a/document/src/test/java/com/yahoo/document/DocumentTypeManagerTestCase.java b/document/src/test/java/com/yahoo/document/DocumentTypeManagerTestCase.java
index aa4f5211df7..6acae4f37c6 100644
--- a/document/src/test/java/com/yahoo/document/DocumentTypeManagerTestCase.java
+++ b/document/src/test/java/com/yahoo/document/DocumentTypeManagerTestCase.java
@@ -528,6 +528,16 @@ search annotationsimplicitstruct {
}
@Test
+ public void no_temporary_targets_in_references_or_names() {
+ DocumentTypeManager manager = createConfiguredManager("file:src/test/document/documentmanager.replaced_temporary.cfg");
+ DocumentType docType = manager.getDocumentType("ad");
+ Field f = docType.getField("campaign_ref");
+ assertTrue(f.getDataType() instanceof ReferenceDataType);
+ assertFalse(((ReferenceDataType)f.getDataType()).getTargetType() instanceof TemporaryStructuredDataType);
+ assertEquals("Reference<mystiqueCampaign>", f.getDataType().getName());
+ }
+
+ @Test
public void can_have_reference_type_pointing_to_own_document_type() {
DocumentTypeManager manager = createConfiguredManager("file:src/test/document/documentmanager.selfreference.cfg");