avalon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vgritse...@apache.org
Subject cvs commit: avalon-excalibur/xmlutil/src/test/org/apache/excalibur/xml/xpath/test XPathTestCase.java XPathTestCase.xtest
Date Fri, 01 Aug 2003 01:04:50 GMT
vgritsenko    2003/07/31 18:04:50

  Modified:    xmlutil/src/test/org/apache/excalibur/xml/xpath/test
                        XPathTestCase.java XPathTestCase.xtest
  Log:
  * Add more xpath tests
  * Package access to test documents
  * zap tabs
  
  Revision  Changes    Path
  1.2       +52 -10    avalon-excalibur/xmlutil/src/test/org/apache/excalibur/xml/xpath/test/XPathTestCase.java
  
  Index: XPathTestCase.java
  ===================================================================
  RCS file: /home/cvs/avalon-excalibur/xmlutil/src/test/org/apache/excalibur/xml/xpath/test/XPathTestCase.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XPathTestCase.java	20 May 2003 10:43:00 -0000	1.1
  +++ XPathTestCase.java	1 Aug 2003 01:04:50 -0000	1.2
  @@ -61,21 +61,23 @@
   import org.apache.excalibur.xml.xpath.PrefixResolver;
   import org.xml.sax.InputSource;
   import org.w3c.dom.Document;
  +import org.w3c.dom.Node;
  +import org.w3c.dom.NodeList;
   
   import java.io.StringReader;
   
   public class XPathTestCase extends ExcaliburTestCase
   {
       /** A small test document. */
  -    private static final String CONTENT1 =
  +    static final String CONTENT1 =
           "<?xml version=\"1.0\"?>" +
           "<test:root xmlns:test=\"http://localhost/test\">" +
               "<test:element1/>" +
               "<test:element2/>" +
           "</test:root>";
   
  -    /** Second testdocument, has a different namespace than {@link #CONTENT1}. */
  -    private static final String CONTENT2 =
  +    /** Second test document, has a different namespace than {@link #CONTENT1}. */
  +    static final String CONTENT2 =
           "<?xml version=\"1.0\"?>" +
           "<test:root xmlns:test=\"http://localhost/test2\">" +
               "<test:element1/>" +
  @@ -96,14 +98,34 @@
               Document document1 = parser.parseDocument(new InputSource(new StringReader(CONTENT1)));
               Document document2 = parser.parseDocument(new InputSource(new StringReader(CONTENT2)));
   
  -            // test with a namespace prefix configured in the component configuration
  -            String testExpr = "count(/test:root/*)";
  -            Number number = processor.evaluateAsNumber(document1, testExpr);
  +            // 1. Test single node expression
  +            String expr = "/test:root/test:element1";
  +            Node node = processor.selectSingleNode(document1, expr);
  +            assertNotNull("Must select <test:element1/> node, but got null", node);
  +            assertEquals("Must select <test:element1/> node", Node.ELEMENT_NODE,
node.getNodeType());
  +            assertEquals("Must select <test:element1/> node", "element1", node.getLocalName());
  +
  +            // 2. Test single node expression with no expected result
  +            expr = "/test:root/test:element3";
  +            node = processor.selectSingleNode(document1, expr);
  +            assertNull("Must be null", node);
  +
  +            // 3. Test multiple node expression
  +            expr = "/test:root/test:*";
  +            NodeList list = processor.selectNodeList(document1, expr);
  +            assertNotNull("Must select two nodes, but got null", list);
  +            assertEquals("Must select two nodes", 2, list.getLength());
  +            assertEquals("Must select <test:element1/> node", "element1", list.item(0).getLocalName());
  +            assertEquals("Must select <test:element2/> node", "element2", list.item(1).getLocalName());
  +
  +            // 4. Test with a namespace prefix configured in the component configuration
  +            expr = "count(/test:root/*)";
  +            Number number = processor.evaluateAsNumber(document1, expr);
               assertEquals(2, number.intValue());
   
  -            // test with a custom prefix resolver using a different document in a different
namespace,
  +            // 5. Test with a custom prefix resolver using a different document in a different
namespace,
               // to be sure the custom prefix resolver is used
  -            number = processor.evaluateAsNumber(document2, testExpr, new PrefixResolver()
{
  +            number = processor.evaluateAsNumber(document2, expr, new PrefixResolver() {
                   public String prefixToNamespace(String prefix)
                   {
                       if (prefix.equals("test"))
  @@ -113,11 +135,31 @@
               });
               assertEquals(2, number.intValue());
   
  +            // 6. Test boolean
  +            expr = "count(/test:root/*) = 2";
  +            boolean bool = processor.evaluateAsBoolean(document1, expr);
  +            assertEquals(true, bool);
  +
  +            // 7. Test expression in the root element context
  +            expr = "/test:root/test:element1";
  +            node = processor.selectSingleNode(document1.getDocumentElement(), expr);
  +            assertNotNull("Must select <test:element1/> node, but got null", node);
  +            assertEquals("Must select <test:element1/> node", Node.ELEMENT_NODE,
node.getNodeType());
  +            assertEquals("Must select <test:element1/> node", "element1", node.getLocalName());
  +
  +            // 8. Test expression in the child node context
  +            node = processor.selectSingleNode(document1.getDocumentElement().getFirstChild(),
expr);
  +            assertNotNull("Must select <test:element1/> node, but got null", node);
  +            assertEquals("Must select <test:element1/> node", Node.ELEMENT_NODE,
node.getNodeType());
  +            assertEquals("Must select <test:element1/> node", "element1", node.getLocalName());
  +
           } finally {
  -            if (parser != null)
  +            if (parser != null) {
                   manager.release((Component)parser);
  -            if (processor != null)
  +            }
  +            if (processor != null) {
                   manager.release((Component)processor);
  +            }
           }
       }
   }
  
  
  
  1.2       +9 -8      avalon-excalibur/xmlutil/src/test/org/apache/excalibur/xml/xpath/test/XPathTestCase.xtest
  
  Index: XPathTestCase.xtest
  ===================================================================
  RCS file: /home/cvs/avalon-excalibur/xmlutil/src/test/org/apache/excalibur/xml/xpath/test/XPathTestCase.xtest,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XPathTestCase.xtest	20 May 2003 10:43:00 -0000	1.1
  +++ XPathTestCase.xtest	1 Aug 2003 01:04:50 -0000	1.2
  @@ -1,15 +1,16 @@
   <?xml version="1.0"?>
  +
   <testcase>
  -	<annotation>XPathProcessor test case</annotation>
  -	<roles>
  -		<role name="org.apache.excalibur.xml.dom.DOMParser" shorthand="domparser" default-class="org.apache.excalibur.xml.impl.JaxpParser"/>
  -		<role name="org.apache.excalibur.xml.xpath.XPathProcessor" shorthand="xpathprocessor"
default-class="org.apache.excalibur.xml.xpath.XPathProcessorImpl"/>
  -	</roles>
  -	<components>
  +    <annotation>XPathProcessor test case</annotation>
  +    <roles>
  +        <role name="org.apache.excalibur.xml.dom.DOMParser" shorthand="domparser" default-class="org.apache.excalibur.xml.impl.JaxpParser"/>
  +        <role name="org.apache.excalibur.xml.xpath.XPathProcessor" shorthand="xpathprocessor"
default-class="org.apache.excalibur.xml.xpath.XPathProcessorImpl"/>
  +    </roles>
  +    <components>
           <xpathprocessor>
               <namespace-mappings>
                   <namespace prefix="test" uri="http://localhost/test"/>
               </namespace-mappings>
           </xpathprocessor>
  -	</components>
  -</testcase>
  \ No newline at end of file
  +    </components>
  +</testcase>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org


Mime
View raw message