vhardy      01/10/19 02:22:18

  Modified:    test-sources/org/apache/batik/test AbstractTest.java
                        TestReport.java
               test-sources/org/apache/batik/test/xml
                        XMLTestReportProcessor.java XTRConstants.java
               test-resources/org/apache/batik/test samplesRendering.xml
               test-resources/org/apache/batik/test/svg HTMLReport.xsl
               test-resources/org/apache/batik/test/svg/resources/style
                        style.css
  Log:
  - Fix to the date output in reports.
  - Added documentation to AbstractTest to explain how to easily write
    new tests.
  - Added support for assertions in AbstractTest for a different style
    of test writing.
  
  Revision  Changes    Path
  1.7       +129 -13   xml-batik/test-sources/org/apache/batik/test/AbstractTest.java
  
  Index: AbstractTest.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/test-sources/org/apache/batik/test/AbstractTest.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AbstractTest.java 2001/10/12 12:34:35     1.6
  +++ AbstractTest.java 2001/10/19 09:22:17     1.7
  @@ -12,18 +12,72 @@
   import java.io.PrintWriter;
   
   /**
  - * Provides a default implementation for the <tt>getName</tt>
  - * method.
  + * Base class containing convenience methods for writing tests. <br />
  + * There are at least three approaches to write new tests derived from
  + * <tt>AbstractTest</tt>:<br /><ul>
  + * <li>You can simply override the <tt>runImplBase</tt> method and 
  + * return true or false depending on whether or not the test fails.</li>
  + * <li>You can choose to report more complex test failure conditions 
  + * by overriding the <tt>runImpl</tt> method which returns a <tt>TestReport</tt>.
  + * In that case, you can use the convenience methods such as <tt>reportFailure</tt>
  + * <tt>reportSuccess</tt> or <tt>reportException</tt> to help build a 
<tt>TestReport</tt>,
  + * and use the <tt>TestReport</tt>'s <tt>addDescriptionEntry</tt> to populate
  + * the report with relevant error description.</li>
  + * <li>You can choose to use the various assertion methods such as 
<tt>assertNull</tt>,
  + * <tt>assertEquals</tt> or <tt>assertTrue</tt>. These methods throw exceptions 
which
  + * will be turned in <tt>TestReports</tt> by the <tt>AbstractTest</tt>.</li>
  + * </ul>
  + * 
  + * Here are some examples:
  + * <code>
  + * public class MyTestA extends AbstractTest {
  + * public boolean runImplBase() {
  + *    if(someConditionFails){
  + *       return false;
  + *    }
  + *    return true;
  + * }
  + * }
  + * </code>
  + * 
  + * <code>
  + * public class MyTestB extends AbstractTest {
  + * public TestReport runImpl() {
  + *    if(someConditionFails){
  + *       TestReport report = reportError(MY_ERROR_CODE);
  + *       report.addDescriptionEntry(ENTRY_KEY_MY_ERROR_DESCRIPTION_KEY,
  + *                                  myErrorDescriptionValue);
  + *       return report;
  + *    }
  + * 
  + *    return reportSuccess;
  + * }
  + * </code>
    *
  + * <code>
  + * public class MyTestC extends AbstractTest {
  + * public TestReport runImpl() throws Exception {
  + *      assertTrue(somCondition);
  + *      assertEquals(valueA, valueB);
  + *      assertNull(shouldBeNullRef);
  + *
  + *      if(someErrorCondition){
  + *         error(MY_ERROR_CODE);
  + *      }
  + *
  + *      return reportSuccess();
  + * }
  + * </code>
  + *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Vincent Hardy</a>
  - * @version $Id: AbstractTest.java,v 1.6 2001/10/12 12:34:35 vhardy Exp $
  + * @version $Id: AbstractTest.java,v 1.7 2001/10/19 09:22:17 vhardy Exp $
    */
   public abstract class AbstractTest implements Test {
       /**
        * This test's id.
        */
       protected String id = "";
  -
  +    
       /**
        * This test's parent, in case this test is part of 
        * a suite.
  @@ -31,6 +85,11 @@
       protected TestSuite parent;
   
       /**
  +     * This test's name. If null, the class' name is returned.
  +     */
  +    protected String name;
  +    
  +    /**
        * TestReport
        */
       private DefaultTestReport report 
  @@ -40,15 +99,26 @@
                       setPassed(false);
                   }
               };
  -
  +    
       /**
        * Returns this <tt>Test</tt>'s name. 
        */
       public String getName(){
  -        return getClass().getName();
  +        if(name == null){
  +            return getClass().getName();
  +        }
  +
  +        return name;
       }
   
       /**
  +     * Sets this test's name
  +     */
  +    public void setName(String name){
  +        this.name = name;
  +    }
  +
  +    /**
        * Return this <tt>Test</tt>'s id.
        */
       public String getId(){
  @@ -83,10 +153,10 @@
       public void setParent(TestSuite parent){
           this.parent = parent;
       }
  -
  +    
       /**
        * This default implementation of the run method
  -     * catches any Exception or Error throw from the 
  +     * catches any Exception thrown from the 
        * runImpl method and creates a <tt>TestReport</tt>
        * indicating an internal <tt>Test</tt> failure
        * when that happens. Otherwise, this method
  @@ -96,7 +166,9 @@
       public TestReport run(){
           try{
               return runImpl();
  -        }catch(Exception e){
  +        } catch(TestErrorConditionException e){
  +            return e.getTestReport(this);
  +        } catch(Exception e){
               try {
                   
                   StringWriter trace = new StringWriter();
  @@ -141,7 +213,7 @@
        */
       public TestReport runImpl() throws Exception {
           boolean passed = runImplBasic();
  -
  +        
           // No exception was thrown if we get to this 
           // portion of rumImpl. The test result is 
           // given by passed.
  @@ -152,7 +224,7 @@
           report.setPassed(passed);
           return report;
       }
  -
  +    
       /**
        * In the simplest test implementation, developers can 
        * simply implement the following method.
  @@ -160,7 +232,7 @@
       public boolean runImplBasic() throws Exception {
           return true;
       }
  -
  +    
       /**
        * Convenience method.
        */
  @@ -169,7 +241,7 @@
           report.setPassed(true);
           return report;
       }
  -
  +    
       /**
        * Convenience method to report a simple error code.
        */
  @@ -178,6 +250,50 @@
           report.setErrorCode(errorCode);
           report.setPassed(false);
           return report;
  +    }
  +    
  +    /**
  +     * Convenience method to report an error condition.
  +     */
  +    public void error(String errorCode) throws TestErrorConditionException {
  +        throw new TestErrorConditionException(errorCode);
  +    }
  +
  +    /**
  +     * Convenience method to check that a reference is null
  +     */
  +    public void assertNull(Object ref) throws AssertNullException {
  +        if(ref != null){
  +            throw new AssertNullException();
  +        }
  +    }
  +
  +    /**
  +     * Convenience method to check that a given boolean is true.
  +     */
  +    public void assertTrue(boolean b) throws AssertTrueException {
  +        if (!b){
  +            throw new AssertTrueException();
  +        }
  +    }
  +        
  +    /**
  +     * Convenience method to check for a specific condition.
  +     * Returns true if both objects are null or if ref is not
  +     * null and ref.equals(cmp) is true.
  +     */
  +    public void assertEquals(Object ref, Object cmp) throws AssertEqualsException {
  +        if(ref == null && cmp != null){
  +            throw new AssertEqualsException(ref, cmp);
  +        }
  +
  +        if(ref != null && !ref.equals(cmp)){
  +            throw new AssertEqualsException(ref, cmp);
  +        }
  +    }
  +
  +    public void assertEquals(int ref, int cmp) throws AssertEqualsException {
  +        assertEquals(new Integer(ref), new Integer(cmp));
       }
   
       /**
  
  
  
  1.4       +16 -2     xml-batik/test-sources/org/apache/batik/test/TestReport.java
  
  Index: TestReport.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/test-sources/org/apache/batik/test/TestReport.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TestReport.java   2001/10/08 14:15:04     1.3
  +++ TestReport.java   2001/10/19 09:22:17     1.4
  @@ -13,7 +13,7 @@
    * by a <tt>Test</tt> case.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Vincent Hardy</a>
  - * @version $Id: TestReport.java,v 1.3 2001/10/08 14:15:04 vhardy Exp $
  + * @version $Id: TestReport.java,v 1.4 2001/10/19 09:22:17 vhardy Exp $
    */
   public interface TestReport {
       /**
  @@ -31,9 +31,15 @@
        * that the test failed.
        */
       public static final String ERROR_TEST_FAILED 
  -        = "DefaultTestSuiteReport.error.test.failed";
  +        = "TestReport.error.test.failed";
   
       /**
  +     * Generic error code to report test assertion failures.
  +     */
  +    public static final String ERROR_ASSERTION_FAILED
  +        = "TestReport.error.assertion.failed";
  +
  +    /**
        * Entry describing the class of the internal exception 
        * that caused the test's internal failure
        */
  @@ -95,6 +101,14 @@
       public static final String
           ENTRY_KEY_REPORTED_TEST_FAILURE_EXCEPTION_STACK_TRACE
           = "TestReport.entry.key.reported.test.failure.exception.stack.trace";
  +
  +    /**
  +     * Entry with the stack trace for a specific test error
  +     * condition.
  +     */
  +    public static final String
  +        ENTRY_KEY_ERROR_CONDITION_STACK_TRACE
  +        = "TestReport.entry.key.error.condition.stack.trace";
   
       /**
        * Inner class for describing an information element in a 
  
  
  
  1.14      +10 -1     
xml-batik/test-sources/org/apache/batik/test/xml/XMLTestReportProcessor.java
  
  Index: XMLTestReportProcessor.java
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/test-sources/org/apache/batik/test/xml/XMLTestReportProcessor.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- XMLTestReportProcessor.java       2001/10/11 09:42:42     1.13
  +++ XMLTestReportProcessor.java       2001/10/19 09:22:17     1.14
  @@ -51,7 +51,7 @@
    * report consumer of the XML file it created.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Vincent Hardy</a>
  - * @version $Id: XMLTestReportProcessor.java,v 1.13 2001/10/11 09:42:42 vhardy Exp $
  + * @version $Id: XMLTestReportProcessor.java,v 1.14 2001/10/19 09:22:17 vhardy Exp $
    */
   public class XMLTestReportProcessor 
       implements TestReportProcessor,
  @@ -115,6 +115,11 @@
       protected XMLReportConsumer consumer;
   
       /**
  +     * String encoding the date the report was generated.
  +     */
  +    protected String reportDate;
  +
  +    /**
        * Directory into which this processor puts all files and resources.
        */
       protected File reportDirectory;
  @@ -179,6 +184,9 @@
   
               Element root = document.getDocumentElement();
               
  +            root.setAttributeNS(null, XTR_DATE_ATTRIBUTE,
  +                                reportDate);
  +
               processReport(report, root, document);
               
               File xmlReport = serializeReport(root);
  @@ -250,6 +258,7 @@
               + makeTwoDigits(c.get(c.MINUTE)) + "m"
               + makeTwoDigits(c.get(c.SECOND)) + "s";
           
  +        reportDate = dirName;
           reportDirectory = new File(baseReportDir, dirName);
           checkDirectory(reportDirectory, ERROR_REPORT_DIRECTORY_UNUSABLE);
   
  
  
  
  1.4       +2 -1      
xml-batik/test-sources/org/apache/batik/test/xml/XTRConstants.java
  
  Index: XTRConstants.java
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/test-sources/org/apache/batik/test/xml/XTRConstants.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XTRConstants.java 2001/10/04 08:25:37     1.3
  +++ XTRConstants.java 2001/10/19 09:22:17     1.4
  @@ -12,7 +12,7 @@
    * Contains constants for the XML Test Report (XTR) syntax.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Vincent Hardy</a>
  - * @version $Id: XTRConstants.java,v 1.3 2001/10/04 08:25:37 vhardy Exp $
  + * @version $Id: XTRConstants.java,v 1.4 2001/10/19 09:22:17 vhardy Exp $
    */
   public interface XTRConstants extends XMLReflectConstants{
       String XTR_NAMESPACE_URI 
  @@ -32,6 +32,7 @@
       /////////////////////////////////////////////////////////////////////////
       // XTR attributes
       /////////////////////////////////////////////////////////////////////////
  +    String XTR_DATE_ATTRIBUTE = "date";
       String XTR_KEY_ATTRIBUTE = "key";
       String XTR_ERROR_CODE_ATTRIBUTE = "errorCode";
       String XTR_ID_ATTRIBUTE = "id";
  
  
  
  1.42      +3 -3      
xml-batik/test-resources/org/apache/batik/test/samplesRendering.xml
  
  Index: samplesRendering.xml
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/test-resources/org/apache/batik/test/samplesRendering.xml,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- samplesRendering.xml      2001/10/19 08:45:18     1.41
  +++ samplesRendering.xml      2001/10/19 09:22:17     1.42
  @@ -8,7 +8,7 @@
   
   <!-- ========================================================================= -->
   <!-- @author [EMAIL PROTECTED]                                         -->
  -<!-- @version $Id: samplesRendering.xml,v 1.41 2001/10/19 08:45:18 tkormann Exp $ 
-->
  +<!-- @version $Id: samplesRendering.xml,v 1.42 2001/10/19 09:22:17 vhardy Exp $ -->
   <!-- ========================================================================= -->
   <testSuite id="samplesRendering" name="samples and samples/test Rendering" 
class="org.apache.batik.test.svg.SamplesRenderingTest">
   
  @@ -103,8 +103,8 @@
           <test id="samples/tests/spec/linking/linkingViewBox.svg" />   
   
           <testGroup id="reference" 
class="org.apache.batik.test.svg.SVGReferenceRenderingAccuracyTest">
  -            <test id="samples/anne.svg#svgView(viewBox(0,0,100,200))-Viewbox1" />
  -            <test id="samples/anne.svg#svgView(viewBox(100,50,100,200))-Viewbox2" />
  +            <test id="samples/anne.svg#svgView(viewBox(0,0,100,200))-ViewBox1" />
  +            <test id="samples/anne.svg#svgView(viewBox(100,50,100,200))-ViewBox2" />
               <test 
id="samples/anne.svg#svgView(transform(translate(-100,-50)))-Transform1" />
               <test 
id="samples/anne.svg#svgView(transform(translate(225,250)rotate(45)translate(-225,-250)))-Transform2"
 />
               <test 
id="samples/anne.svg#svgView(transform(rotate(45,225,250)))-Transform2" />
  
  
  
  1.12      +2 -2      
xml-batik/test-resources/org/apache/batik/test/svg/HTMLReport.xsl
  
  Index: HTMLReport.xsl
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/test-resources/org/apache/batik/test/svg/HTMLReport.xsl,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- HTMLReport.xsl    2001/10/19 08:20:20     1.11
  +++ HTMLReport.xsl    2001/10/19 09:22:17     1.12
  @@ -9,7 +9,7 @@
   
   <!-- ========================================================================= -->
   <!-- @author [EMAIL PROTECTED]                                         -->
  -<!-- @version $Id: HTMLReport.xsl,v 1.11 2001/10/19 08:20:20 vhardy Exp $ -->
  +<!-- @version $Id: HTMLReport.xsl,v 1.12 2001/10/19 09:22:17 vhardy Exp $ -->
   <!-- ========================================================================= -->
   <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                                xmlns:xlink="http://www.w3.org/2000/xlink/namespace/"; >
  @@ -36,7 +36,7 @@
   
                   <!-- Report Date information -->
                   <table class="reportDate" width="600" border="0" cellpadding="0" 
cellspacing="0" hspace="0" vspace="0" bgcolor="white">
  -                    <tr><td class="reportDate"><xsl:value-of select="@date" 
/></td></tr></table>
  +                    <tr><td class="reportDate"><xsl:value-of 
select="/testSuiteReport[position()=1]/@date" /></td></tr></table>
   
                   <!-- Report Title containing the ratio of count(success) / 
count(tests) -->
                   <h1>Regard Test Report -- 
  
  
  
  1.3       +9 -7      
xml-batik/test-resources/org/apache/batik/test/svg/resources/style/style.css
  
  Index: style.css
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/test-resources/org/apache/batik/test/svg/resources/style/style.css,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- style.css 2001/10/19 08:20:21     1.2
  +++ style.css 2001/10/19 09:22:17     1.3
  @@ -23,15 +23,17 @@
       font-family: sans-serif;
   }
   
  -p,ol,ul,li { font-family: serif;}
  +ol li { font-size: 10px; }
  +
  +p,ol,ul,li { font-family: sans-serif;}
   h1, h2, h3, h4, h5, h6 { text-align: left }
   h1, h2, h3 { color: #444; background: white; }
  -h1 { font: 270% serif; }
  -h2 { font: 240% serif }
  -h3 { font: 220% serif }
  -h4 { font: bold 100% serif }
  -h5 { font: italic 100% serif }
  -h6 { font: small-caps 100% serif }
  +h1 { font: 27px serif; }
  +h2 { font: 18px serif }
  +h3 { font: 16px serif }
  +h4 { font: bold 12px serif }
  +h5 { font: italic 12px serif }
  +h6 { font: small-caps 12px serif }
   h7 { font-family: serif; }
   
   .titlefailed { font-family: Arial; font-weight: bolder; font-size: 12;}
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to