1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.commons.ihe.xds.core.transform.requests.ebxml30;
17
18 import static org.junit.Assert.*;
19
20 import java.util.Arrays;
21 import java.util.Collections;
22 import java.util.List;
23
24 import org.junit.Before;
25 import org.junit.Test;
26 import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest;
27 import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLSlot;
28 import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30;
29 import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetDocumentsQuery;
30 import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryList;
31 import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType;
32 import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter;
33 import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.GetDocumentsQueryTransformer;
34
35
36
37
38
39 public class GetDocumentsQueryTransformerTest {
40 private GetDocumentsQueryTransformer transformer;
41 private GetDocumentsQuery query;
42 private EbXMLAdhocQueryRequest ebXML;
43
44 @Before
45 public void setUp() {
46 transformer = new GetDocumentsQueryTransformer();
47 query = new GetDocumentsQuery();
48
49 query.setUuids(Arrays.asList("uuid1", "uuid2"));
50 query.setUniqueIds(Arrays.asList("uniqueId1", "uniqueId2"));
51 query.setHomeCommunityId("home");
52
53 QueryList<String> extraParams1 = new QueryList<>();
54 extraParams1.getOuterList().add(Arrays.asList("para-11", "para-12"));
55 extraParams1.getOuterList().add(Arrays.asList("para-21", "para-22", "para-23"));
56
57 QueryList<String> extraParams2 = new QueryList<>();
58 extraParams2.getOuterList().add(Arrays.asList("dia-31", "dia-32", "dia-33"));
59 extraParams2.getOuterList().add(Collections.singletonList("dia-41"));
60
61 query.getExtraParameters().put("$PatientPerimeter", extraParams1);
62 query.getExtraParameters().put("$PatientDiameter", extraParams2);
63
64 ebXML = new EbXMLFactory30().createAdhocQueryRequest();
65 }
66
67 @Test
68 public void testToEbXML() {
69 transformer.toEbXML(query, ebXML);
70 assertEquals(QueryType.GET_DOCUMENTS.getId(), ebXML.getId());
71
72 assertEquals(Arrays.asList("('uuid1')", "('uuid2')"),
73 ebXML.getSlotValues(QueryParameter.DOC_ENTRY_UUID.getSlotName()));
74
75 assertEquals(Arrays.asList("('uniqueId1')", "('uniqueId2')"),
76 ebXML.getSlotValues(QueryParameter.DOC_ENTRY_UNIQUE_ID.getSlotName()));
77
78 List<EbXMLSlot> perimeters = ebXML.getSlots("$PatientPerimeter");
79 assertEquals(2, perimeters.size());
80 assertEquals(Arrays.asList("('para-11')", "('para-12')"), perimeters.get(0).getValueList());
81 assertEquals(Arrays.asList("('para-21')", "('para-22')", "('para-23')"), perimeters.get(1).getValueList());
82
83 List<EbXMLSlot> diameters = ebXML.getSlots("$PatientDiameter");
84 assertEquals(2, diameters.size());
85 assertEquals(Arrays.asList("('dia-31')", "('dia-32')", "('dia-33')"), diameters.get(0).getValueList());
86 assertEquals(Collections.singletonList("('dia-41')"), diameters.get(1).getValueList());
87
88 assertEquals(Arrays.asList("('uniqueId1')", "('uniqueId2')"),
89 ebXML.getSlotValues(QueryParameter.DOC_ENTRY_UNIQUE_ID.getSlotName()));
90
91 assertEquals("home", ebXML.getHome());
92 assertEquals(6, ebXML.getSlots().size());
93 }
94
95 @Test
96 public void testRoundtrip() {
97 transformer.toEbXML(query, ebXML);
98 GetDocumentsQuery otherQuery = new GetDocumentsQuery();
99 transformer.fromEbXML(otherQuery, ebXML);
100 assertEquals(query, otherQuery);
101 }
102
103 @Test
104 public void testToEbXMLNull() {
105 transformer.toEbXML(null, ebXML);
106 assertEquals(0, ebXML.getSlots().size());
107 }
108
109 @Test
110 public void testToEbXMLEmpty() {
111 transformer.toEbXML(new GetDocumentsQuery(), ebXML);
112 assertEquals(0, ebXML.getSlots().size());
113 }
114
115
116
117 @Test
118 public void testFromEbXML() {
119 transformer.toEbXML(query, ebXML);
120 GetDocumentsQuery result = new GetDocumentsQuery();
121 transformer.fromEbXML(result, ebXML);
122
123 assertEquals(query, result);
124 }
125
126 @Test
127 public void testFromEbXMLNull() {
128 GetDocumentsQuery result = new GetDocumentsQuery();
129 transformer.fromEbXML(result, null);
130 assertEquals(new GetDocumentsQuery(), result);
131 }
132
133 @Test
134 public void testFromEbXMLEmpty() {
135 GetDocumentsQuery result = new GetDocumentsQuery();
136 transformer.fromEbXML(result, ebXML);
137 assertEquals(new GetDocumentsQuery(), result);
138 }
139 }