1 package org.openehealth.ipf.commons.core;
2
3 import org.junit.Test;
4
5 import java.net.URI;
6 import java.net.URISyntaxException;
7 import java.util.HashSet;
8 import java.util.Set;
9 import java.util.UUID;
10
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertFalse;
13 import static org.junit.Assert.assertTrue;
14
15
16
17
18 public class URNTest {
19
20 @Test
21 public void testCorrectOID() throws URISyntaxException {
22 String nss = "1.2.3.4";
23 String text = "urn:OID:" + nss;
24 assertTrue(URN.isURN(text));
25 URN urn = URN.create(text);
26 assertEquals("OID", urn.getNamespaceId());
27 assertTrue(urn.isNamespace(URN.OID));
28 assertEquals(nss, urn.getNamespaceSpecificString());
29 assertEquals(text, urn.toString());
30 }
31
32 @Test
33 public void testCorrectUUID() throws URISyntaxException {
34 UUID uuid = UUID.randomUUID();
35 URN urn = new URN(uuid);
36 assertEquals("uuid", urn.getNamespaceId());
37 assertTrue(urn.isNamespace(URN.UUID));
38 assertEquals(uuid.toString(), urn.getNamespaceSpecificString());
39 }
40
41 @Test
42 public void testInvalidURN() {
43 assertFalse(URN.isURN("blorg:oid:1234"));
44 assertFalse(URN.isURN("urn:oid"));
45 assertFalse(URN.isURN("1234"));
46 assertFalse(URN.isURN("http://hl7.org/fhir"));
47 }
48
49 @Test
50 public void testPartConstructor() throws URISyntaxException {
51 URN urn = new URN("isbn", "2384576256");
52 assertEquals("urn:isbn:2384576256", urn.toString());
53 }
54
55 @Test
56 public void testUri() throws URISyntaxException {
57 String text = "urn:isbn:2384576256";
58 URI uri = new URI(text);
59 URN urn = new URN(uri);
60 assertEquals(text, urn.toString());
61 assertEquals(uri, urn.toURI());
62 }
63
64 @Test
65 public void testEquals() throws URISyntaxException {
66 assertEquals(URN.create("urn:oid:1.2.3.4"), URN.create("urn:OID:1.2.3.4"));
67 }
68
69 @Test
70 public void testHashCode() throws URISyntaxException {
71 Set<URN> set = new HashSet<>();
72 set.add(URN.create("urn:oid:1.2.3.4"));
73 assertTrue(set.contains(URN.create("urn:OID:1.2.3.4")));
74 }
75 }