diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2018-09-12 14:33:24 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2018-09-12 20:35:01 +0200 |
commit | 291ff93582e6369f58de3f0e9927b9f03fbcab14 (patch) | |
tree | ab53feb9bcb84e66b65beb0eef0f459f54799c88 /document/src | |
parent | 34521bcca18e3b6579deacd8a1806d680ae47ba9 (diff) |
Add test for proper setup and fix dirty retyping of ReferenceDataType target to also do renaming.
Diffstat (limited to 'document/src')
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"); |