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 import org.junit.Before;
24 import org.junit.Test;
25 import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest;
26 import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLSlot;
27 import org.openehealth.ipf.commons.ihe.xds.core.ebxml.ebxml30.EbXMLFactory30;
28 import org.openehealth.ipf.commons.ihe.xds.core.metadata.AssigningAuthority;
29 import org.openehealth.ipf.commons.ihe.xds.core.metadata.AvailabilityStatus;
30 import org.openehealth.ipf.commons.ihe.xds.core.metadata.Code;
31 import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable;
32 import org.openehealth.ipf.commons.ihe.xds.core.requests.query.FindFoldersQuery;
33 import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryList;
34 import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType;
35 import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter;
36 import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.FindFoldersQueryTransformer;
37
38
39
40
41
42 public class FindFoldersQueryTransformerTest {
43 private FindFoldersQueryTransformer transformer;
44 private FindFoldersQuery query;
45 private EbXMLAdhocQueryRequest ebXML;
46
47 @Before
48 public void setUp() {
49 transformer = new FindFoldersQueryTransformer();
50 query = new FindFoldersQuery();
51
52 query.setPatientId(new Identifiable("id1", new AssigningAuthority("uni1", "uniType1")));
53 query.getLastUpdateTime().setFrom("20150102030405");
54 query.getLastUpdateTime().setTo("20150102030406");
55 QueryList<Code> codes = new QueryList<>();
56 codes.getOuterList().add(
57 Arrays.asList(new Code("code7", null, "scheme7"), new Code("code8", null, "scheme8")));
58 codes.getOuterList().add(
59 Collections.singletonList(new Code("code9", null, "scheme9")));
60 query.setCodes(codes);
61 query.setStatus(Arrays.asList(AvailabilityStatus.APPROVED, AvailabilityStatus.SUBMITTED));
62 query.setHomeCommunityId("12.21.41");
63
64 ebXML = new EbXMLFactory30().createAdhocQueryRequest();
65 }
66
67 @Test
68 public void testToEbXML() {
69 transformer.toEbXML(query, ebXML);
70 assertEquals(QueryType.FIND_FOLDERS.getId(), ebXML.getId());
71 assertEquals("12.21.41", ebXML.getHome());
72
73 assertEquals(Collections.singletonList("'id1^^^&uni1&uniType1'"),
74 ebXML.getSlotValues(QueryParameter.FOLDER_PATIENT_ID.getSlotName()));
75
76 assertEquals(Collections.singletonList("20150102030405"),
77 ebXML.getSlotValues(QueryParameter.FOLDER_LAST_UPDATE_TIME_FROM.getSlotName()));
78 assertEquals(Collections.singletonList("20150102030406"),
79 ebXML.getSlotValues(QueryParameter.FOLDER_LAST_UPDATE_TIME_TO.getSlotName()));
80
81 List<EbXMLSlot> slots = ebXML.getSlots(QueryParameter.FOLDER_CODES.getSlotName());
82 assertEquals(2, slots.size());
83 assertEquals(Arrays.asList("('code7^^scheme7')", "('code8^^scheme8')"), slots.get(0).getValueList());
84 assertEquals(Collections.singletonList("('code9^^scheme9')"), slots.get(1).getValueList());
85
86 assertEquals(Arrays.asList("('urn:oasis:names:tc:ebxml-regrep:StatusType:Approved')", "('urn:oasis:names:tc:ebxml-regrep:StatusType:Submitted')"),
87 ebXML.getSlotValues(QueryParameter.FOLDER_STATUS.getSlotName()));
88
89 assertEquals(6, ebXML.getSlots().size());
90 }
91
92 @Test
93 public void testToEbXMLNull() {
94 transformer.toEbXML(null, ebXML);
95 assertEquals(0, ebXML.getSlots().size());
96 }
97
98 @Test
99 public void testToEbXMLEmpty() {
100 transformer.toEbXML(new FindFoldersQuery(), ebXML);
101 assertEquals(0, ebXML.getSlots().size());
102 }
103
104
105
106 @Test
107 public void testFromEbXML() {
108 transformer.toEbXML(query, ebXML);
109 FindFoldersQuery result = new FindFoldersQuery();
110 transformer.fromEbXML(result, ebXML);
111
112 assertEquals(query, result);
113 }
114
115 @Test
116 public void testFromEbXMLLineBreakInAValueList() {
117 transformer.toEbXML(query, ebXML);
118 ebXML.getSlots().get(5).getValueList().clear();
119 ebXML.getSlots().get(5).getValueList().add("('urn:oasis:names:tc:ebxml-regrep:StatusType:Approved',\n'urn:oasis:names:tc:ebxml-regrep:StatusType:Submitted')");
120 FindFoldersQuery result = new FindFoldersQuery();
121 transformer.fromEbXML(result, ebXML);
122
123 assertEquals(query, result);
124 }
125
126 @Test
127 public void testFromEbXMLNull() {
128 FindFoldersQuery result = new FindFoldersQuery();
129 transformer.fromEbXML(result, null);
130 assertEquals(new FindFoldersQuery(), result);
131 }
132
133 @Test
134 public void testFromEbXMLEmpty() {
135 FindFoldersQuery result = new FindFoldersQuery();
136 transformer.fromEbXML(result, ebXML);
137 assertEquals(new FindFoldersQuery().toString(), result.toString());
138 }
139 }