On 10/12/2010 02:03 PM, tmortagne (SVN) wrote:
> Author: tmortagne
> Date: 2010-10-12 14:03:53 +0200 (Tue, 12 Oct 2010)
> New Revision: 31733
>
> Added:
>     
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-toc/src/test/resources/macrotoc11.test
> Modified:
>     
> platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/java/org/xwiki/rendering/macro/parameter/ParameterValueTooHighException.java
>     
> platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/java/org/xwiki/rendering/macro/parameter/ParameterValueTooLowException.java
>     
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-toc/pom.xml
>     
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-toc/src/main/java/org/xwiki/rendering/macro/toc/TocMacroParameters.java
>     
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-toc/src/test/java/org/xwiki/rendering/RenderingTests.java
> Log:
> XWIKI-5571: Toc macro parameters bean should use standard Java bean validator
> Also deprecated two exceptions that are useless since xwiki-properties is 
> executing Java bean validation
>
> Modified: 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/java/org/xwiki/rendering/macro/parameter/ParameterValueTooHighException.java
> ===================================================================
> --- 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/java/org/xwiki/rendering/macro/parameter/ParameterValueTooHighException.java
>      2010-10-12 11:18:57 UTC (rev 31732)
> +++ 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/java/org/xwiki/rendering/macro/parameter/ParameterValueTooHighException.java
>      2010-10-12 12:03:53 UTC (rev 31733)
> @@ -23,7 +23,9 @@
>    * Exception used when the macro parameter is two high.
>    *
>    * @version $Id$
> + * @deprecated use {...@link javax.validation.constraints.Max} instead
>    */
> +...@deprecated
>   public class ParameterValueTooHighException extends MacroParameterException
>   {
>       /**
>
> Modified: 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/java/org/xwiki/rendering/macro/parameter/ParameterValueTooLowException.java
> ===================================================================
> --- 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/java/org/xwiki/rendering/macro/parameter/ParameterValueTooLowException.java
>       2010-10-12 11:18:57 UTC (rev 31732)
> +++ 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/java/org/xwiki/rendering/macro/parameter/ParameterValueTooLowException.java
>       2010-10-12 12:03:53 UTC (rev 31733)
> @@ -23,7 +23,9 @@
>    * Exception used when the macro parameter is two low.
>    *
>    * @version $Id$
> + * @deprecated use {...@link javax.validation.constraints.Min} instead
>    */
> +...@deprecated
>   public class ParameterValueTooLowException extends MacroParameterException
>   {
>       /**
>
> Modified: 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-toc/pom.xml
> ===================================================================
> --- 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-toc/pom.xml
>       2010-10-12 11:18:57 UTC (rev 31732)
> +++ 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-toc/pom.xml
>       2010-10-12 12:03:53 UTC (rev 31733)
> @@ -32,4 +32,12 @@
>     <artifactId>xwiki-core-rendering-macro-toc</artifactId>
>     <name>XWiki Platform - Core - Rendering - Macro - Toc</name>
>     <description>XWiki Platform - Core - Rendering - Macro - Toc</description>
> +<dependencies>
> +<dependency>
> +<groupId>org.hibernate</groupId>
> +<artifactId>hibernate-validator</artifactId>
> +<version>4.0.2.GA</version>
> +<scope>test</scope>
> +</dependency>
> +</dependencies>
>   </project>
>
> Modified: 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-toc/src/main/java/org/xwiki/rendering/macro/toc/TocMacroParameters.java
> ===================================================================
> --- 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-toc/src/main/java/org/xwiki/rendering/macro/toc/TocMacroParameters.java
>   2010-10-12 11:18:57 UTC (rev 31732)
> +++ 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-toc/src/main/java/org/xwiki/rendering/macro/toc/TocMacroParameters.java
>   2010-10-12 12:03:53 UTC (rev 31733)
> @@ -19,8 +19,9 @@
>    */
>   package org.xwiki.rendering.macro.toc;
>
> +import javax.validation.constraints.Min;
> +
>   import org.xwiki.properties.annotation.PropertyDescription;
> -import org.xwiki.rendering.macro.parameter.ParameterValueTooLowException;
>
>   /**
>    * Parameters for the {...@link 
> org.xwiki.rendering.internal.macro.toc.TocMacro} Macro.
> @@ -49,6 +50,7 @@
>       /**
>        * The minimum section level. For example if 2 then level 1 sections 
> will not be listed.
>        */
> +    @Min(1)
>       private int start = 1;
>
>       /**
> @@ -59,6 +61,7 @@
>       /**
>        * The maximum section level. For example if 3 then all section levels 
> from 4 will not be listed.
>        */
> +    @Min(1)
>       private int depth = 6;
>
>       /**
> @@ -74,15 +77,10 @@
>
>       /**
>        * @param start the minimum section level. For example if 2 then level 
> 1 sections will not be listed.
> -     * @throws ParameterValueTooLowException the provided value is too low, 
> it needs to be>= 1.
>        */
>       @PropertyDescription("the minimum section level. For example if 2 then 
> level 1 sections will not be listed")
> -    public void setStart(int start) throws ParameterValueTooLowException
> +    public void setStart(int start)
>       {
> -        if (start<  1) {
> -            throw new ParameterValueTooLowException(1);
> -        }
> -
>           this.start = start;
>           this.customStart = true;
>       }
> @@ -105,16 +103,11 @@
>
>       /**
>        * @param depth the maximum section level. For example if 3 then all 
> section levels from 4 will not be listed.
> -     * @throws ParameterValueTooLowException the provided value is too low, 
> it needs to be>= 1.
>        */
>       @PropertyDescription("the maximum section level. "
>           + "For example if 3 then all section levels from 4 will not be 
> listed")
> -    public void setDepth(int depth) throws ParameterValueTooLowException
> +    public void setDepth(int depth)
>       {
> -        if (depth<  1) {
> -            throw new ParameterValueTooLowException(1);
> -        }
> -
>           this.depth = depth;
>       }
>
>
> Modified: 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-toc/src/test/java/org/xwiki/rendering/RenderingTests.java
> ===================================================================
> --- 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-toc/src/test/java/org/xwiki/rendering/RenderingTests.java
>         2010-10-12 11:18:57 UTC (rev 31732)
> +++ 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-toc/src/test/java/org/xwiki/rendering/RenderingTests.java
>         2010-10-12 12:03:53 UTC (rev 31733)
> @@ -35,7 +35,7 @@
>   {
>       public static Test suite() throws Exception
>       {
> -        RenderingTestSuite suite = new RenderingTestSuite("Test Toc Macro");
> +        RenderingTestSuite suite = new RenderingTestSuite("Test Toc Macro", 
> "", "macrotoc11.test");
>           return new ComponentManagerTestSetup(suite);
>       }
>   }
>
> Added: 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-toc/src/test/resources/macrotoc11.test
> ===================================================================
> --- 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-toc/src/test/resources/macrotoc11.test
>                            (rev 0)
> +++ 
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-toc/src/test/resources/macrotoc11.test
>    2010-10-12 12:03:53 UTC (rev 31733)
> @@ -0,0 +1,81 @@
> +.runTransformations
> +.#-----------------------------------------------------
> +.input|xwiki/2.0
> +.# Verify the TOC produce error when "start" or "depth" parameters are too 
> low
> +.#-----------------------------------------------------
> +{{toc start="0"/}}
> +
> +{{toc depth="0"/}}
> +.#-----------------------------------------------------
> +.expect|event/1.0
> +.#-----------------------------------------------------
> +beginDocument
> +beginMacroMarkerStandalone [toc] [start=0]
> +beginGroup [[class]=[xwikirenderingerror]]
> +onWord [Invalid macro parameters used for the "toc" macro]
> +endGroup [[class]=[xwikirenderingerror]]
> +beginGroup [[class]=[xwikirenderingerrordescription hidden]]

This stacktrace looks really fragile, any changes in the source files 
will prompt redoing the test file.

> +onVerbatim [org.xwiki.properties.PropertyException: Failed to validate bean: 
> [must be greater than or equal to 1]
> +     at 
> org.xwiki.properties.internal.DefaultBeanManager.validateBean(DefaultBeanManager.java:178)
> +     at 
> org.xwiki.properties.internal.DefaultBeanManager.populate(DefaultBeanManager.java:113)
> +     at 
> org.xwiki.rendering.internal.transformation.MacroTransformation.transformOnce(MacroTransformation.java:158)
> +     at 
> org.xwiki.rendering.internal.transformation.MacroTransformation.transform(MacroTransformation.java:117)
> +     at 
> org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:85)
> +     at 
> org.xwiki.rendering.scaffolding.RenderingTestCase.runTestInternal(RenderingTestCase.java:126)
> +     at 
> org.xwiki.rendering.scaffolding.RenderingTestCase.runTest(RenderingTestCase.java:99)
> +     at org.jmock.core.VerifyingTestCase.runBare(VerifyingTestCase.java:39)
> +     at junit.framework.TestResult$1.protect(TestResult.java:110)
> +     at junit.framework.TestResult.runProtected(TestResult.java:128)
> +     at junit.framework.TestResult.run(TestResult.java:113)
> +     at junit.framework.TestCase.run(TestCase.java:124)
> +     at junit.framework.TestSuite.runTest(TestSuite.java:232)
> +     at junit.framework.TestSuite.run(TestSuite.java:227)
> +     at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> +     at junit.extensions.TestSetup$1.protect(TestSetup.java:23)
> +     at junit.framework.TestResult.runProtected(TestResult.java:128)
> +     at junit.extensions.TestSetup.run(TestSetup.java:27)
> +     at 
> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:79)
> +     at 
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
> +     at 
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> +     at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> +     at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> +     at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> +     at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> +] [false]
> +endGroup [[class]=[xwikirenderingerrordescription hidden]]
> +endMacroMarkerStandalone [toc] [start=0]
> +beginMacroMarkerStandalone [toc] [depth=0]
> +beginGroup [[class]=[xwikirenderingerror]]
> +onWord [Invalid macro parameters used for the "toc" macro]
> +endGroup [[class]=[xwikirenderingerror]]
> +beginGroup [[class]=[xwikirenderingerrordescription hidden]]
> +onVerbatim [org.xwiki.properties.PropertyException: Failed to validate bean: 
> [must be greater than or equal to 1]
> +     at 
> org.xwiki.properties.internal.DefaultBeanManager.validateBean(DefaultBeanManager.java:178)
> +     at 
> org.xwiki.properties.internal.DefaultBeanManager.populate(DefaultBeanManager.java:113)
> +     at 
> org.xwiki.rendering.internal.transformation.MacroTransformation.transformOnce(MacroTransformation.java:158)
> +     at 
> org.xwiki.rendering.internal.transformation.MacroTransformation.transform(MacroTransformation.java:117)
> +     at 
> org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:85)
> +     at 
> org.xwiki.rendering.scaffolding.RenderingTestCase.runTestInternal(RenderingTestCase.java:126)
> +     at 
> org.xwiki.rendering.scaffolding.RenderingTestCase.runTest(RenderingTestCase.java:99)
> +     at org.jmock.core.VerifyingTestCase.runBare(VerifyingTestCase.java:39)
> +     at junit.framework.TestResult$1.protect(TestResult.java:110)
> +     at junit.framework.TestResult.runProtected(TestResult.java:128)
> +     at junit.framework.TestResult.run(TestResult.java:113)
> +     at junit.framework.TestCase.run(TestCase.java:124)
> +     at junit.framework.TestSuite.runTest(TestSuite.java:232)
> +     at junit.framework.TestSuite.run(TestSuite.java:227)
> +     at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> +     at junit.extensions.TestSetup$1.protect(TestSetup.java:23)
> +     at junit.framework.TestResult.runProtected(TestResult.java:128)
> +     at junit.extensions.TestSetup.run(TestSetup.java:27)
> +     at 
> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:79)
> +     at 
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
> +     at 
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> +     at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> +     at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> +     at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> +     at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> +] [false]
> +endGroup [[class]=[xwikirenderingerrordescription hidden]]
> +endMacroMarkerStandalone [toc] [depth=0]
> +endDocument
> \ No newline at end of file


-- 
Sergiu Dumitriu
http://purl.org/net/sergiu/
_______________________________________________
devs mailing list
devs@xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to