1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.xml.namespace;
18
19 import javax.xml.namespace.QName;
20 import javax.xml.parsers.DocumentBuilder;
21 import javax.xml.parsers.DocumentBuilderFactory;
22
23 import junit.framework.TestCase;
24 import org.springframework.util.StringUtils;
25 import org.w3c.dom.Document;
26 import org.w3c.dom.Element;
27
28 public class QNameUtilsTest extends TestCase {
29
30 public void testValidQNames() {
31 assertTrue("Namespace QName not validated", QNameUtils.validateQName("{namespace}local"));
32 assertTrue("No Namespace QName not validated", QNameUtils.validateQName("local"));
33 }
34
35 public void testInvalidQNames() {
36 assertFalse("Null QName validated", QNameUtils.validateQName(null));
37 assertFalse("Empty QName validated", QNameUtils.validateQName(""));
38 assertFalse("Invalid QName validated", QNameUtils.validateQName("{namespace}"));
39 assertFalse("Invalid QName validated", QNameUtils.validateQName("{namespace"));
40 }
41
42 public void testGetQNameForNodeNoNamespace() throws Exception {
43 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
44 DocumentBuilder builder = factory.newDocumentBuilder();
45 Document document = builder.newDocument();
46 Element element = document.createElement("localname");
47 QName qName = QNameUtils.getQNameForNode(element);
48 assertNotNull("getQNameForNode returns null", qName);
49 assertEquals("QName has invalid localname", "localname", qName.getLocalPart());
50 assertFalse("Qname has invalid namespace", StringUtils.hasLength(qName.getNamespaceURI()));
51 assertFalse("Qname has invalid prefix", StringUtils.hasLength(qName.getPrefix()));
52
53 }
54
55 public void testGetQNameForNodeNoPrefix() throws Exception {
56 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
57 DocumentBuilder builder = factory.newDocumentBuilder();
58 Document document = builder.newDocument();
59 Element element = document.createElementNS("namespace", "localname");
60 QName qName = QNameUtils.getQNameForNode(element);
61 assertNotNull("getQNameForNode returns null", qName);
62 assertEquals("QName has invalid localname", "localname", qName.getLocalPart());
63 assertEquals("Qname has invalid namespace", "namespace", qName.getNamespaceURI());
64 assertFalse("Qname has invalid prefix", StringUtils.hasLength(qName.getPrefix()));
65 }
66
67 public void testGetQNameForNode() throws Exception {
68 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
69 DocumentBuilder builder = factory.newDocumentBuilder();
70 Document document = builder.newDocument();
71 Element element = document.createElementNS("namespace", "prefix:localname");
72 QName qName = QNameUtils.getQNameForNode(element);
73 assertNotNull("getQNameForNode returns null", qName);
74 assertEquals("QName has invalid localname", "localname", qName.getLocalPart());
75 assertEquals("Qname has invalid namespace", "namespace", qName.getNamespaceURI());
76 assertEquals("Qname has invalid prefix", "prefix", qName.getPrefix());
77 }
78
79 public void testToQualifiedNamePrefix() throws Exception {
80 QName qName = new QName("namespace", "localName", "prefix");
81 String result = QNameUtils.toQualifiedName(qName);
82 assertEquals("Invalid result", "prefix:localName", result);
83 }
84
85 public void testToQualifiedNameNoPrefix() throws Exception {
86 QName qName = new QName("localName");
87 String result = QNameUtils.toQualifiedName(qName);
88 assertEquals("Invalid result", "localName", result);
89 }
90
91 public void testToQNamePrefix() throws Exception {
92 QName result = QNameUtils.toQName("namespace", "prefix:localName");
93 assertEquals("invalid namespace", "namespace", result.getNamespaceURI());
94 assertEquals("invalid prefix", "prefix", result.getPrefix());
95 assertEquals("invalid localname", "localName", result.getLocalPart());
96 }
97
98 public void testToQNameNoPrefix() throws Exception {
99 QName result = QNameUtils.toQName("namespace", "localName");
100 assertEquals("invalid namespace", "namespace", result.getNamespaceURI());
101 assertEquals("invalid prefix", "", result.getPrefix());
102 assertEquals("invalid localname", "localName", result.getLocalPart());
103 }
104
105
106 }