View Javadoc
1   /*
2    * Copyright 2009 the original author or authors.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *     
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
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  
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.ebxml30.EbXMLFactory30;
27  import org.openehealth.ipf.commons.ihe.xds.core.metadata.AssociationType;
28  import org.openehealth.ipf.commons.ihe.xds.core.metadata.DocumentEntryType;
29  import org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetRelatedDocumentsQuery;
30  import org.openehealth.ipf.commons.ihe.xds.core.requests.query.QueryType;
31  import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter;
32  import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.GetDocumentsQueryTransformer;
33  import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.GetRelatedDocumentsQueryTransformer;
34  
35  /**
36   * Tests for {@link GetDocumentsQueryTransformer}.
37   * @author Jens Riemschneider
38   */
39  public class GetRelatedDocumentsQueryTransformerTest {
40      private GetRelatedDocumentsQueryTransformer transformer;
41      private GetRelatedDocumentsQuery query;
42      private EbXMLAdhocQueryRequest ebXML;
43      
44      @Before
45      public void setUp() {
46          transformer = new GetRelatedDocumentsQueryTransformer();
47          query = new GetRelatedDocumentsQuery();
48  
49          query.setUuid("uuid1");
50          query.setUniqueId("uniqueId1");
51          query.setHomeCommunityId("home");
52          query.setAssociationTypes(Arrays.asList(AssociationType.HAS_MEMBER, AssociationType.TRANSFORM_AND_REPLACE));
53          query.setDocumentEntryTypes(Collections.singletonList(DocumentEntryType.STABLE));
54  
55          ebXML = new EbXMLFactory30().createAdhocQueryRequest();
56      }
57      
58      @Test
59      public void testToEbXML() {
60          transformer.toEbXML(query, ebXML);
61          assertEquals(QueryType.GET_RELATED_DOCUMENTS.getId(), ebXML.getId());
62          
63          assertEquals(Collections.singletonList("'uuid1'"),
64                  ebXML.getSlotValues(QueryParameter.DOC_ENTRY_UUID.getSlotName()));
65          
66          assertEquals(Collections.singletonList("'uniqueId1'"),
67                  ebXML.getSlotValues(QueryParameter.DOC_ENTRY_UNIQUE_ID.getSlotName()));
68  
69          assertEquals("home", ebXML.getHome());
70  
71          assertEquals(Arrays.asList("('urn:oasis:names:tc:ebxml-regrep:AssociationType:HasMember')", "('urn:ihe:iti:2007:AssociationType:XFRM_RPLC')"),
72                  ebXML.getSlotValues(QueryParameter.ASSOCIATION_TYPE.getSlotName()));
73  
74          assertEquals(Collections.singletonList("('urn:uuid:7edca82f-054d-47f2-a032-9b2a5b5186c1')"),
75                  ebXML.getSlotValues(QueryParameter.DOC_ENTRY_TYPE.getSlotName()));
76  
77          assertEquals(4, ebXML.getSlots().size());
78      }
79      
80      @Test
81      public void testToEbXMLNull() {
82          transformer.toEbXML(null, ebXML);
83          assertEquals(0, ebXML.getSlots().size());
84      }
85      
86      @Test
87      public void testToEbXMLEmpty() {
88          transformer.toEbXML(new GetRelatedDocumentsQuery(), ebXML);
89          assertEquals(0, ebXML.getSlots().size());
90      }
91  
92      
93      
94      @Test
95      public void testFromEbXML() {
96          transformer.toEbXML(query, ebXML);
97          GetRelatedDocumentsQuery result = new GetRelatedDocumentsQuery();
98          transformer.fromEbXML(result, ebXML);
99          
100         assertEquals(query, result);
101     }
102     
103     @Test
104     public void testFromEbXMLNull() {
105         GetRelatedDocumentsQuery result = new GetRelatedDocumentsQuery();
106         transformer.fromEbXML(result, null);        
107         assertEquals(new GetRelatedDocumentsQuery(), result);
108     }
109         
110     @Test
111     public void testFromEbXMLEmpty() {
112         GetRelatedDocumentsQuery result = new GetRelatedDocumentsQuery();
113         transformer.fromEbXML(result, ebXML);        
114         assertEquals(new GetRelatedDocumentsQuery(), result);
115     }
116 }