aboutsummaryrefslogtreecommitdiffstats
path: root/document/src/test
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahoo-inc.com>2017-01-25 15:37:56 +0100
committerTor Brede Vekterli <vekterli@yahoo-inc.com>2017-01-26 12:42:36 +0100
commitda870b7adc74536f1806f013faefbfed82212beb (patch)
tree4b90ca472222e58099dde6fdf96c9c995ab0ac51 /document/src/test
parentac227765394692ec0e5b2f7dd9e123569bd77425 (diff)
Test multiple references to multiple document types
Diffstat (limited to 'document/src/test')
-rw-r--r--document/src/test/document/documentmanager.multiplereferences.cfg99
-rw-r--r--document/src/test/java/com/yahoo/document/DocumentTypeManagerTestCase.java65
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
+
}