Fix eclipse/checkstyle warnings
[yangtools.git] / yang / yang-common / src / test / java / org / opendaylight / yangtools / yang / common / QNameTest.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.yangtools.yang.common;
9
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertNotNull;
12 import static org.junit.Assert.assertTrue;
13 import static org.junit.Assert.fail;
14
15 import java.net.URI;
16 import java.util.Date;
17 import org.junit.Test;
18
19 public class QNameTest {
20     private final String namespace = "urn:foo";
21     private final String revision = "2013-12-24";
22     private final String localName = "bar";
23     private final URI ns = URI.create(namespace);
24
25     @Test
26     public void testStringSerialization() throws Exception {
27         {
28             QName qname = QName.create(namespace, revision, localName);
29             assertEquals(QName.QNAME_LEFT_PARENTHESIS + namespace + QName.QNAME_REVISION_DELIMITER
30                     + revision + QName.QNAME_RIGHT_PARENTHESIS + localName, qname.toString());
31             QName copied = QName.create(qname.toString());
32             assertEquals(qname, copied);
33         }
34         // no revision
35         {
36             QName qname = new QName(ns, localName);
37             assertEquals(QName.QNAME_LEFT_PARENTHESIS + namespace + QName.QNAME_RIGHT_PARENTHESIS
38                     + localName, qname.toString());
39             QName copied = QName.create(qname.toString());
40             assertEquals(qname, copied);
41         }
42         // no namespace nor revision
43         {
44             QName qname = new QName(null, localName);
45             assertEquals(localName, qname.toString());
46             QName copied = QName.create(qname.toString());
47             assertEquals(qname, copied);
48         }
49     }
50
51     @Test
52     public void testIllegalLocalNames() {
53         assertLocalNameFails(null);
54         assertLocalNameFails("");
55         assertLocalNameFails("(");
56         assertLocalNameFails(")");
57         assertLocalNameFails("?");
58         assertLocalNameFails("&");
59     }
60
61     @Test
62     public void testCompareTo() throws Exception {
63         final String A = "a";
64         final String B = "b";
65
66         QName qa = QName.create(A);
67         QName qb = QName.create(A);
68         assertTrue(qa.compareTo(qb) == 0);
69         assertTrue(qb.compareTo(qa) == 0);
70
71         // compare with localName
72         qa = QName.create(A);
73         qb = QName.create(B);
74         assertTrue(qa.compareTo(qb) < 0);
75         assertTrue(qb.compareTo(qa) > 0);
76
77         // compare with namespace
78         qa = QName.create(A, revision, A);
79         qb = QName.create(B, revision, A);
80         assertTrue(qa.compareTo(qb) < 0);
81         assertTrue(qb.compareTo(qa) > 0);
82
83         // compare with 1 null namespace
84         qa = QName.create(null, QName.parseRevision(revision), A);
85         qb = QName.create(URI.create(A), QName.parseRevision(revision), A);
86         assertTrue(qa.compareTo(qb) < 0);
87         assertTrue(qb.compareTo(qa) > 0);
88
89         // compare with both null namespace
90         qb = QName.create(null, QName.parseRevision(revision), A);
91         assertTrue(qa.compareTo(qb) == 0);
92         assertTrue(qb.compareTo(qa) == 0);
93
94         // compare with revision
95         qa = QName.create(A, "2013-12-24", A);
96         qb = QName.create(A, "2013-12-25", A);
97         assertTrue(qa.compareTo(qb) < 0);
98         assertTrue(qb.compareTo(qa) > 0);
99
100         // compare with 1 null revision
101         qa = QName.create(URI.create(A), null, A);
102         qb = QName.create(URI.create(A), QName.parseRevision(revision), A);
103         assertTrue(qa.compareTo(qb) < 0);
104         assertTrue(qb.compareTo(qa) > 0);
105
106         // compare with both null revision
107         qb = QName.create(URI.create(A), null, A);
108         assertTrue(qa.compareTo(qb) == 0);
109         assertTrue(qb.compareTo(qa) == 0);
110     }
111
112     @Test
113     public void testQName() {
114         final QName qname = QName.create(namespace, revision, localName);
115         final QName qname1 = QName.create(namespace, localName);
116         final QName qname2 = QName.create(qname1, localName);
117         assertEquals(qname1, qname.withoutRevision());
118         assertEquals(qname1, qname2);
119         assertTrue(qname.isEqualWithoutRevision(qname1));
120         assertNotNull(QName.formattedRevision(new Date()));
121         assertNotNull(qname.hashCode());
122         assertEquals(qname, qname.intern());
123     }
124
125     @Test
126     public void testQNameModule() {
127         final QNameModule qnameModule = QNameModule.create(ns, new Date());
128         assertNotNull(qnameModule.toString());
129         assertNotNull(qnameModule.getRevisionNamespace());
130     }
131
132     private static void assertLocalNameFails(final String localName) {
133         try {
134             new QName(null, localName);
135             fail("Local name should fail:" + localName);
136         } catch (IllegalArgumentException e) {
137             // Expected
138         }
139     }
140 }