diff options
author | Tor Brede Vekterli <vekterli@yahoo-inc.com> | 2017-01-25 15:37:56 +0100 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@yahoo-inc.com> | 2017-01-26 12:42:36 +0100 |
commit | da870b7adc74536f1806f013faefbfed82212beb (patch) | |
tree | 4b90ca472222e58099dde6fdf96c9c995ab0ac51 /document/src/test | |
parent | ac227765394692ec0e5b2f7dd9e123569bd77425 (diff) |
Test multiple references to multiple document types
Diffstat (limited to 'document/src/test')
-rw-r--r-- | document/src/test/document/documentmanager.multiplereferences.cfg | 99 | ||||
-rw-r--r-- | document/src/test/java/com/yahoo/document/DocumentTypeManagerTestCase.java | 65 |
2 files changed, 132 insertions, 32 deletions
diff --git a/document/src/test/document/documentmanager.multiplereferences.cfg b/document/src/test/document/documentmanager.multiplereferences.cfg new file mode 100644 index 00000000000..3c2501c680b --- /dev/null +++ b/document/src/test/document/documentmanager.multiplereferences.cfg @@ -0,0 +1,99 @@ +datatype[8] +datatype[0].id -1365874599 +datatype[0].arraytype[0] +datatype[0].weightedsettype[0] +datatype[0].structtype[1] +datatype[0].structtype[0].name referenced_type.header +datatype[0].structtype[0].version 9 +datatype[0].structtype[0].field[0] +datatype[0].documenttype[0] +datatype[1].id 278604398 +datatype[1].arraytype[0] +datatype[1].weightedsettype[0] +datatype[1].structtype[1] +datatype[1].structtype[0].name referenced_type.body +datatype[1].structtype[0].version 9 +datatype[1].structtype[0].field[0] +datatype[1].documenttype[0] +datatype[2].id 124647170 +datatype[2].arraytype[0] +datatype[2].weightedsettype[0] +datatype[2].structtype[0] +datatype[2].documenttype[1] +datatype[2].documenttype[0].name referenced_type +datatype[2].documenttype[0].version 9 +datatype[2].documenttype[0].inherits[0] +datatype[2].documenttype[0].headerstruct -1365874599 +datatype[2].documenttype[0].bodystruct 278604398 +datatype[3].id -533515125 +datatype[3].arraytype[0] +datatype[3].weightedsettype[0] +datatype[3].structtype[1] +datatype[3].structtype[0].name referenced_type2.header +datatype[3].structtype[0].version 9 +datatype[3].structtype[0].field[0] +datatype[3].documenttype[0] +datatype[4].id 1910753632 +datatype[4].arraytype[0] +datatype[4].weightedsettype[0] +datatype[4].structtype[1] +datatype[4].structtype[0].name referenced_type2.body +datatype[4].structtype[0].version 9 +datatype[4].structtype[0].field[0] +datatype[4].documenttype[0] +datatype[5].id -430901196 +datatype[5].arraytype[0] +datatype[5].weightedsettype[0] +datatype[5].structtype[0] +datatype[5].documenttype[1] +datatype[5].documenttype[0].name referenced_type2 +datatype[5].documenttype[0].version 9 +datatype[5].documenttype[0].inherits[0] +datatype[5].documenttype[0].headerstruct -533515125 +datatype[5].documenttype[0].bodystruct 1910753632 +datatype[6].id 12345678 +datatype[6].arraytype[0] +datatype[6].weightedsettype[0] +datatype[6].structtype[0] +datatype[6].documenttype[0] +datatype[6].referencetype[1] +datatype[6].referencetype[0].target_type_id 124647170 +datatype[7].id 673066331 +datatype[7].arraytype[0] +datatype[7].weightedsettype[0] +datatype[7].structtype[1] +datatype[7].structtype[0].name type_with_ref.header +datatype[7].structtype[0].version 234 +datatype[7].structtype[0].field[2] +datatype[7].structtype[0].field[0].name my_first_ref +datatype[7].structtype[0].field[0].id[0] +datatype[7].structtype[0].field[0].datatype 12345678 +datatype[7].structtype[0].field[1].name my_second_ref +datatype[7].structtype[0].field[1].id[0] +datatype[7].structtype[0].field[1].datatype 87654321 +datatype[7].documenttype[0] +datatype[8].id -176986064 +datatype[8].arraytype[0] +datatype[8].weightedsettype[0] +datatype[8].structtype[1] +datatype[8].structtype[0].name type_with_ref.body +datatype[8].structtype[0].version 234 +datatype[8].structtype[0].field[0] +datatype[8].documenttype[0] +datatype[9].id -1293964543 +datatype[9].arraytype[0] +datatype[9].weightedsettype[0] +datatype[9].structtype[0] +datatype[9].documenttype[1] +datatype[9].documenttype[0].name type_with_ref +datatype[9].documenttype[0].version 234 +datatype[9].documenttype[0].inherits[0] +datatype[9].documenttype[0].headerstruct 673066331 +datatype[9].documenttype[0].bodystruct -176986064 +datatype[10].id 87654321 +datatype[10].arraytype[0] +datatype[10].weightedsettype[0] +datatype[10].structtype[0] +datatype[10].documenttype[0] +datatype[10].referencetype[1] +datatype[10].referencetype[0].target_type_id -430901196
\ No newline at end of file diff --git a/document/src/test/java/com/yahoo/document/DocumentTypeManagerTestCase.java b/document/src/test/java/com/yahoo/document/DocumentTypeManagerTestCase.java index 60b16f68c9a..15413fb723e 100644 --- a/document/src/test/java/com/yahoo/document/DocumentTypeManagerTestCase.java +++ b/document/src/test/java/com/yahoo/document/DocumentTypeManagerTestCase.java @@ -125,9 +125,7 @@ public class DocumentTypeManagerTestCase { @Test public void testReverseMapOrder() { - DocumentTypeManager manager = new DocumentTypeManager(); - - DocumentTypeManagerConfigurer.configure(manager, "file:src/test/document/documentmanager.map.cfg"); + final DocumentTypeManager manager = createConfiguredManager("file:src/test/document/documentmanager.map.cfg"); assertNotNull(manager.getDataType(1000)); assertNotNull(manager.getDataType(1001)); @@ -136,9 +134,7 @@ public class DocumentTypeManagerTestCase { @SuppressWarnings("deprecation") @Test public void testConfigure() { - DocumentTypeManager manager = new DocumentTypeManager(); - - DocumentTypeManagerConfigurer.configure(manager, "file:src/test/document/documentmanager.cfg"); + final DocumentTypeManager manager = createConfiguredManager("file:src/test/document/documentmanager.cfg"); Iterator typeIt = manager.documentTypeIterator(); DocumentType type = null; @@ -219,9 +215,7 @@ public class DocumentTypeManagerTestCase { @Test public void testConfigureUpdate() { - DocumentTypeManager manager = new DocumentTypeManager(); - - DocumentTypeManagerConfigurer.configure(manager, "file:src/test/document/documentmanager.cfg"); + final DocumentTypeManager manager = createConfiguredManager("file:src/test/document/documentmanager.cfg"); DocumentType banana = manager.getDocumentType(new DataTypeName("banana")); DocumentType customtypes = manager.getDocumentType(new DataTypeName("customtypes")); @@ -240,9 +234,7 @@ public class DocumentTypeManagerTestCase { @Test public void testConfigureWithAnnotations() { - DocumentTypeManager manager = new DocumentTypeManager(); - - DocumentTypeManagerConfigurer.configure(manager, "file:src/test/document/documentmanager.annotationtypes1.cfg"); + final DocumentTypeManager manager = createConfiguredManager("file:src/test/document/documentmanager.annotationtypes1.cfg"); /* annotation banana { @@ -302,10 +294,7 @@ public class DocumentTypeManagerTestCase { @Test public void testConfigureWithAnnotationsWithInheritance() { - DocumentTypeManager manager = new DocumentTypeManager(); - - DocumentTypeManagerConfigurer.configure(manager, "file:src/test/document/documentmanager.annotationtypes2.cfg"); - + final DocumentTypeManager manager = createConfiguredManager("file:src/test/document/documentmanager.annotationtypes2.cfg"); /* annotation fruit { @@ -430,9 +419,7 @@ search annotationsimplicitstruct { } */ - DocumentTypeManager manager = new DocumentTypeManager(); - - DocumentTypeManagerConfigurer.configure(manager, "file:src/test/document/documentmanager.structsanyorder.cfg"); + final DocumentTypeManager manager = createConfiguredManager("file:src/test/document/documentmanager.structsanyorder.cfg"); StructDataType foo = (StructDataType) manager.getDataType("foo"); assertNotNull(foo); @@ -455,8 +442,7 @@ search annotationsimplicitstruct { @Test public void testSombrero1() { - DocumentTypeManager manager = new DocumentTypeManager(); - DocumentTypeManagerConfigurer.configure(manager, "file:src/test/document/documentmanager.sombrero1.cfg"); + final DocumentTypeManager manager = createConfiguredManager("file:src/test/document/documentmanager.sombrero1.cfg"); { StringFieldValue sfv = new StringFieldValue("ballooooo"); @@ -496,9 +482,7 @@ search annotationsimplicitstruct { */ - DocumentTypeManager manager = new DocumentTypeManager(); - - DocumentTypeManagerConfigurer.configure(manager, "file:src/test/document/documentmanager.annotationspolymorphy.cfg"); + final DocumentTypeManager manager = createConfiguredManager("file:src/test/document/documentmanager.annotationspolymorphy.cfg"); AnnotationType suuper = manager.getAnnotationTypeRegistry().getType("super"); AnnotationType sub = manager.getAnnotationTypeRegistry().getType("sub"); @@ -518,23 +502,38 @@ search annotationsimplicitstruct { @Test public void single_reference_type_is_mapped_to_correct_document_target_type() { - final DocumentTypeManager manager = new DocumentTypeManager(); - DocumentTypeManagerConfigurer.configure(manager, "file:src/test/document/documentmanager.singlereference.cfg"); + final DocumentTypeManager manager = createConfiguredManager("file:src/test/document/documentmanager.singlereference.cfg"); + + assertReferenceTypePresentInManager(manager, 12345678, "referenced_type"); + } - final int refTypeIdInConfig = 12345678; - final DataType type = manager.getDataType(refTypeIdInConfig); + private static void assertReferenceTypePresentInManager(DocumentTypeManager manager, int refTypeId, + String refTargetTypeName) { + final DataType type = manager.getDataType(refTypeId); assertThat(type, instanceOf(ReferenceDataType.class)); final ReferenceDataType refType = (ReferenceDataType) type; - assertThat(refType.getTargetType().getName(), equalTo("referenced_type")); - final DocumentType targetDocType = manager.getDocumentType("referenced_type"); + final DocumentType targetDocType = manager.getDocumentType(refTargetTypeName); assertThat(refType.getTargetType(), sameInstance(targetDocType)); } + private static DocumentTypeManager createConfiguredManager(String configFilePath) { + final DocumentTypeManager manager = new DocumentTypeManager(); + DocumentTypeManagerConfigurer.configure(manager, configFilePath); + return manager; + } + + @Test + public void multiple_reference_types_are_mapped_to_correct_document_target_types() { + final DocumentTypeManager manager = createConfiguredManager("file:src/test/document/documentmanager.multiplereferences.cfg"); + + assertReferenceTypePresentInManager(manager, 12345678, "referenced_type"); + assertReferenceTypePresentInManager(manager, 87654321, "referenced_type2"); + } + @Test public void reference_field_has_correct_reference_type() { - final DocumentTypeManager manager = new DocumentTypeManager(); - DocumentTypeManagerConfigurer.configure(manager, "file:src/test/document/documentmanager.singlereference.cfg"); + final DocumentTypeManager manager = createConfiguredManager("file:src/test/document/documentmanager.singlereference.cfg"); final DocumentType docType = manager.getDocumentType("type_with_ref"); final Field field = docType.getField("my_ref_field"); @@ -546,4 +545,6 @@ search annotationsimplicitstruct { assertThat(fieldRefType.getTargetType(), sameInstance(targetDocType)); } + // TODO test reference to own doc type + } |