KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > bus > configuration > ConfigurationMetadataUtilsTest


1 package org.objectweb.celtix.bus.configuration;
2
3 import java.io.ByteArrayInputStream JavaDoc;
4
5 import javax.xml.namespace.QName JavaDoc;
6 import javax.xml.parsers.DocumentBuilder JavaDoc;
7 import javax.xml.parsers.DocumentBuilderFactory JavaDoc;
8
9 import org.w3c.dom.Document JavaDoc;
10 import org.w3c.dom.Element JavaDoc;
11 import org.w3c.dom.Node JavaDoc;
12
13 import org.xml.sax.InputSource JavaDoc;
14
15 import junit.framework.TestCase;
16
17 import org.objectweb.celtix.configuration.ConfigurationException;
18 import org.objectweb.celtix.configuration.impl.ConfigurationMetadataUtils;
19
20 public class ConfigurationMetadataUtilsTest extends TestCase {
21
22     private static final String JavaDoc FRAGMENT =
23         "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
24         + "<a xmlns:tt=\"http://celtix.objectweb.org/configuration/test/types\">"
25         + "<b1><c1 name=\"tt:un\">tt:one</c1></b1>"
26         + "<b2><c2 xmlns:tt=\"http://celtix.objectweb.org/configuration/types\" name=\"tt:deux\">"
27         + "tt:two</c2></b2>"
28         + "<b3 xmlns:tt=\"http://celtix.objectweb.org/configuration/types\">"
29         + "<c3 xmlns:tt=\"http://celtix.objectweb.org/configuration/metadata\" name=\"tt:trois\">"
30         + "tt:three</c3></b3>"
31         + "<b4></b4>"
32         + "<b5>BEFORE<c5></c5>AFTER</b5>"
33         + "<b55><c5></c5>AFTER</b55>"
34         + "<b6><c6>:noprefix</c6></b6>"
35         + "<b7><c7>tt:</c7></b7>"
36         + "<b8><c8>dd:unknownprefix</c8></b8>"
37         + "</a>";
38     
39     private static Document JavaDoc document;
40
41     public void testGetElementValue() throws Exception JavaDoc {
42         Document JavaDoc doc = getDocument(FRAGMENT);
43         Node JavaDoc node = doc.getElementsByTagName("c1").item(0);
44         assertEquals("tt:one", ConfigurationMetadataUtils.getElementValue(node));
45         node = doc.getElementsByTagName("b4").item(0);
46         assertNull(ConfigurationMetadataUtils.getElementValue(node));
47         node = doc.getElementsByTagName("b5").item(0);
48         assertEquals("BEFORE", ConfigurationMetadataUtils.getElementValue(node));
49         node = doc.getElementsByTagName("b55").item(0);
50         assertEquals("AFTER", ConfigurationMetadataUtils.getElementValue(node));
51     }
52     
53     public void testGetElementValueToQName() throws Exception JavaDoc {
54         Document JavaDoc doc = getDocument(FRAGMENT);
55         Element JavaDoc elem = (Element JavaDoc)(doc.getElementsByTagName("c1").item(0));
56         QName JavaDoc qn = null;
57         qn = new QName JavaDoc("http://celtix.objectweb.org/configuration/test/types", "one");
58         assertEquals(qn, ConfigurationMetadataUtils.elementValueToQName(doc, elem));
59         elem = (Element JavaDoc)(doc.getElementsByTagName("c2").item(0));
60         qn = new QName JavaDoc("http://celtix.objectweb.org/configuration/types", "two");
61         assertEquals(qn, ConfigurationMetadataUtils.elementValueToQName(doc, elem));
62         elem = (Element JavaDoc)(doc.getElementsByTagName("c3").item(0));
63         qn = new QName JavaDoc("http://celtix.objectweb.org/configuration/metadata", "three");
64         assertEquals(qn, ConfigurationMetadataUtils.elementValueToQName(doc, elem));
65         
66         elem = (Element JavaDoc)(doc.getElementsByTagName("c6").item(0));
67         try {
68             ConfigurationMetadataUtils.elementValueToQName(doc, elem);
69         } catch (ConfigurationException ex) {
70             assertEquals("ILLEGAL_QNAME_EXC", ex.getCode());
71         }
72         elem = (Element JavaDoc)(doc.getElementsByTagName("c7").item(0));
73         try {
74             ConfigurationMetadataUtils.elementValueToQName(doc, elem);
75         } catch (ConfigurationException ex) {
76             assertEquals("ILLEGAL_QNAME_EXC", ex.getCode());
77         }
78         elem = (Element JavaDoc)(doc.getElementsByTagName("c8").item(0));
79         try {
80             ConfigurationMetadataUtils.elementValueToQName(doc, elem);
81         } catch (ConfigurationException ex) {
82             assertEquals("ILLEGAL_PREFIX_EXC", ex.getCode());
83         }
84     }
85     
86     public void testGetElementAttributeToQName() throws Exception JavaDoc {
87         Document JavaDoc doc = getDocument(FRAGMENT);
88         Element JavaDoc elem = (Element JavaDoc)(doc.getElementsByTagName("c1").item(0));
89         QName JavaDoc qn = null;
90         qn = new QName JavaDoc("http://celtix.objectweb.org/configuration/test/types", "un");
91         assertEquals(qn, ConfigurationMetadataUtils.elementAttributeToQName(doc, elem, "name"));
92         elem = (Element JavaDoc)(doc.getElementsByTagName("c2").item(0));
93         qn = new QName JavaDoc("http://celtix.objectweb.org/configuration/types", "deux");
94         assertEquals(qn, ConfigurationMetadataUtils.elementAttributeToQName(doc, elem, "name"));
95         elem = (Element JavaDoc)(doc.getElementsByTagName("c3").item(0));
96         qn = new QName JavaDoc("http://celtix.objectweb.org/configuration/metadata", "trois");
97         assertEquals(qn, ConfigurationMetadataUtils.elementAttributeToQName(doc, elem, "name"));
98     }
99     
100     private Document JavaDoc getDocument(String JavaDoc str) throws Exception JavaDoc {
101         if (null == document) {
102             DocumentBuilderFactory JavaDoc factory = DocumentBuilderFactory.newInstance();
103             factory.setNamespaceAware(true);
104             DocumentBuilder JavaDoc parser = factory.newDocumentBuilder();
105             document = parser.parse(new InputSource JavaDoc(new ByteArrayInputStream JavaDoc(str.getBytes())));
106         }
107         return document;
108     }
109 }
110
Popular Tags