X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-common%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fcommon%2FQNameTest.java;h=90a8e45f39082e5cde0006a4b1c82eb2ffc27bf7;hb=refs%2Fchanges%2F07%2F95907%2F2;hp=59c91c939bbcb4a1d3abb85eada17cffcb7910ff;hpb=4289d94a05680dcef581db627914f6c05b723fee;p=yangtools.git diff --git a/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java b/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java index 59c91c939b..90a8e45f39 100644 --- a/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java +++ b/yang/yang-common/src/test/java/org/opendaylight/yangtools/yang/common/QNameTest.java @@ -8,133 +8,87 @@ package org.opendaylight.yangtools.yang.common; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import java.net.URI; -import java.util.Date; + +import java.net.URISyntaxException; import org.junit.Test; public class QNameTest { - private final String namespace = "urn:foo", revision = "2013-12-24", localName = "bar"; - private final URI ns; + private static final String NAMESPACE = "urn:foo"; + private static final String REVISION = "2013-12-24"; + private static final String LOCALNAME = "bar"; + private static final XMLNamespace NS = XMLNamespace.of(NAMESPACE); - public QNameTest() throws Exception { - this.ns = new URI(namespace); + @Test + public void testStringSerialization() throws Exception { + QName qname = QName.create(NAMESPACE, REVISION, LOCALNAME); + assertEquals("(urn:foo?revision=2013-12-24)bar", qname.toString()); + assertEquals(qname, QName.create(qname.toString())); } @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); - } + public void testStringSerializationNoRevision() throws Exception { // 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 = QName.create(NS, LOCALNAME); + assertEquals("(urn:foo)bar", qname.toString()); + assertEquals(qname, QName.create(qname.toString())); } @Test public void testIllegalLocalNames() { - assertLocalNameFails(null); - assertLocalNameFails(""); - assertLocalNameFails("("); - assertLocalNameFails(")"); - assertLocalNameFails("?"); - assertLocalNameFails("&"); + assertThrows(NullPointerException.class, () -> QName.create(NS, null)); + assertThrows(IllegalArgumentException.class, () -> QName.create(NS, "")); + assertThrows(IllegalArgumentException.class, () -> QName.create(NS, "(")); + assertThrows(IllegalArgumentException.class, () -> QName.create(NS, ")")); + assertThrows(IllegalArgumentException.class, () -> QName.create(NS, "?")); + assertThrows(IllegalArgumentException.class, () -> QName.create(NS, "&")); } @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 = QName.create(null, QName.parseRevision(revision), A); - b = QName.create(URI.create(A), QName.parseRevision(revision), A); - assertTrue(a.compareTo(b) < 0); - assertTrue(b.compareTo(a) > 0); - - // compare with both null namespace - b = QName.create(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 = QName.create(URI.create(A), null, A); - b = QName.create(URI.create(A), QName.parseRevision(revision), A); - assertTrue(a.compareTo(b) < 0); - assertTrue(b.compareTo(a) > 0); + qa = QName.create(XMLNamespace.of(A), A); + qb = QName.create(XMLNamespace.of(A), Revision.of(REVISION), A); + assertTrue(qa.compareTo(qb) < 0); + assertTrue(qb.compareTo(qa) > 0); // compare with both null revision - b = QName.create(URI.create(A), null, A); - assertTrue(a.compareTo(b) == 0); - assertTrue(b.compareTo(a) == 0); + qb = QName.create(XMLNamespace.of(A), A); + assertTrue(qa.compareTo(qb) == 0); + assertTrue(qb.compareTo(qa) == 0); } @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()); + 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)); + assertEquals("2000-01-01", QName.formattedRevision(Revision.ofNullable("2000-01-01"))); + 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); - fail("Local name should fail:" + localName); - } catch (IllegalArgumentException e) { - } + public void testQNameModule() throws URISyntaxException { + final QNameModule qnameModule = QNameModule.create(NS, Revision.of("2000-01-01")); + assertEquals("QNameModule{ns=urn:foo, rev=2000-01-01}", qnameModule.toString()); } -} \ No newline at end of file +}