Enforce non-null QNameModule namespace
[yangtools.git] / yang / yang-common / src / test / java / org / opendaylight / yangtools / yang / common / QNameTest.java
index 410bca2b82090c6b32c4ab1c37092489c345d5e5..f91af065d8775a8266ac2c1684d565350b92b5e7 100644 (file)
@@ -7,43 +7,37 @@
  */
 package org.opendaylight.yangtools.yang.common;
 
-import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import java.net.URI;
-
-import static org.junit.Assert.*;
+import java.util.Date;
+import org.junit.Test;
 
 public class QNameTest {
-    private final String namespace = "urn:foo", revision = "2013-12-24", localName = "bar";
-    private final URI ns;
-
-    public QNameTest() throws Exception {
-        this.ns = new URI(namespace);
-    }
+    private static final String NAMESPACE = "urn:foo";
+    private static final String REVISION = "2013-12-24";
+    private static final String LOCALNAME = "bar";
+    private static final URI NS = URI.create(NAMESPACE);
 
     @Test
     public void testStringSerialization() throws Exception {
         {
-            QName qName = QName.create(namespace, revision, localName);
-            assertEquals(QName.QNAME_LEFT_PARENTHESIS + namespace + QName.QNAME_REVISION_DELIMITER
-                    + revision + QName.QNAME_RIGHT_PARENTHESIS + localName, qName.toString());
-            QName copied = QName.create(qName.toString());
-            assertEquals(qName, copied);
+            QName qname = QName.create(NAMESPACE, REVISION, LOCALNAME);
+            assertEquals(QName.QNAME_LEFT_PARENTHESIS + NAMESPACE + QName.QNAME_REVISION_DELIMITER
+                    + REVISION + QName.QNAME_RIGHT_PARENTHESIS + LOCALNAME, qname.toString());
+            QName copied = QName.create(qname.toString());
+            assertEquals(qname, copied);
         }
         // no revision
         {
-            QName qName = new QName(ns, localName);
-            assertEquals(QName.QNAME_LEFT_PARENTHESIS + namespace + QName.QNAME_RIGHT_PARENTHESIS
-                    + localName, qName.toString());
-            QName copied = QName.create(qName.toString());
-            assertEquals(qName, copied);
-        }
-        // no namespace nor revision
-        {
-            QName qName = new QName((URI) null, localName);
-            assertEquals(localName, qName.toString());
-            QName copied = QName.create(qName.toString());
-            assertEquals(qName, copied);
+            QName qname = new QName(NS, LOCALNAME);
+            assertEquals(QName.QNAME_LEFT_PARENTHESIS + NAMESPACE + QName.QNAME_RIGHT_PARENTHESIS
+                    + LOCALNAME, qname.toString());
+            QName copied = QName.create(qname.toString());
+            assertEquals(qname, copied);
         }
     }
 
@@ -59,62 +53,59 @@ public class QNameTest {
 
     @Test
     public void testCompareTo() throws Exception {
-        String A = "a";
-        String B = "b";
-
-        QName a = QName.create(A);
-        QName b = QName.create(A);
-        assertTrue(a.compareTo(b) == 0);
-        assertTrue(b.compareTo(a) == 0);
-
-        // compare with localName
-        a = QName.create(A);
-        b = QName.create(B);
-        assertTrue(a.compareTo(b) < 0);
-        assertTrue(b.compareTo(a) > 0);
+        final String A = "a";
+        final String B = "b";
 
         // compare with namespace
-        a = QName.create(A, revision, A);
-        b = QName.create(B, revision, A);
-        assertTrue(a.compareTo(b) < 0);
-        assertTrue(b.compareTo(a) > 0);
-
-        // compare with 1 null namespace
-        a = new QName(null, QName.parseRevision(revision), A);
-        b = new QName(URI.create(A), QName.parseRevision(revision), A);
-        assertTrue(a.compareTo(b) < 0);
-        assertTrue(b.compareTo(a) > 0);
-
-        // compare with both null namespace
-        b = new QName(null, QName.parseRevision(revision), A);
-        assertTrue(a.compareTo(b) == 0);
-        assertTrue(b.compareTo(a) == 0);
+        QName qa = QName.create(A, REVISION, A);
+        QName qb = QName.create(B, REVISION, A);
+        assertTrue(qa.compareTo(qb) < 0);
+        assertTrue(qb.compareTo(qa) > 0);
 
         // compare with revision
-        a = QName.create(A, "2013-12-24", A);
-        b = QName.create(A, "2013-12-25", A);
-        assertTrue(a.compareTo(b) < 0);
-        assertTrue(b.compareTo(a) > 0);
+        qa = QName.create(A, "2013-12-24", A);
+        qb = QName.create(A, "2013-12-25", A);
+        assertTrue(qa.compareTo(qb) < 0);
+        assertTrue(qb.compareTo(qa) > 0);
 
         // compare with 1 null revision
-        a = new QName(URI.create(A), null, A);
-        b = new QName(URI.create(A), QName.parseRevision(revision), A);
-        assertTrue(a.compareTo(b) < 0);
-        assertTrue(b.compareTo(a) > 0);
+        qa = QName.create(URI.create(A), null, A);
+        qb = QName.create(URI.create(A), QName.parseRevision(REVISION), A);
+        assertTrue(qa.compareTo(qb) < 0);
+        assertTrue(qb.compareTo(qa) > 0);
 
         // compare with both null revision
-        b = new QName(URI.create(A), null, A);
-        assertTrue(a.compareTo(b) == 0);
-        assertTrue(b.compareTo(a) == 0);
+        qb = QName.create(URI.create(A), null, A);
+        assertTrue(qa.compareTo(qb) == 0);
+        assertTrue(qb.compareTo(qa) == 0);
     }
 
-    private void assertLocalNameFails(String localName) {
+    @Test
+    public void testQName() {
+        final QName qname = QName.create(NAMESPACE, REVISION, LOCALNAME);
+        final QName qname1 = QName.create(NAMESPACE, LOCALNAME);
+        final QName qname2 = QName.create(qname1, LOCALNAME);
+        assertEquals(qname1, qname.withoutRevision());
+        assertEquals(qname1, qname2);
+        assertTrue(qname.isEqualWithoutRevision(qname1));
+        assertNotNull(QName.formattedRevision(new Date()));
+        assertNotNull(qname.hashCode());
+        assertEquals(qname, qname.intern());
+    }
+
+    @Test
+    public void testQNameModule() {
+        final QNameModule qnameModule = QNameModule.create(NS, new Date());
+        assertNotNull(qnameModule.toString());
+        assertNotNull(qnameModule.getRevisionNamespace());
+    }
+
+    private static void assertLocalNameFails(final String localName) {
         try {
-            new QName((URI)null, localName);
+            new QName(NS, localName);
             fail("Local name should fail:" + localName);
         } catch (IllegalArgumentException e) {
-
+            // Expected
         }
     }
-
 }