001: /*
002: * BEGIN_HEADER - DO NOT EDIT
003: *
004: * The contents of this file are subject to the terms
005: * of the Common Development and Distribution License
006: * (the "License"). You may not use this file except
007: * in compliance with the License.
008: *
009: * You can obtain a copy of the license at
010: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
011: * See the License for the specific language governing
012: * permissions and limitations under the License.
013: *
014: * When distributing Covered Code, include this CDDL
015: * HEADER in each file and include the License file at
016: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
017: * If applicable add the following below this CDDL HEADER,
018: * with the fields enclosed by brackets "[]" replaced with
019: * your own identifying information: Portions Copyright
020: * [year] [name of copyright owner]
021: */
022:
023: /*
024: * @(#)TestDOMUtil.java
025: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
026: *
027: * END_HEADER - DO NOT EDIT
028: */
029: package com.sun.jbi.management.internal.support;
030:
031: import java.io.File;
032: import javax.xml.namespace.QName;
033: import javax.xml.parsers.DocumentBuilder;
034: import javax.xml.parsers.DocumentBuilderFactory;
035: import org.w3c.dom.Document;
036: import org.w3c.dom.Element;
037: import org.w3c.dom.Node;
038:
039: public class TestDOMUtil extends junit.framework.TestCase {
040: private static final String DOC_PATH = "/testdata/DOMUtil-ns-good.xml";
041: private static final String ELEMENT_NAME = "nselement";
042: private static final String ATTRIBUTE_NAME = "qname";
043: private static final String ATTRIBUTE_VAL = "myattribute";
044: private static final String NS_URI = "http://mynamespace.com/n1";
045: private static final String NS_PREFIX = "n1";
046: private static final String ROOT_NODE_NAME = "good-namespace";
047: private static final QName ATTR_VAL_QNAME = new QName(NS_URI,
048: ATTRIBUTE_VAL);
049:
050: private DocumentBuilder mBuilder;
051: private File mDocFile;
052: private Document mDoc;
053: private DOMUtil mUtil;
054:
055: public TestDOMUtil(String aTestName) throws Exception {
056: super (aTestName);
057:
058: DocumentBuilderFactory dbf = DocumentBuilderFactory
059: .newInstance();
060: dbf.setNamespaceAware(true);
061:
062: mBuilder = dbf.newDocumentBuilder();
063: mUtil = new DOMUtil();
064:
065: String srcroot = System.getProperty("junit.srcroot");
066: String manage = "/runtime/manage/bld/test-classes"; // open-esb build
067:
068: java.io.File f = new java.io.File(srcroot + manage);
069: if (!f.exists()) {
070: manage = "/manage/bld/regress"; // mainline/whitney build
071: }
072:
073: mDocFile = new File(srcroot + manage + DOC_PATH);
074: }
075:
076: public void setUp() throws Exception {
077: super .setUp();
078:
079: mDoc = mBuilder.parse(mDocFile);
080: }
081:
082: public void tearDown() throws Exception {
083:
084: }
085:
086: public void testGetNamespace() throws Exception {
087: Element element;
088: String ns;
089:
090: element = (Element) mDoc.getElementsByTagName(ELEMENT_NAME)
091: .item(0);
092:
093: ns = mUtil.getNamespace(element, element
094: .getAttribute(ATTRIBUTE_NAME));
095:
096: assertEquals(ns, NS_URI);
097: }
098:
099: public void testGetQualifiedAttributeValue() throws Exception {
100: Element element;
101: QName qname;
102:
103: element = (Element) mDoc.getElementsByTagName(ELEMENT_NAME)
104: .item(0);
105: qname = mUtil.getQualifiedAttributeValue(element,
106: ATTRIBUTE_NAME);
107:
108: assertEquals(qname, ATTR_VAL_QNAME);
109: }
110:
111: /**
112: * This method is used to test the areDocumentsEqual method
113: * @throws Exception if the test could not be executed
114: */
115: public void testIsElementEqual() throws Exception {
116: String srcroot = System.getProperty("junit.srcroot");
117: String manage = "/runtime/manage/bld/test-classes";
118: File desc1 = new File(srcroot + manage,
119: "testdata/ComponentDescriptor1.xml");
120: File desc2 = new File(srcroot + manage,
121: "testdata/ComponentDescriptor2.xml");
122: File desc3 = new File(srcroot + manage,
123: "testdata/ComponentDescriptor3.xml");
124: File desc4 = new File(srcroot + manage,
125: "testdata/ComponentDescriptor4.xml");
126:
127: //descriptor1 and descriptor2 differ in many things but not in component name
128: assertTrue(mUtil.areElementsEqual(desc1, desc2,
129: "/jbi:jbi/jbi:component/jbi:identification/jbi:name"));
130:
131: //descriptor1 and descriptor3 have different component names
132: assertFalse(mUtil.areElementsEqual(desc1, desc3,
133: "/jbi:jbi/jbi:component/jbi:identification/jbi:name"));
134:
135: //descriptor1 and descriptor4 are the same but with different namespace prefix
136: assertTrue(mUtil.areElementsEqual(desc1, desc4,
137: "/jbi:jbi/jbi:component/jbi:identification/jbi:name"));
138:
139: }
140:
141: /**
142: * Test ElementToString operation
143: */
144: public void testElementToString() throws Exception {
145: Element element = (Element) mDoc.getElementsByTagName(
146: ROOT_NODE_NAME).item(0);
147: String elementStr = mUtil.elementToString(element);
148:
149: assertTrue(elementStr.indexOf(ELEMENT_NAME) != -1);
150: }
151:
152: }
|