You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tiles.apache.org by ap...@apache.org on 2010/11/20 22:17:32 UTC

svn commit: r1037330 - in /tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src: main/java/org/apache/tiles/autotag/generate/ main/java/org/apache/tiles/autotag/model/ test/java/org/apache/tiles/autotag/generate/ test/java/org/apache/tiles/autotag/...

Author: apetrelli
Date: Sat Nov 20 21:17:31 2010
New Revision: 1037330

URL: http://svn.apache.org/viewvc?rev=1037330&view=rev
Log:
TILESSB-11
Completed tests for tiles-autotag-core.

Added:
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGeneratorTest.java   (with props)
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateClassTest.java   (with props)
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateMethodTest.java   (with props)
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateParameterTest.java   (with props)
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateSuiteTest.java   (with props)
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/tool/
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/tool/StringToolTest.java   (with props)
Modified:
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGenerator.java
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGenerator.java
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuite.java
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGeneratorTest.java

Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGenerator.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGenerator.java?rev=1037330&r1=1037329&r2=1037330&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGenerator.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGenerator.java Sat Nov 20 21:17:31 2010
@@ -2,6 +2,7 @@ package org.apache.tiles.autotag.generat
 
 import java.io.File;
 import java.io.FileWriter;
+import java.io.IOException;
 import java.io.Writer;
 
 import org.apache.tiles.autotag.core.AutotagRuntimeException;
@@ -51,6 +52,9 @@ public abstract class AbstractTemplateCl
         } catch (ParseErrorException e) {
             throw new AutotagRuntimeException(
                     "The template resource is not parseable", e);
+        } catch (IOException e) {
+            throw new AutotagRuntimeException(
+                    "I/O Exception when generating file", e);
         } catch (RuntimeException e) {
             throw e;
         } catch (Exception e) {

Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGenerator.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGenerator.java?rev=1037330&r1=1037329&r2=1037330&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGenerator.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGenerator.java Sat Nov 20 21:17:31 2010
@@ -2,6 +2,7 @@ package org.apache.tiles.autotag.generat
 
 import java.io.File;
 import java.io.FileWriter;
+import java.io.IOException;
 import java.io.Writer;
 
 import org.apache.tiles.autotag.core.AutotagRuntimeException;
@@ -44,6 +45,9 @@ public abstract class AbstractTemplateSu
             throw new AutotagRuntimeException("Cannot find template resource", e);
         } catch (ParseErrorException e) {
             throw new AutotagRuntimeException("The template resource is not parseable", e);
+        } catch (IOException e) {
+            throw new AutotagRuntimeException(
+                    "I/O Exception when generating file", e);
         } catch (RuntimeException e) {
             throw e;
         } catch (Exception e) {

Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java?rev=1037330&r1=1037329&r2=1037330&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java Sat Nov 20 21:17:31 2010
@@ -58,6 +58,17 @@ public class TemplateClass {
         return params.values();
     }
 
+    public boolean hasBody() {
+        return executeMethod.hasBody();
+    }
+
+    @Override
+    public String toString() {
+        return "TemplateClass [name=" + name + ", tagName=" + tagName
+                + ", tagClassPrefix=" + tagClassPrefix + ", documentation="
+                + documentation + ", executeMethod=" + executeMethod + "]";
+    }
+
     private void fillRegularParameters(Map<String, TemplateParameter> params,
             TemplateMethod method) {
         if (method != null) {
@@ -68,15 +79,4 @@ public class TemplateClass {
             }
         }
     }
-
-    public boolean hasBody() {
-        return executeMethod.hasBody();
-    }
-
-    @Override
-    public String toString() {
-        return "TemplateClass\n[documentation=" + documentation
-                + ",\nexecuteMethod=" + executeMethod + ",\nname=" + name + "]";
-    }
-
 }

Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java?rev=1037330&r1=1037329&r2=1037330&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java Sat Nov 20 21:17:31 2010
@@ -54,8 +54,7 @@ public class TemplateMethod {
 
     @Override
     public String toString() {
-        return "TemplateMethod\n[documentation=" + documentation + ", name="
-                + name + ", parameters=\n" + parameters + "]";
+        return "TemplateMethod [name=" + name + ", documentation="
+                + documentation + ", parameters=" + parameters + "]";
     }
-
 }

Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java?rev=1037330&r1=1037329&r2=1037330&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java Sat Nov 20 21:17:31 2010
@@ -67,9 +67,9 @@ public class TemplateParameter {
 
     @Override
     public String toString() {
-        return "TemplateParameter\n[documentation=" + documentation
-                + ",\nname=" + name + ",\nexportedName=" + exportedName
-                + ", required=" + required + ", type=" + type + "]";
+        return "TemplateParameter [name=" + name + ", exportedName="
+                + exportedName + ", documentation=" + documentation + ", type="
+                + type + ", defaultValue=" + defaultValue + ", required="
+                + required + "]";
     }
-
 }

Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuite.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuite.java?rev=1037330&r1=1037329&r2=1037330&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuite.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuite.java Sat Nov 20 21:17:31 2010
@@ -54,8 +54,9 @@ public class TemplateSuite {
 
     @Override
     public String toString() {
-        return "TemplateSuite\n[documentation=" + documentation + ", name="
-                + name + ", templateClasses=\n" + templateClasses + "]";
+        return "TemplateSuite [name=" + name + ", documentation="
+                + documentation + ", customVariables=" + customVariables
+                + ", templateClasses=" + templateClasses + "]";
     }
 
     public Map<String, String> getCustomVariables() {

Modified: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGeneratorTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGeneratorTest.java?rev=1037330&r1=1037329&r2=1037330&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGeneratorTest.java (original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGeneratorTest.java Sat Nov 20 21:17:31 2010
@@ -8,8 +8,11 @@ import static org.easymock.classextensio
 
 import java.io.File;
 import java.io.FileWriter;
+import java.io.IOException;
 
 import org.apache.commons.io.FileUtils;
+import org.apache.tiles.autotag.core.AutotagRuntimeException;
+import org.apache.tiles.autotag.core.ClassParseException;
 import org.apache.tiles.autotag.model.TemplateClass;
 import org.apache.tiles.autotag.model.TemplateSuite;
 import org.apache.velocity.Template;
@@ -17,6 +20,7 @@ import org.apache.velocity.VelocityConte
 import org.apache.velocity.app.VelocityEngine;
 import org.apache.velocity.exception.ParseErrorException;
 import org.apache.velocity.exception.ResourceNotFoundException;
+import org.junit.Before;
 import org.junit.Test;
 
 /**
@@ -27,6 +31,42 @@ import org.junit.Test;
 public class AbstractTemplateClassGeneratorTest {
 
     /**
+     * The velocity engine.
+     */
+    private VelocityEngine velocityEngine;
+
+    /**
+     * The temporary directory.
+     */
+    private File directory;
+
+    /**
+     * The generator to test.
+     */
+    private AbstractTemplateClassGenerator generator;
+
+    /**
+     * Sets up the test.
+     *
+     * @throws IOException If something goes wrong.
+     */
+    @Before
+    public void setUp() throws IOException {
+        velocityEngine = createMock(VelocityEngine.class);
+        generator = createMockBuilder(AbstractTemplateClassGenerator.class).withConstructor(velocityEngine).createMock();
+        directory = File.createTempFile("autotag", null);
+    }
+
+    /**
+     * Tears down the test.
+     *
+     * @throws IOException If something goes wrong.
+     */
+    public void tearDown() throws IOException {
+        FileUtils.deleteDirectory(directory);
+    }
+
+    /**
      * Test method for {@link org.apache.tiles.autotag.generate.AbstractTemplateClassGenerator#generate(java.io.File, java.lang.String, org.apache.tiles.autotag.model.TemplateSuite, org.apache.tiles.autotag.model.TemplateClass)}.
      * @throws Exception If something goes wrong.
      * @throws ParseErrorException If something goes wrong.
@@ -34,9 +74,6 @@ public class AbstractTemplateClassGenera
      */
     @Test
     public void testGenerate() throws ResourceNotFoundException, ParseErrorException, Exception {
-        VelocityEngine velocityEngine = createMock(VelocityEngine.class);
-        AbstractTemplateClassGenerator generator = createMockBuilder(AbstractTemplateClassGenerator.class).withConstructor(velocityEngine).createMock();
-        File directory = File.createTempFile("autotag", null);
         directory.delete();
         directory.mkdir();
         TemplateSuite suite = createMock(TemplateSuite.class);
@@ -55,7 +92,145 @@ public class AbstractTemplateClassGenera
         replay(velocityEngine, generator, suite, clazz, template);
         generator.generate(directory, packageName, suite, clazz);
         verify(velocityEngine, generator, suite, clazz, template);
-        FileUtils.deleteDirectory(directory);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.generate.AbstractTemplateClassGenerator#generate(java.io.File, java.lang.String, org.apache.tiles.autotag.model.TemplateSuite, org.apache.tiles.autotag.model.TemplateClass)}.
+     * @throws Exception If something goes wrong.
+     * @throws ParseErrorException If something goes wrong.
+     * @throws ResourceNotFoundException If something goes wrong.
+     */
+    @Test(expected=AutotagRuntimeException.class)
+    public void testGenerateException1() throws ResourceNotFoundException, ParseErrorException, Exception {
+        directory.delete();
+        directory.mkdir();
+        TemplateSuite suite = createMock(TemplateSuite.class);
+        TemplateClass clazz = createMock(TemplateClass.class);
+        Template template = createMock(Template.class);
+        String packageName = "org.apache.tiles.autotag.test";
+
+        expect(generator.getDirectoryName(directory, packageName, suite, clazz)).andReturn("mydir");
+        File mydir = new File(directory, "mydir");
+        expect(generator.getFilename(mydir , packageName, suite, clazz)).andReturn("myfile.txt");
+        String sampleVmPath = "/sample.vm";
+        expect(generator.getTemplatePath(mydir, packageName, suite, clazz)).andReturn(sampleVmPath);
+        expect(velocityEngine.getTemplate("/sample.vm")).andThrow(new ResourceNotFoundException("hello"));
+
+        replay(velocityEngine, generator, suite, clazz, template);
+        generator.generate(directory, packageName, suite, clazz);
+        verify(velocityEngine, generator, suite, clazz, template);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.generate.AbstractTemplateClassGenerator#generate(java.io.File, java.lang.String, org.apache.tiles.autotag.model.TemplateSuite, org.apache.tiles.autotag.model.TemplateClass)}.
+     * @throws Exception If something goes wrong.
+     * @throws ParseErrorException If something goes wrong.
+     * @throws ResourceNotFoundException If something goes wrong.
+     */
+    @Test(expected=AutotagRuntimeException.class)
+    public void testGenerateException2() throws ResourceNotFoundException, ParseErrorException, Exception {
+        directory.delete();
+        directory.mkdir();
+        TemplateSuite suite = createMock(TemplateSuite.class);
+        TemplateClass clazz = createMock(TemplateClass.class);
+        Template template = createMock(Template.class);
+        String packageName = "org.apache.tiles.autotag.test";
+
+        expect(generator.getDirectoryName(directory, packageName, suite, clazz)).andReturn("mydir");
+        File mydir = new File(directory, "mydir");
+        expect(generator.getFilename(mydir , packageName, suite, clazz)).andReturn("myfile.txt");
+        String sampleVmPath = "/sample.vm";
+        expect(generator.getTemplatePath(mydir, packageName, suite, clazz)).andReturn(sampleVmPath);
+        expect(velocityEngine.getTemplate("/sample.vm")).andThrow(new ParseErrorException("hello"));
+
+        replay(velocityEngine, generator, suite, clazz, template);
+        generator.generate(directory, packageName, suite, clazz);
+        verify(velocityEngine, generator, suite, clazz, template);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.generate.AbstractTemplateClassGenerator#generate(java.io.File, java.lang.String, org.apache.tiles.autotag.model.TemplateSuite, org.apache.tiles.autotag.model.TemplateClass)}.
+     * @throws Exception If something goes wrong.
+     * @throws ParseErrorException If something goes wrong.
+     * @throws ResourceNotFoundException If something goes wrong.
+     */
+    @Test(expected=AutotagRuntimeException.class)
+    public void testGenerateException3() throws ResourceNotFoundException, ParseErrorException, Exception {
+        directory.delete();
+        directory.mkdir();
+        TemplateSuite suite = createMock(TemplateSuite.class);
+        TemplateClass clazz = createMock(TemplateClass.class);
+        Template template = createMock(Template.class);
+        String packageName = "org.apache.tiles.autotag.test";
+
+        expect(generator.getDirectoryName(directory, packageName, suite, clazz)).andReturn("mydir");
+        File mydir = new File(directory, "mydir");
+        expect(generator.getFilename(mydir , packageName, suite, clazz)).andReturn("myfile.txt");
+        String sampleVmPath = "/sample.vm";
+        expect(generator.getTemplatePath(mydir, packageName, suite, clazz)).andReturn(sampleVmPath);
+        expect(velocityEngine.getTemplate("/sample.vm")).andThrow(new Exception());
+
+        replay(velocityEngine, generator, suite, clazz, template);
+        generator.generate(directory, packageName, suite, clazz);
+        verify(velocityEngine, generator, suite, clazz, template);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.generate.AbstractTemplateClassGenerator#generate(java.io.File, java.lang.String, org.apache.tiles.autotag.model.TemplateSuite, org.apache.tiles.autotag.model.TemplateClass)}.
+     * @throws Exception If something goes wrong.
+     * @throws ParseErrorException If something goes wrong.
+     * @throws ResourceNotFoundException If something goes wrong.
+     */
+    @Test(expected=AutotagRuntimeException.class)
+    public void testGenerateException4() throws ResourceNotFoundException, ParseErrorException, Exception {
+        directory.delete();
+        directory.mkdir();
+        TemplateSuite suite = createMock(TemplateSuite.class);
+        TemplateClass clazz = createMock(TemplateClass.class);
+        Template template = createMock(Template.class);
+        String packageName = "org.apache.tiles.autotag.test";
+
+        expect(generator.getDirectoryName(directory, packageName, suite, clazz)).andReturn("mydir");
+        File mydir = new File(directory, "mydir");
+        expect(generator.getFilename(mydir , packageName, suite, clazz)).andReturn("myfile.txt");
+        String sampleVmPath = "/sample.vm";
+        expect(generator.getTemplatePath(mydir, packageName, suite, clazz)).andReturn(sampleVmPath);
+        expect(velocityEngine.getTemplate("/sample.vm")).andReturn(template);
+        template.merge(isA(VelocityContext.class), isA(FileWriter.class));
+        expectLastCall().andThrow(new IOException());
+
+        replay(velocityEngine, generator, suite, clazz, template);
+        generator.generate(directory, packageName, suite, clazz);
+        verify(velocityEngine, generator, suite, clazz, template);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.generate.AbstractTemplateClassGenerator#generate(java.io.File, java.lang.String, org.apache.tiles.autotag.model.TemplateSuite, org.apache.tiles.autotag.model.TemplateClass)}.
+     * @throws Exception If something goes wrong.
+     * @throws ParseErrorException If something goes wrong.
+     * @throws ResourceNotFoundException If something goes wrong.
+     */
+    @Test(expected=ClassParseException.class)
+    public void testGenerateException5() throws ResourceNotFoundException, ParseErrorException, Exception {
+        directory.delete();
+        directory.mkdir();
+        TemplateSuite suite = createMock(TemplateSuite.class);
+        TemplateClass clazz = createMock(TemplateClass.class);
+        Template template = createMock(Template.class);
+        String packageName = "org.apache.tiles.autotag.test";
+
+        expect(generator.getDirectoryName(directory, packageName, suite, clazz)).andReturn("mydir");
+        File mydir = new File(directory, "mydir");
+        expect(generator.getFilename(mydir , packageName, suite, clazz)).andReturn("myfile.txt");
+        String sampleVmPath = "/sample.vm";
+        expect(generator.getTemplatePath(mydir, packageName, suite, clazz)).andReturn(sampleVmPath);
+        expect(velocityEngine.getTemplate("/sample.vm")).andReturn(template);
+        template.merge(isA(VelocityContext.class), isA(FileWriter.class));
+        expectLastCall().andThrow(new ClassParseException());
+
+        replay(velocityEngine, generator, suite, clazz, template);
+        generator.generate(directory, packageName, suite, clazz);
+        verify(velocityEngine, generator, suite, clazz, template);
     }
 
 }

Added: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGeneratorTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGeneratorTest.java?rev=1037330&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGeneratorTest.java (added)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGeneratorTest.java Sat Nov 20 21:17:31 2010
@@ -0,0 +1,229 @@
+/**
+ *
+ */
+package org.apache.tiles.autotag.generate;
+
+import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.tiles.autotag.core.AutotagRuntimeException;
+import org.apache.tiles.autotag.core.ClassParseException;
+import org.apache.tiles.autotag.model.TemplateSuite;
+import org.apache.velocity.Template;
+import org.apache.velocity.VelocityContext;
+import org.apache.velocity.app.VelocityEngine;
+import org.apache.velocity.exception.ParseErrorException;
+import org.apache.velocity.exception.ResourceNotFoundException;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests {@link AbstractTemplateSuiteGenerator}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class AbstractTemplateSuiteGeneratorTest {
+
+    /**
+     * The velocity engine.
+     */
+    private VelocityEngine velocityEngine;
+
+    /**
+     * The temporary directory.
+     */
+    private File directory;
+
+    /**
+     * The generator to test.
+     */
+    private AbstractTemplateSuiteGenerator generator;
+
+    /**
+     * Sets up the test.
+     *
+     * @throws IOException If something goes wrong.
+     */
+    @Before
+    public void setUp() throws IOException {
+        velocityEngine = createMock(VelocityEngine.class);
+        generator = createMockBuilder(AbstractTemplateSuiteGenerator.class).withConstructor(velocityEngine).createMock();
+        directory = File.createTempFile("autotag", null);
+    }
+
+    /**
+     * Tears down the test.
+     *
+     * @throws IOException If something goes wrong.
+     */
+    public void tearDown() throws IOException {
+        FileUtils.deleteDirectory(directory);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.generate.AbstractTemplateSuiteGenerator#generate(java.io.File, java.lang.String, org.apache.tiles.autotag.model.TemplateSuite, org.apache.tiles.autotag.model.TemplateClass)}.
+     * @throws Exception If something goes wrong.
+     * @throws ParseErrorException If something goes wrong.
+     * @throws ResourceNotFoundException If something goes wrong.
+     */
+    @Test
+    public void testGenerate() throws ResourceNotFoundException, ParseErrorException, Exception {
+        directory.delete();
+        directory.mkdir();
+        TemplateSuite suite = createMock(TemplateSuite.class);
+        Template template = createMock(Template.class);
+        String packageName = "org.apache.tiles.autotag.test";
+
+        expect(generator.getDirectoryName(directory, packageName, suite)).andReturn("mydir");
+        File mydir = new File(directory, "mydir");
+        expect(generator.getFilename(mydir , packageName, suite)).andReturn("myfile.txt");
+        String sampleVmPath = "/sample.vm";
+        expect(generator.getTemplatePath(mydir, packageName, suite)).andReturn(sampleVmPath);
+        expect(velocityEngine.getTemplate("/sample.vm")).andReturn(template);
+        template.merge(isA(VelocityContext.class), isA(FileWriter.class));
+
+        replay(velocityEngine, generator, suite, template);
+        generator.generate(directory, packageName, suite);
+        verify(velocityEngine, generator, suite, template);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.generate.AbstractTemplateSuiteGenerator#generate(java.io.File, java.lang.String, org.apache.tiles.autotag.model.TemplateSuite, org.apache.tiles.autotag.model.TemplateClass)}.
+     * @throws Exception If something goes wrong.
+     * @throws ParseErrorException If something goes wrong.
+     * @throws ResourceNotFoundException If something goes wrong.
+     */
+    @Test(expected=AutotagRuntimeException.class)
+    public void testGenerateException1() throws ResourceNotFoundException, ParseErrorException, Exception {
+        directory.delete();
+        directory.mkdir();
+        TemplateSuite suite = createMock(TemplateSuite.class);
+        Template template = createMock(Template.class);
+        String packageName = "org.apache.tiles.autotag.test";
+
+        expect(generator.getDirectoryName(directory, packageName, suite)).andReturn("mydir");
+        File mydir = new File(directory, "mydir");
+        expect(generator.getFilename(mydir , packageName, suite)).andReturn("myfile.txt");
+        String sampleVmPath = "/sample.vm";
+        expect(generator.getTemplatePath(mydir, packageName, suite)).andReturn(sampleVmPath);
+        expect(velocityEngine.getTemplate("/sample.vm")).andThrow(new ResourceNotFoundException("hello"));
+
+        replay(velocityEngine, generator, suite, template);
+        generator.generate(directory, packageName, suite);
+        verify(velocityEngine, generator, suite, template);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.generate.AbstractTemplateSuiteGenerator#generate(java.io.File, java.lang.String, org.apache.tiles.autotag.model.TemplateSuite, org.apache.tiles.autotag.model.TemplateClass)}.
+     * @throws Exception If something goes wrong.
+     * @throws ParseErrorException If something goes wrong.
+     * @throws ResourceNotFoundException If something goes wrong.
+     */
+    @Test(expected=AutotagRuntimeException.class)
+    public void testGenerateException2() throws ResourceNotFoundException, ParseErrorException, Exception {
+        directory.delete();
+        directory.mkdir();
+        TemplateSuite suite = createMock(TemplateSuite.class);
+        Template template = createMock(Template.class);
+        String packageName = "org.apache.tiles.autotag.test";
+
+        expect(generator.getDirectoryName(directory, packageName, suite)).andReturn("mydir");
+        File mydir = new File(directory, "mydir");
+        expect(generator.getFilename(mydir , packageName, suite)).andReturn("myfile.txt");
+        String sampleVmPath = "/sample.vm";
+        expect(generator.getTemplatePath(mydir, packageName, suite)).andReturn(sampleVmPath);
+        expect(velocityEngine.getTemplate("/sample.vm")).andThrow(new ParseErrorException("hello"));
+
+        replay(velocityEngine, generator, suite, template);
+        generator.generate(directory, packageName, suite);
+        verify(velocityEngine, generator, suite, template);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.generate.AbstractTemplateSuiteGenerator#generate(java.io.File, java.lang.String, org.apache.tiles.autotag.model.TemplateSuite, org.apache.tiles.autotag.model.TemplateClass)}.
+     * @throws Exception If something goes wrong.
+     * @throws ParseErrorException If something goes wrong.
+     * @throws ResourceNotFoundException If something goes wrong.
+     */
+    @Test(expected=AutotagRuntimeException.class)
+    public void testGenerateException3() throws ResourceNotFoundException, ParseErrorException, Exception {
+        directory.delete();
+        directory.mkdir();
+        TemplateSuite suite = createMock(TemplateSuite.class);
+        Template template = createMock(Template.class);
+        String packageName = "org.apache.tiles.autotag.test";
+
+        expect(generator.getDirectoryName(directory, packageName, suite)).andReturn("mydir");
+        File mydir = new File(directory, "mydir");
+        expect(generator.getFilename(mydir , packageName, suite)).andReturn("myfile.txt");
+        String sampleVmPath = "/sample.vm";
+        expect(generator.getTemplatePath(mydir, packageName, suite)).andReturn(sampleVmPath);
+        expect(velocityEngine.getTemplate("/sample.vm")).andThrow(new Exception());
+
+        replay(velocityEngine, generator, suite, template);
+        generator.generate(directory, packageName, suite);
+        verify(velocityEngine, generator, suite, template);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.generate.AbstractTemplateSuiteGenerator#generate(java.io.File, java.lang.String, org.apache.tiles.autotag.model.TemplateSuite, org.apache.tiles.autotag.model.TemplateClass)}.
+     * @throws Exception If something goes wrong.
+     * @throws ParseErrorException If something goes wrong.
+     * @throws ResourceNotFoundException If something goes wrong.
+     */
+    @Test(expected=AutotagRuntimeException.class)
+    public void testGenerateException4() throws ResourceNotFoundException, ParseErrorException, Exception {
+        directory.delete();
+        directory.mkdir();
+        TemplateSuite suite = createMock(TemplateSuite.class);
+        Template template = createMock(Template.class);
+        String packageName = "org.apache.tiles.autotag.test";
+
+        expect(generator.getDirectoryName(directory, packageName, suite)).andReturn("mydir");
+        File mydir = new File(directory, "mydir");
+        expect(generator.getFilename(mydir , packageName, suite)).andReturn("myfile.txt");
+        String sampleVmPath = "/sample.vm";
+        expect(generator.getTemplatePath(mydir, packageName, suite)).andReturn(sampleVmPath);
+        expect(velocityEngine.getTemplate("/sample.vm")).andReturn(template);
+        template.merge(isA(VelocityContext.class), isA(FileWriter.class));
+        expectLastCall().andThrow(new IOException());
+
+        replay(velocityEngine, generator, suite, template);
+        generator.generate(directory, packageName, suite);
+        verify(velocityEngine, generator, suite, template);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.generate.AbstractTemplateSuiteGenerator#generate(java.io.File, java.lang.String, org.apache.tiles.autotag.model.TemplateSuite, org.apache.tiles.autotag.model.TemplateClass)}.
+     * @throws Exception If something goes wrong.
+     * @throws ParseErrorException If something goes wrong.
+     * @throws ResourceNotFoundException If something goes wrong.
+     */
+    @Test(expected=ClassParseException.class)
+    public void testGenerateException5() throws ResourceNotFoundException, ParseErrorException, Exception {
+        directory.delete();
+        directory.mkdir();
+        TemplateSuite suite = createMock(TemplateSuite.class);
+        Template template = createMock(Template.class);
+        String packageName = "org.apache.tiles.autotag.test";
+
+        expect(generator.getDirectoryName(directory, packageName, suite)).andReturn("mydir");
+        File mydir = new File(directory, "mydir");
+        expect(generator.getFilename(mydir , packageName, suite)).andReturn("myfile.txt");
+        String sampleVmPath = "/sample.vm";
+        expect(generator.getTemplatePath(mydir, packageName, suite)).andReturn(sampleVmPath);
+        expect(velocityEngine.getTemplate("/sample.vm")).andReturn(template);
+        template.merge(isA(VelocityContext.class), isA(FileWriter.class));
+        expectLastCall().andThrow(new ClassParseException());
+
+        replay(velocityEngine, generator, suite, template);
+        generator.generate(directory, packageName, suite);
+        verify(velocityEngine, generator, suite, template);
+    }
+
+}

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGeneratorTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGeneratorTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateClassTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateClassTest.java?rev=1037330&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateClassTest.java (added)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateClassTest.java Sat Nov 20 21:17:31 2010
@@ -0,0 +1,128 @@
+/**
+ *
+ */
+package org.apache.tiles.autotag.model;
+
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.junit.Test;
+
+/**
+ * @author antonio
+ *
+ * @version $Rev$ $Date$
+ */
+public class TemplateClassTest {
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.model.TemplateClass#TemplateClass(java.lang.String)}.
+     */
+    @Test
+    public void testTemplateConstructor1() {
+        TemplateClass templateClass = new TemplateClass("name");
+        assertEquals("name", templateClass.getName());
+        assertNull(templateClass.getTagName());
+        assertNull(templateClass.getTagClassPrefix());
+        assertNull(templateClass.getExecuteMethod());
+        Collection<TemplateParameter> params = templateClass.getParameters();
+        assertTrue(params.isEmpty());
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.model.TemplateClass#TemplateClass(java.lang.String, java.lang.String, java.lang.String, org.apache.tiles.autotag.model.TemplateMethod)}.
+     */
+    @Test
+    public void testTemplateConstructor2() {
+        TemplateMethod method = createMock(TemplateMethod.class);
+
+        replay(method);
+        TemplateClass templateClass = new TemplateClass("name", "tagName", "tagClassPrefix", method);
+        assertEquals("name", templateClass.getName());
+        assertEquals("tagName", templateClass.getTagName());
+        assertEquals("tagClassPrefix", templateClass.getTagClassPrefix());
+        assertEquals(method, templateClass.getExecuteMethod());
+        verify(method);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.model.TemplateClass#setDocumentation(java.lang.String)}.
+     */
+    @Test
+    public void testSetDocumentation() {
+        TemplateClass templateClass = new TemplateClass("name");
+        templateClass.setDocumentation("docs");
+        assertEquals("docs", templateClass.getDocumentation());
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.model.TemplateClass#getParameters()}.
+     */
+    @Test
+    public void testGetParameters() {
+        TemplateParameter param1 = createMock(TemplateParameter.class);
+        TemplateParameter param2 = createMock(TemplateParameter.class);
+        TemplateParameter param3 = createMock(TemplateParameter.class);
+        TemplateParameter param4 = createMock(TemplateParameter.class);
+        TemplateMethod method = createMock(TemplateMethod.class);
+        List<TemplateParameter> params = new ArrayList<TemplateParameter>();
+
+        expect(method.getParameters()).andReturn(params);
+        expect(param1.isRequest()).andReturn(true);
+        expect(param2.isRequest()).andReturn(false);
+        expect(param2.isBody()).andReturn(true);
+        expect(param3.isRequest()).andReturn(false);
+        expect(param3.isBody()).andReturn(false);
+        expect(param4.isRequest()).andReturn(false);
+        expect(param4.isBody()).andReturn(false);
+        expect(param3.getName()).andReturn("param1");
+        expect(param4.getName()).andReturn("param2");
+
+        replay(param1, param2, param3, param4, method);
+        params.add(param1);
+        params.add(param2);
+        params.add(param3);
+        params.add(param4);
+
+        TemplateClass templateClass = new TemplateClass("name", "tagName", "tagClassPrefix", method);
+        Collection<TemplateParameter> returnedParams = templateClass.getParameters();
+        Iterator<TemplateParameter> paramIt = returnedParams.iterator();
+        assertSame(param3, paramIt.next());
+        assertSame(param4, paramIt.next());
+        assertFalse(paramIt.hasNext());
+        verify(param1, param2, param3, param4, method);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.model.TemplateClass#hasBody()}.
+     */
+    @Test
+    public void testHasBody() {
+        TemplateMethod method = createMock(TemplateMethod.class);
+        expect(method.hasBody()).andReturn(true);
+
+        replay(method);
+        TemplateClass templateClass = new TemplateClass("name", "tagName", "tagClassPrefix", method);
+        assertTrue(templateClass.hasBody());
+        verify(method);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.model.TemplateClass#toString()}.
+     */
+    @Test
+    public void testToString() {
+        TemplateMethod method = new TemplateMethod("method", new ArrayList<TemplateParameter>());
+        TemplateClass templateClass = new TemplateClass("name", "tagName", "tagClassPrefix", method);
+        assertEquals("TemplateClass [name=name, tagName=tagName, tagClassPrefix=tagClassPrefix, " +
+        		"documentation=null, executeMethod=TemplateMethod " +
+        		"[name=method, documentation=null, parameters={}]]",
+                templateClass.toString());
+    }
+
+}

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateClassTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateClassTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateMethodTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateMethodTest.java?rev=1037330&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateMethodTest.java (added)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateMethodTest.java Sat Nov 20 21:17:31 2010
@@ -0,0 +1,106 @@
+package org.apache.tiles.autotag.model;
+
+import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.junit.Test;
+
+public class TemplateMethodTest {
+
+    /**
+     * Tests {@link TemplateMethod#TemplateMethod(String, Iterable)}.
+     */
+    @Test
+    public void testTemplateMethod() {
+        TemplateParameter param1 = createMock(TemplateParameter.class);
+        TemplateParameter param2 = createMock(TemplateParameter.class);
+
+        expect(param1.getName()).andReturn("param1");
+        expect(param2.getName()).andReturn("param2");
+
+        replay(param1, param2);
+        List<TemplateParameter> parameters = new ArrayList<TemplateParameter>();
+        parameters.add(param1);
+        parameters.add(param2);
+
+        TemplateMethod method = new TemplateMethod("method", parameters);
+        assertEquals("method", method.getName());
+        Iterator<TemplateParameter> params = method.getParameters().iterator();
+        assertSame(param1, params.next());
+        assertSame(param2, params.next());
+        assertFalse(params.hasNext());
+        assertSame(param1, method.getParameterByName("param1"));
+        assertSame(param2, method.getParameterByName("param2"));
+        verify(param1, param2);
+    }
+
+    /**
+     * Tests {@link TemplateMethod#setDocumentation(String)}.
+     */
+    @Test
+    public void testSetDocumentation() {
+        TemplateMethod method = new TemplateMethod("method", new ArrayList<TemplateParameter>());
+        method.setDocumentation("docs");
+        assertEquals("docs", method.getDocumentation());
+    }
+
+    /**
+     * Tests {@link TemplateMethod#hasBody()}.
+     */
+    @Test
+    public void testHasBody() {
+        TemplateParameter param1 = createMock(TemplateParameter.class);
+        TemplateParameter param2 = createMock(TemplateParameter.class);
+
+        expect(param1.getName()).andReturn("param1");
+        expect(param2.getName()).andReturn("param2");
+        expect(param1.isBody()).andReturn(true);
+
+        replay(param1, param2);
+        List<TemplateParameter> parameters = new ArrayList<TemplateParameter>();
+        parameters.add(param1);
+        parameters.add(param2);
+
+        TemplateMethod method = new TemplateMethod("method", parameters);
+        assertTrue(method.hasBody());
+        verify(param1, param2);
+    }
+
+    /**
+     * Tests {@link TemplateMethod#hasBody()}.
+     */
+    @Test
+    public void testHasBody2() {
+        TemplateParameter param1 = createMock(TemplateParameter.class);
+        TemplateParameter param2 = createMock(TemplateParameter.class);
+
+        expect(param1.getName()).andReturn("param1");
+        expect(param2.getName()).andReturn("param2");
+        expect(param1.isBody()).andReturn(false);
+        expect(param2.isBody()).andReturn(false);
+
+        replay(param1, param2);
+        List<TemplateParameter> parameters = new ArrayList<TemplateParameter>();
+        parameters.add(param1);
+        parameters.add(param2);
+
+        TemplateMethod method = new TemplateMethod("method", parameters);
+        assertFalse(method.hasBody());
+        verify(param1, param2);
+    }
+
+    /**
+     * Tests {@link TemplateMethod#toString()}.
+     */
+    @Test
+    public void testToString() {
+        TemplateMethod method = new TemplateMethod("method", new ArrayList<TemplateParameter>());
+        assertEquals("TemplateMethod [name=method, documentation=null, parameters={}]", method.toString());
+    }
+
+}

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateMethodTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateMethodTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateParameterTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateParameterTest.java?rev=1037330&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateParameterTest.java (added)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateParameterTest.java Sat Nov 20 21:17:31 2010
@@ -0,0 +1,72 @@
+package org.apache.tiles.autotag.model;
+
+import static org.junit.Assert.*;
+
+import org.apache.tiles.autotag.core.runtime.ModelBody;
+import org.apache.tiles.request.Request;
+import org.junit.Test;
+
+/**
+ * Tests {@link TemplateParameter}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class TemplateParameterTest {
+
+    /**
+     * Tests {@link TemplateParameter#TemplateParameter(String, String, String, String, boolean)}.
+     */
+    @Test
+    public void testTemplateParameter() {
+        TemplateParameter parameter = new TemplateParameter("name", "exportedName", "type", "defaultValue", true);
+        assertEquals("name", parameter.getName());
+        assertEquals("exportedName", parameter.getExportedName());
+        assertEquals("type", parameter.getType());
+        assertEquals("defaultValue", parameter.getDefaultValue());
+        assertTrue(parameter.isRequired());
+        assertEquals("ExportedName", parameter.getGetterSetterSuffix());
+        assertFalse(parameter.isBody());
+        assertFalse(parameter.isRequest());
+
+        parameter = new TemplateParameter("name", "exportedName", Request.class.getName(), "defaultValue", false);
+        assertEquals("name", parameter.getName());
+        assertEquals("exportedName", parameter.getExportedName());
+        assertEquals(Request.class.getName(), parameter.getType());
+        assertEquals("defaultValue", parameter.getDefaultValue());
+        assertFalse(parameter.isRequired());
+        assertEquals("ExportedName", parameter.getGetterSetterSuffix());
+        assertFalse(parameter.isBody());
+        assertTrue(parameter.isRequest());
+
+        parameter = new TemplateParameter("name", "exportedName", ModelBody.class.getName(), "defaultValue", false);
+        assertEquals("name", parameter.getName());
+        assertEquals("exportedName", parameter.getExportedName());
+        assertEquals(ModelBody.class.getName(), parameter.getType());
+        assertEquals("defaultValue", parameter.getDefaultValue());
+        assertFalse(parameter.isRequired());
+        assertEquals("ExportedName", parameter.getGetterSetterSuffix());
+        assertTrue(parameter.isBody());
+        assertFalse(parameter.isRequest());
+    }
+
+    /**
+     * Tests {@link TemplateParameter#setDocumentation(String)}.
+     */
+    @Test
+    public void testSetDocumentation() {
+        TemplateParameter parameter = new TemplateParameter("name", "exportedName", "type", "defaultValue", true);
+        parameter.setDocumentation("docs");
+        assertEquals("docs", parameter.getDocumentation());
+    }
+
+    /**
+     * Tests {@link TemplateParameter#toString()}.
+     */
+    @Test
+    public void testToString() {
+        TemplateParameter parameter = new TemplateParameter("name", "exportedName", "type", "defaultValue", true);
+        assertEquals("TemplateParameter [name=name, exportedName=exportedName, " +
+        		"documentation=null, type=type, defaultValue=defaultValue, required=true]", parameter.toString());
+    }
+
+}

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateParameterTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateParameterTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateSuiteTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateSuiteTest.java?rev=1037330&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateSuiteTest.java (added)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateSuiteTest.java Sat Nov 20 21:17:31 2010
@@ -0,0 +1,97 @@
+/**
+ *
+ */
+package org.apache.tiles.autotag.model;
+
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.junit.Test;
+
+/**
+ * Tests {@link TemplateSuite}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class TemplateSuiteTest {
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.model.TemplateSuite#TemplateSuite(java.lang.String, java.lang.String)}.
+     */
+    @Test
+    public void testTemplateSuiteCostructor1() {
+        TemplateSuite suite = new TemplateSuite("name", "docs");
+        assertEquals("name", suite.getName());
+        assertEquals("docs", suite.getDocumentation());
+        assertTrue(suite.getTemplateClasses().isEmpty());
+        assertNotNull(suite.getCustomVariables());
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.model.TemplateSuite#TemplateSuite(java.lang.String, java.lang.String, java.lang.Iterable)}.
+     */
+    @Test
+    public void testTemplateSuiteConstructor2() {
+        TemplateClass class1 = createMock(TemplateClass.class);
+        TemplateClass class2 = createMock(TemplateClass.class);
+        expect(class1.getName()).andReturn("class1");
+        expect(class2.getName()).andReturn("class2");
+
+        replay(class1, class2);
+        List<TemplateClass> classes = new ArrayList<TemplateClass>();
+        classes.add(class1);
+        classes.add(class2);
+        TemplateSuite suite = new TemplateSuite("name", "docs", classes);
+        assertEquals("name", suite.getName());
+        assertEquals("docs", suite.getDocumentation());
+        Iterator<TemplateClass> clazzes = suite.getTemplateClasses().iterator();
+        assertSame(class1, clazzes.next());
+        assertSame(class2, clazzes.next());
+        assertFalse(clazzes.hasNext());
+        assertSame(class1, suite.getTemplateClassByName("class1"));
+        assertSame(class2, suite.getTemplateClassByName("class2"));
+        verify(class1, class2);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.model.TemplateSuite#addTemplateClass(org.apache.tiles.autotag.model.TemplateClass)}.
+     */
+    @Test
+    public void testAddTemplateClass() {
+        TemplateClass class1 = createMock(TemplateClass.class);
+        TemplateClass class2 = createMock(TemplateClass.class);
+        expect(class1.getName()).andReturn("class1");
+        expect(class2.getName()).andReturn("class2");
+
+        replay(class1, class2);
+        List<TemplateClass> classes = new ArrayList<TemplateClass>();
+        classes.add(class1);
+        classes.add(class2);
+        TemplateSuite suite = new TemplateSuite("name", "docs");
+        assertEquals("name", suite.getName());
+        assertEquals("docs", suite.getDocumentation());
+        assertTrue(suite.getTemplateClasses().isEmpty());
+        suite.addTemplateClass(class1);
+        suite.addTemplateClass(class2);
+        Iterator<TemplateClass> clazzes = suite.getTemplateClasses().iterator();
+        assertSame(class1, clazzes.next());
+        assertSame(class2, clazzes.next());
+        assertFalse(clazzes.hasNext());
+        assertSame(class1, suite.getTemplateClassByName("class1"));
+        assertSame(class2, suite.getTemplateClassByName("class2"));
+        verify(class1, class2);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.model.TemplateSuite#toString()}.
+     */
+    @Test
+    public void testToString() {
+        TemplateSuite suite = new TemplateSuite("name", "docs");
+        assertEquals("TemplateSuite [name=name, documentation=docs, customVariables={}, templateClasses={}]", suite.toString());
+    }
+}

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateSuiteTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateSuiteTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/tool/StringToolTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/tool/StringToolTest.java?rev=1037330&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/tool/StringToolTest.java (added)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/tool/StringToolTest.java Sat Nov 20 21:17:31 2010
@@ -0,0 +1,65 @@
+/**
+ *
+ */
+package org.apache.tiles.autotag.tool;
+
+import static org.junit.Assert.*;
+
+import java.util.List;
+
+import org.junit.Test;
+
+/**
+ * Tests {@link StringTool}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class StringToolTest {
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.tool.StringTool#splitOnNewlines(java.lang.String)}.
+     */
+    @Test
+    public void testSplitOnNewlines() {
+        StringTool tool = new StringTool();
+        List<String> splitted = tool.splitOnNewlines("time\nto\nsplit");
+        assertEquals(3, splitted.size());
+        assertEquals("time", splitted.get(0));
+        assertEquals("to", splitted.get(1));
+        assertEquals("split", splitted.get(2));
+        splitted = tool.splitOnNewlines(null);
+        assertTrue(splitted.isEmpty());
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.tool.StringTool#capitalizeFirstLetter(java.lang.String)}.
+     */
+    @Test
+    public void testCapitalizeFirstLetter() {
+        StringTool tool = new StringTool();
+        assertEquals("Whatever", tool.capitalizeFirstLetter("whatever"));
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.tool.StringTool#getDefaultValue(java.lang.String, java.lang.String)}.
+     */
+    @Test
+    public void testGetDefaultValue() {
+        StringTool tool = new StringTool();
+        assertEquals("0", tool.getDefaultValue("byte", null));
+        assertEquals("1", tool.getDefaultValue("byte", "1"));
+        assertEquals("null", tool.getDefaultValue("Whatever", null));
+        assertEquals("thatsit", tool.getDefaultValue("Whatever", "thatsit"));
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.autotag.tool.StringTool#getClassToCast(java.lang.String)}.
+     */
+    @Test
+    public void testGetClassToCast() {
+        StringTool tool = new StringTool();
+        assertEquals(Byte.class.getName(), tool.getClassToCast("byte"));
+        assertEquals("Whatever", tool.getClassToCast("Whatever"));
+    }
+
+}

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/tool/StringToolTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/tool/StringToolTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL