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.net.URISyntaxException;
-import java.util.Date;
-import java.util.Optional;
import org.junit.Test;
public class QNameTest {
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);
+ private static final XMLNamespace NS = XMLNamespace.of(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());
+ assertEquals(qname, QName.create(qname.toString()));
+ }
+
+ @Test
+ public void testStringSerializationNoRevision() throws Exception {
// no revision
- {
- QName qname = QName.create(NS, LOCALNAME);
- assertEquals(QName.QNAME_LEFT_PARENTHESIS + NAMESPACE + QName.QNAME_RIGHT_PARENTHESIS
- + LOCALNAME, qname.toString());
- QName copied = QName.create(qname.toString());
- assertEquals(qname, copied);
- }
+ QName qname = QName.create(NS, LOCALNAME);
+ assertEquals(QName.QNAME_LEFT_PARENTHESIS + NAMESPACE + QName.QNAME_RIGHT_PARENTHESIS + LOCALNAME,
+ 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
assertTrue(qb.compareTo(qa) > 0);
// compare with 1 null revision
- qa = QName.create(URI.create(A), A);
- qb = QName.create(URI.create(A), QName.parseRevision(REVISION), A);
+ 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
- qb = QName.create(URI.create(A), A);
+ qb = QName.create(XMLNamespace.of(A), A);
assertTrue(qa.compareTo(qb) == 0);
assertTrue(qb.compareTo(qa) == 0);
}
assertEquals(qname1, qname.withoutRevision());
assertEquals(qname1, qname2);
assertTrue(qname.isEqualWithoutRevision(qname1));
- assertNotNull(QName.formattedRevision(Optional.of(new Date())));
- assertNotNull(qname.hashCode());
+ assertEquals("2000-01-01", QName.formattedRevision(Revision.ofNullable("2000-01-01")));
assertEquals(qname, qname.intern());
}
@Test
public void testQNameModule() throws URISyntaxException {
- final QNameModule qnameModule = QNameModule.create(NS, new Date());
- assertNotNull(qnameModule.toString());
- assertNotNull(qnameModule.getRevisionNamespace());
- }
-
- private static void assertLocalNameFails(final String localName) {
- try {
- QName.create(NS, localName);
- fail("Local name should fail:" + localName);
- } catch (IllegalArgumentException e) {
- // Expected
- }
+ final QNameModule qnameModule = QNameModule.create(NS, Revision.of("2000-01-01"));
+ assertEquals("QNameModule{ns=urn:foo, rev=2000-01-01}", qnameModule.toString());
}
}