cocoon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From u..@apache.org
Subject cvs commit: cocoon-2.1/src/blocks/woody/test/org/apache/cocoon/woody/datatype DynamicSelectionListTestCase.dest.xml DynamicSelectionListTestCase.xtest DynamicSelectionListTestCase.java DynamicSelectionListTestCase.source.xml
Date Sun, 19 Oct 2003 17:20:56 GMT
ugo         2003/10/19 10:20:56

  Modified:    src/blocks/woody/test/org/apache/cocoon/woody/datatype
                        DynamicSelectionListTestCase.java
                        DynamicSelectionListTestCase.source.xml
  Added:       src/blocks/woody/test/org/apache/cocoon/woody/datatype
                        DynamicSelectionListTestCase.dest.xml
                        DynamicSelectionListTestCase.xtest
  Log:
  Fixed test case for Woody's DynamicSelectionList class.
  There's a NPE when the test is finished that I wasn't able to remove, but it shouldn't influence
the outcome of the test.
  
  Revision  Changes    Path
  1.2       +71 -18    cocoon-2.1/src/blocks/woody/test/org/apache/cocoon/woody/datatype/DynamicSelectionListTestCase.java
  
  Index: DynamicSelectionListTestCase.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/woody/test/org/apache/cocoon/woody/datatype/DynamicSelectionListTestCase.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DynamicSelectionListTestCase.java	11 Oct 2003 15:57:00 -0000	1.1
  +++ DynamicSelectionListTestCase.java	19 Oct 2003 17:20:56 -0000	1.2
  @@ -53,16 +53,22 @@
   
   import java.io.IOException;
   import java.io.InputStream;
  +import java.io.Writer;
   import java.util.Locale;
   
   import javax.xml.parsers.DocumentBuilder;
   import javax.xml.parsers.DocumentBuilderFactory;
   import javax.xml.parsers.FactoryConfigurationError;
   import javax.xml.parsers.ParserConfigurationException;
  -
  -import junit.framework.TestCase;
  -
  -import org.apache.cocoon.woody.datatype.typeimpl.IntegerType;
  +import javax.xml.transform.TransformerException;
  +import javax.xml.transform.TransformerFactory;
  +import javax.xml.transform.dom.DOMSource;
  +import javax.xml.transform.stream.StreamResult;
  +
  +import org.apache.avalon.excalibur.testcase.ExcaliburTestCase;
  +import org.apache.avalon.framework.service.ServiceManager;
  +import org.apache.avalon.framework.service.WrapperServiceManager;
  +import org.apache.cocoon.woody.Constants;
   import org.apache.cocoon.xml.dom.DOMBuilder;
   import org.apache.cocoon.xml.dom.DocumentWrapper;
   import org.apache.excalibur.source.Source;
  @@ -72,6 +78,7 @@
   import org.apache.excalibur.xml.sax.XMLizable;
   import org.custommonkey.xmlunit.Diff;
   import org.w3c.dom.Document;
  +import org.w3c.dom.Element;
   import org.xml.sax.ContentHandler;
   import org.xml.sax.SAXException;
   
  @@ -79,7 +86,11 @@
    * Test case for Woody's DynamicSelectionList datatype.
    * @version CVS $Id$
    */
  -public class DynamicSelectionListTestCase extends TestCase {
  +public class DynamicSelectionListTestCase extends ExcaliburTestCase {
  +
  +    protected ServiceManager serviceManager;
  +    protected DatatypeManager datatypeManager;
  +    protected DocumentBuilder parser;
   
       /**
        * Construct a new test case.
  @@ -88,6 +99,28 @@
       public DynamicSelectionListTestCase(String name) {
           super(name);
       }
  +
  +    /* (non-Javadoc)
  +     * @see junit.framework.TestCase#setUp()
  +     */
  +    protected void setUp() throws Exception {
  +        super.setUp();
  +        serviceManager = new WrapperServiceManager(manager); 
  +        datatypeManager = (DatatypeManager) serviceManager.lookup(DatatypeManager.ROLE);
  +        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  +        factory.setNamespaceAware(true);
  +        parser = factory.newDocumentBuilder();
  +    }
  +    
  +    /* (non-Javadoc)
  +     * @see junit.framework.TestCase#tearDown()
  +     */
  +    protected void tearDown() throws Exception {
  +        if (datatypeManager != null) {
  +            serviceManager.release(datatypeManager);
  +        }
  +        super.tearDown();
  +    }
       
       /**
        * Test the generateSaxFragment method.
  @@ -95,14 +128,19 @@
        * @throws ParserConfigurationException
        */
       public void testGenerateSaxFragment() throws Exception {
  -        DynamicSelectionList list = 
  -            new DynamicSelectionList(new IntegerType(), null, null);
           DOMBuilder dest = new DOMBuilder();
           XMLizableSource source =
               new XMLizableSource("resource://org/apache/cocoon/woody/datatype/DynamicSelectionListTestCase.source.xml");
  +        Element datatypeElement = (Element) source.getDocument().getElementsByTagNameNS(Constants.WD_NS,
"convertor").item(0);
  +        Datatype datatype = datatypeManager.createDatatype(datatypeElement, false);
  +        DynamicSelectionList list = 
  +            new DynamicSelectionList(datatype, null, serviceManager);
           list.generateSaxFragment(dest, Locale.ENGLISH, source);
  -        assertEqual("Test if input is equal to output",
  -            source.getDocument(), dest.getDocument());
  +        ResourceSource expectedSource =
  +            new ResourceSource("resource://org/apache/cocoon/woody/datatype/DynamicSelectionListTestCase.dest.xml");
  +        Document expected = parser.parse(expectedSource.getInputStream());
  +        assertEqual("Test if output is what is expected",
  +                expected, dest.getDocument());
       }
   
       /**
  @@ -113,13 +151,33 @@
        */
       private void assertEqual(String message, Document expected, Document actual) {
           expected.getDocumentElement().normalize();
  -        // DIRTY HACK WARNING: we remove the "xmlns:wd" attribute reported
  +        actual.getDocumentElement().normalize();
  +        // DIRTY HACK WARNING: we add the "xmlns:wi" attribute reported
           // by DOM, as expected, but not generated by the method under test,
           // otherwise the comparison would fail. 
  -        expected.getDocumentElement().removeAttribute("xmlns:wd");
  +        actual.getDocumentElement().setAttribute(Constants.WI_PREFIX,
  +                Constants.WI_NS);
           Diff diff =  new Diff(expected, actual);
           assertTrue(message + ", " + diff.toString(), diff.similar());
       }
  +
  +    /**
  +     * Print a document to a writer for debugging purposes.
  +     * @param document The document to print.
  +     * @param out The writer to write to.
  +     */
  +    public final void print(Document document, Writer out) {
  +        TransformerFactory factory = TransformerFactory.newInstance();
  +        try
  +        {
  +          javax.xml.transform.Transformer serializer = factory.newTransformer();
  +          serializer.transform(new DOMSource(document), new StreamResult(out));
  +        } 
  +        catch (TransformerException te)
  +        {
  +          te.printStackTrace();
  +        }
  +    }
       
       /**
        * A class that implements both the 
  @@ -128,8 +186,6 @@
        * {@link org.apache.cocoon.xml.domDocumentWrapper} and to a 
        * {@link org.apache.excalibur.source.impl.ResourceSource},
        * respectively.
  -     * 
  -     * @version CVS $Id$
        */
       class XMLizableSource implements XMLizable, Source {
   
  @@ -147,10 +203,7 @@
            */
           public XMLizableSource(String uri) throws SAXException, IOException, ParserConfigurationException,
FactoryConfigurationError {
               source = new ResourceSource(uri);
  -            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  -            factory.setNamespaceAware(true);
  -            DocumentBuilder builder = factory.newDocumentBuilder();
  -            document = builder.parse(source.getInputStream());
  +            document = parser.parse(source.getInputStream());
               wrapper = new DocumentWrapper(document);
           }
           
  
  
  
  1.2       +4 -4      cocoon-2.1/src/blocks/woody/test/org/apache/cocoon/woody/datatype/DynamicSelectionListTestCase.source.xml
  
  Index: DynamicSelectionListTestCase.source.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/woody/test/org/apache/cocoon/woody/datatype/DynamicSelectionListTestCase.source.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DynamicSelectionListTestCase.source.xml	11 Oct 2003 15:57:00 -0000	1.1
  +++ DynamicSelectionListTestCase.source.xml	19 Oct 2003 17:20:56 -0000	1.2
  @@ -5,12 +5,12 @@
       |   $Id$
       +-->
   
  -<wd:selection-list xmlns:wd="http://cocoon.apache.org/woody/definition/1.0">
  -  <wd:convertor type="formatting">
  +<wd:selection-list xmlns:wd="http://apache.org/cocoon/woody/definition/1.0">
  +  <wd:convertor type="formatting" base="date">
       <wd:patterns>
         <wd:pattern>yyyy-MM-dd</wd:pattern>
       </wd:patterns>
     </wd:convertor>
     <wd:item value="2003-10-11"/>
     <wd:item value="1963-02-04"><wd:label>My birthdate</wd:label></wd:item>
  -</wd:selection-list>
  \ No newline at end of file
  +</wd:selection-list>
  
  
  
  1.1                  cocoon-2.1/src/blocks/woody/test/org/apache/cocoon/woody/datatype/DynamicSelectionListTestCase.dest.xml
  
  Index: DynamicSelectionListTestCase.dest.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <wi:selection-list xmlns:wi="http://apache.org/cocoon/woody/instance/1.0">
    
    <wi:item value="10/11/03"><wi:label>10/11/03</wi:label></wi:item>
    <wi:item value="2/4/63"><wi:label>My birthdate</wi:label></wi:item>
  </wi:selection-list>
  
  
  1.1                  cocoon-2.1/src/blocks/woody/test/org/apache/cocoon/woody/datatype/DynamicSelectionListTestCase.xtest
  
  Index: DynamicSelectionListTestCase.xtest
  ===================================================================
  <?xml version="1.0" ?>
  <testcase>
   <annotation>
    Test Cases: Woody Dynamic Selection List
   </annotation>
  
   <logkit>
    <factories>
     <factory type="stream" class="org.apache.avalon.excalibur.logger.factory.StreamTargetFactory"/>
    </factories>
    <targets>
     <stream id="root">
      <stream>System.out</stream>
      <format type="extended">
       %7.7{priority} %5.5{time}   [%9.9{category}] (%{context}): %{message}\n%{throwable}
      </format>
     </stream>
    </targets>
    <categories>
     <category name="test" log-level="ERROR">
      <log-target id-ref="root"/>
     </category>
    </categories>
   </logkit>
  
   <context/>
  
   <roles>
  
    <role name="org.apache.cocoon.woody.datatype.DatatypeManager"
      shorthand="woody-datatype"
      default-class="org.apache.cocoon.woody.datatype.DefaultDatatypeManager"/>
  
    <role name="org.apache.cocoon.woody.expression.ExpressionManager"
      shorthand="woody-expression"
      default-class="org.apache.cocoon.woody.expression.DefaultExpressionManager"/>
  
   </roles>
  
   <components>
    <woody-datatype logger="woody">
      <datatypes>
        <datatype name="string" src="org.apache.cocoon.woody.datatype.typeimpl.StringTypeBuilder">
          <convertors default="dummy" plain="dummy">
            <convertor name="dummy" src="org.apache.cocoon.woody.datatype.convertor.DummyStringConvertorBuilder"/>
          </convertors>
        </datatype>
        <datatype name="long" src="org.apache.cocoon.woody.datatype.typeimpl.LongTypeBuilder">
          <convertors default="formatting" plain="plain">
            <convertor name="plain" src="org.apache.cocoon.woody.datatype.convertor.PlainLongConvertorBuilder"/>
            <convertor name="formatting" src="org.apache.cocoon.woody.datatype.convertor.FormattingLongConvertorBuilder"/>
          </convertors>
        </datatype>
        <datatype name="decimal" src="org.apache.cocoon.woody.datatype.typeimpl.DecimalTypeBuilder">
          <convertors default="formatting" plain="plain">
            <convertor name="plain" src="org.apache.cocoon.woody.datatype.convertor.PlainDecimalConvertorBuilder"/>
            <convertor name="formatting" src="org.apache.cocoon.woody.datatype.convertor.FormattingDecimalConvertorBuilder"/>
          </convertors>
        </datatype>
        <datatype name="date" src="org.apache.cocoon.woody.datatype.typeimpl.DateTypeBuilder">
          <convertors default="formatting" plain="millis">
            <convertor name="formatting" src="org.apache.cocoon.woody.datatype.convertor.FormattingDateConvertorBuilder"/>
            <convertor name="millis" src="org.apache.cocoon.woody.datatype.convertor.MillisDateConvertorBuilder"/>
          </convertors>
        </datatype>
        <datatype name="boolean" src="org.apache.cocoon.woody.datatype.typeimpl.BooleanTypeBuilder">
          <convertors default="plain" plain="plain">
            <convertor name="plain" src="org.apache.cocoon.woody.datatype.convertor.PlainBooleanConvertorBuilder"/>
          </convertors>
        </datatype>  
        <datatype name="integer" src="org.apache.cocoon.woody.datatype.typeimpl.IntegerTypeBuilder">
          <convertors default="formatting" plain="plain">
            <convertor name="plain" src="org.apache.cocoon.woody.datatype.convertor.PlainIntegerConvertorBuilder"/>
            <convertor name="formatting" src="org.apache.cocoon.woody.datatype.convertor.FormattingIntegerConvertorBuilder"/>
          </convertors>
        </datatype>  
      </datatypes>
      <validation-rules>
        <validation-rule name="length" src="org.apache.cocoon.woody.datatype.validationruleimpl.LengthValidationRuleBuilder"/>
        <validation-rule name="email" src="org.apache.cocoon.woody.datatype.validationruleimpl.EmailValidationRuleBuilder"/>
        <validation-rule name="value-count" src="org.apache.cocoon.woody.datatype.validationruleimpl.ValueCountValidationRuleBuilder"/>
        <validation-rule name="range" src="org.apache.cocoon.woody.datatype.validationruleimpl.RangeValidationRuleBuilder"/>
        <validation-rule name="assert" src="org.apache.cocoon.woody.datatype.validationruleimpl.AssertValidationRuleBuilder"/>
        <validation-rule name="mod10" src="org.apache.cocoon.woody.datatype.validationruleimpl.Mod10ValidationRuleBuilder"/>
        <validation-rule name="regexp" src="org.apache.cocoon.woody.datatype.validationruleimpl.RegExpValidationRuleBuilder"/>
      </validation-rules>
    </woody-datatype>
  
    <woody-expression logger="woody.expression"/>
  
   </components>
  
  </testcase>
  
  
  

Mime
View raw message