View Javadoc
1   /*
2    * Copyright 2012 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.hl7;
17  
18  import org.junit.Test;
19  import org.openehealth.ipf.commons.ihe.xds.core.metadata.*;
20  
21  import static org.junit.Assert.*;
22  
23  /**
24   * @author Dmytro Rud
25   */
26  public class XdsHl7v2RenderingTest {
27  
28      @Test
29      public void testCodeRendering() {
30          doCheckCodeRendering("a", "b", "c", "a^^c");
31          doCheckCodeRendering("a", "b", null, "a");
32          doCheckCodeRendering("a", null, "c", "a^^c");
33          doCheckCodeRendering("a", null, null, "a");
34          doCheckCodeRendering(null, "b", "c", "^^c");
35          doCheckCodeRendering(null, "b", null, null);
36          doCheckCodeRendering(null, null, "c", "^^c");
37          doCheckCodeRendering(null, null, null, null);
38      }
39  
40      private static void doCheckCodeRendering(String id, String displayName, String schemeName, String expected) {
41          Code code = new Code(id, new LocalizedString(displayName), schemeName);
42          String rendered = Hl7v2Based.render(code);
43          assertEquals(expected, rendered);
44      }
45  
46      @Test
47      public void testTelecomRendering() {
48          String xtn = "1^2^3^4^5^6^7^8^9^10^11^12^13^14^^^";
49          Telecom telecom = Hl7v2Based.parse(xtn, Telecom.class);
50          assertEquals("^2^3^4^5^6^7^8^^^^12", Hl7v2Based.render(telecom));
51          assertEquals("1^2^3^4^5^6^7^8^9^10^11^12^13^14", Hl7v2Based.rawRender(telecom));
52      }
53  
54      @Test
55      public void testIdentifiableRendering() {
56          String cx = "1^2^3^41&42&43&44&45&46^51&52^6^^&&^^";
57          Identifiable identifiable = Hl7v2Based.parse(cx, Identifiable.class);
58          assertEquals("1^^^&42&43", Hl7v2Based.render(identifiable));
59          assertEquals("1^2^3^41&42&43&44&45&46^51&52^6", Hl7v2Based.rawRender(identifiable));
60      }
61  
62      @Test
63      public void testReferenceIdRendering() {
64          String cx = "1^2^3^41&42&43&44&45&46^51&52^6^^&&^^";
65          ReferenceId referenceId = Hl7v2Based.parse(cx, ReferenceId.class);
66          assertEquals("1^^^41&42&43^51", Hl7v2Based.render(referenceId));
67          assertEquals("1^2^3^41&42&43&44&45&46^51&52^6", Hl7v2Based.rawRender(referenceId));
68      }
69  
70      @Test
71      public void testEmptyAssignignAuthority() {
72          String cx = "1^^^ABCD^^^^";
73          Identifiable identifiable = Hl7v2Based.parse(cx, Identifiable.class);
74          assertNull(identifiable.getAssigningAuthority());
75          ReferenceId referenceId = Hl7v2Based.parse(cx, ReferenceId.class);
76          assertNotNull(referenceId.getAssigningAuthority());
77      }
78  
79      @Test
80      public void testNonEmptyAssignignAuthority() {
81          String cx = "1^^^ABCD&1.2.3&ISO^^^";
82          Identifiable identifiable = Hl7v2Based.parse(cx, Identifiable.class);
83          assertNotNull(identifiable.getAssigningAuthority());
84          ReferenceId referenceId = Hl7v2Based.parse(cx, ReferenceId.class);
85          assertNotNull(referenceId.getAssigningAuthority());
86      }
87  
88  }