Author: apetrelli
Date: Sat Jun  5 12:02:34 2010
New Revision: 951694

URL: http://svn.apache.org/viewvc?rev=951694&view=rev
Log:
TILESSB-11
Added more tests to tiles-freemarker as much as possible.

Added:
    
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/FreeMarkerTilesExceptionTest.java
   (with props)
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/test.ftl   
(with props)
Modified:
    tiles/sandbox/trunk/tiles3/tiles-freemarker/pom.xml
    
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreeMarkerTilesException.java
    
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/pom.xml
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/pom.xml?rev=951694&r1=951693&r2=951694&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/pom.xml (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/pom.xml Sat Jun  5 12:02:34 2010
@@ -90,15 +90,9 @@
     </dependency>
 
     <dependency>
-      <groupId>org.easymock</groupId>
-      <artifactId>easymock</artifactId>
-      <version>2.5.1</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
         <groupId>org.easymock</groupId>
         <artifactId>easymockclassextension</artifactId>
-        <version>2.4</version>
+        <version>2.5.2</version>
         <scope>test</scope>
     </dependency>
     <dependency>
@@ -107,9 +101,9 @@
         <version>1.0-SNAPSHOT</version>
     </dependency>
     <dependency>
-       <groupId>org.apache.tiles</groupId>
-       <artifactId>tiles-autotag-freemarker-runtime</artifactId>
-       <version>1.0-SNAPSHOT</version>
+        <groupId>org.apache.tiles</groupId>
+        <artifactId>tiles-autotag-freemarker-runtime</artifactId>
+        <version>1.0-SNAPSHOT</version>
     </dependency>
   </dependencies>
 </project>

Modified: 
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreeMarkerTilesException.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreeMarkerTilesException.java?rev=951694&r1=951693&r2=951694&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreeMarkerTilesException.java
 (original)
+++ 
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreeMarkerTilesException.java
 Sat Jun  5 12:02:34 2010
@@ -56,7 +56,7 @@ public class FreeMarkerTilesException ex
      * @param e The cause of the exception.
      * @since 2.2.0
      */
-    public FreeMarkerTilesException(Exception e) {
+    public FreeMarkerTilesException(Throwable e) {
         super(e);
     }
 
@@ -67,7 +67,7 @@ public class FreeMarkerTilesException ex
      * @param e The cause of the exception.
      * @since 2.2.0
      */
-    public FreeMarkerTilesException(String message, Exception e) {
+    public FreeMarkerTilesException(String message, Throwable e) {
         super(message, e);
     }
 }

Added: 
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/FreeMarkerTilesExceptionTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/FreeMarkerTilesExceptionTest.java?rev=951694&view=auto
==============================================================================
--- 
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/FreeMarkerTilesExceptionTest.java
 (added)
+++ 
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/FreeMarkerTilesExceptionTest.java
 Sat Jun  5 12:02:34 2010
@@ -0,0 +1,77 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tiles.freemarker;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * Tests {...@link FreeMarkerTilesException}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class FreeMarkerTilesExceptionTest {
+
+    /**
+     * Test method for {...@link 
FreeMarkerTilesException#FreeMarkerTilesException()}.
+     */
+    @Test
+    public void testFreeMarkerTilesException() {
+        FreeMarkerTilesException exception = new FreeMarkerTilesException();
+        assertNull(exception.getMessage());
+        assertNull(exception.getCause());
+    }
+
+    /**
+     * Test method for {...@link 
FreeMarkerTilesException#FreeMarkerTilesException(java.lang.String)}.
+     */
+    @Test
+    public void testFreeMarkerTilesExceptionString() {
+        FreeMarkerTilesException exception = new FreeMarkerTilesException("my 
message");
+        assertEquals("my message", exception.getMessage());
+        assertNull(exception.getCause());
+    }
+
+    /**
+     * Test method for {...@link 
FreeMarkerTilesException#FreeMarkerTilesException(java.lang.Throwable)}.
+     */
+    @Test
+    public void testFreeMarkerTilesExceptionThrowable() {
+        Throwable cause = new Throwable();
+        FreeMarkerTilesException exception = new 
FreeMarkerTilesException(cause);
+        assertEquals(cause.toString(), exception.getMessage());
+        assertEquals(cause, exception.getCause());
+    }
+
+    /**
+     * Test method for {...@link 
FreeMarkerTilesException#FreeMarkerTilesException(java.lang.String, 
java.lang.Throwable)}.
+     */
+    @Test
+    public void testFreeMarkerTilesExceptionStringThrowable() {
+        Throwable cause = new Throwable();
+        FreeMarkerTilesException exception = new FreeMarkerTilesException("my 
message", cause);
+        assertEquals("my message", exception.getMessage());
+        assertEquals(cause, exception.getCause());
+    }
+
+}

Propchange: 
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/FreeMarkerTilesExceptionTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/FreeMarkerTilesExceptionTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: 
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java?rev=951694&r1=951693&r2=951694&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java
 (original)
+++ 
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java
 Sat Jun  5 12:02:34 2010
@@ -20,11 +20,33 @@
  */
 package org.apache.tiles.freemarker.renderer;
 
+import static org.easymock.classextension.EasyMock.*;
 import static org.junit.Assert.*;
 
-import org.apache.tiles.renderer.TypeDetectingAttributeRenderer;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.net.URL;
+
+import javax.servlet.GenericServlet;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.tiles.evaluator.AttributeEvaluatorFactory;
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.servlet.ServletApplicationContext;
+import org.apache.tiles.request.servlet.ServletRequest;
+import org.junit.Before;
 import org.junit.Test;
 
+import freemarker.ext.servlet.HttpRequestHashModel;
+import freemarker.ext.servlet.HttpRequestParametersHashModel;
+import freemarker.ext.servlet.ServletContextHashModel;
+import freemarker.template.ObjectWrapper;
+
 /**
  * Tests {...@link FreeMarkerAttributeRenderer}.
  *
@@ -32,6 +54,117 @@ import org.junit.Test;
  */
 public class FreeMarkerAttributeRendererTest {
 
+    private static final String ATTR_APPLICATION_MODEL =
+        ".freemarker.Application";
+
+    private static final String ATTR_JSP_TAGLIBS_MODEL =
+        ".freemarker.JspTaglibs";
+
+    private static final String ATTR_REQUEST_MODEL = ".freemarker.Request";
+
+    private static final String ATTR_REQUEST_PARAMETERS_MODEL =
+        ".freemarker.RequestParameters";
+
+    private FreeMarkerAttributeRenderer renderer;
+
+    private ApplicationContext applicationContext;
+
+    private ServletContext servletContext;
+
+    private AttributeEvaluatorFactory attributeEvaluatorFactory;
+
+    /**
+     * Sets up the test.
+     */
+    @Before
+    public void setUp() {
+        applicationContext = createMock(ServletApplicationContext.class);
+        attributeEvaluatorFactory = 
createMock(AttributeEvaluatorFactory.class);
+        servletContext = createMock(ServletContext.class);
+
+        expect(applicationContext.getContext()).andReturn(servletContext);
+
+        replay(applicationContext, servletContext);
+        renderer = new FreeMarkerAttributeRenderer();
+        renderer.setApplicationContext(applicationContext);
+        renderer.setAttributeEvaluatorFactory(attributeEvaluatorFactory);
+        renderer.setParameter("TemplatePath", "/");
+        renderer.setParameter("NoCache", "true");
+        renderer.setParameter("ContentType", "text/html");
+        renderer.setParameter("template_update_delay", "0");
+        renderer.setParameter("default_encoding", "ISO-8859-1");
+        renderer.setParameter("number_format", "0.##########");
+        renderer.commit();
+    }
+
+    /**
+     * Tests {...@link FreeMarkerAttributeRenderer#write(Object, 
org.apache.tiles.Attribute, org.apache.tiles.request.Request)}.
+     * @throws IOException If something goes wrong.
+     * @throws ServletException If something goes wrong.
+     */
+    @Test
+    public void testWrite() throws IOException, ServletException {
+        ApplicationContext applicationContext = 
createMock(ServletApplicationContext.class);
+        AttributeEvaluatorFactory attributeEvaluatorFactory = 
createMock(AttributeEvaluatorFactory.class);
+        ServletContext servletContext = createMock(ServletContext.class);
+        GenericServlet servlet = 
createMockBuilder(GenericServlet.class).createMock();
+        ServletConfig servletConfig = createMock(ServletConfig.class);
+        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
+
+        expect(servletConfig.getServletContext()).andReturn(servletContext);
+
+        replay(servlet, servletConfig);
+        servlet.init(servletConfig);
+        ServletContextHashModel servletContextHashModel = new 
ServletContextHashModel(servlet, objectWrapper);
+
+        
expect(applicationContext.getContext()).andReturn(servletContext).anyTimes();
+        
expect(servletContext.getRealPath(isA(String.class))).andReturn(null).anyTimes();
+        URL resource = getClass().getResource("/test.ftl");
+        
expect(servletContext.getResource(isA(String.class))).andReturn(resource).anyTimes();
+        
expect(servletContext.getAttribute(ATTR_APPLICATION_MODEL)).andReturn(servletContextHashModel);
+        
expect(servletContext.getAttribute(ATTR_JSP_TAGLIBS_MODEL)).andReturn(null);
+
+        replay(applicationContext, servletContext, objectWrapper);
+
+        FreeMarkerAttributeRenderer renderer = new 
FreeMarkerAttributeRenderer();
+        renderer.setApplicationContext(applicationContext);
+        renderer.setAttributeEvaluatorFactory(attributeEvaluatorFactory);
+        renderer.setParameter("TemplatePath", "/");
+        renderer.setParameter("NoCache", "true");
+        renderer.setParameter("ContentType", "text/html");
+        renderer.setParameter("template_update_delay", "0");
+        renderer.setParameter("default_encoding", "ISO-8859-1");
+        renderer.setParameter("number_format", "0.##########");
+        renderer.commit();
+
+        ServletRequest request = createMock(ServletRequest.class);
+        HttpServletRequest httpRequest = createMock(HttpServletRequest.class);
+        HttpServletResponse response = createMock(HttpServletResponse.class);
+        StringWriter stringWriter = new StringWriter();
+        PrintWriter printWriter = new PrintWriter(stringWriter);
+        HttpRequestHashModel requestModel = new 
HttpRequestHashModel(httpRequest, response, objectWrapper);
+        HttpRequestParametersHashModel parametersModel = new 
HttpRequestParametersHashModel(httpRequest);
+
+        expect(request.getRequest()).andReturn(httpRequest);
+        expect(request.getResponse()).andReturn(response);
+        expect(request.getPrintWriter()).andReturn(printWriter);
+        expect(httpRequest.getSession(false)).andReturn(null);
+        
expect(httpRequest.getAttribute(ATTR_REQUEST_MODEL)).andReturn(requestModel);
+        
expect(httpRequest.getAttribute(ATTR_REQUEST_PARAMETERS_MODEL)).andReturn(parametersModel);
+        response.setContentType("text/html; charset=ISO-8859-1");
+        response.setHeader(eq("Cache-Control"), isA(String.class));
+        response.setHeader("Pragma", "no-cache");
+        response.setHeader(eq("Expires"), isA(String.class));
+
+        replay(attributeEvaluatorFactory, request, httpRequest, response);
+        renderer.write("hello", null, request);
+        stringWriter.close();
+        assertTrue(stringWriter.toString().startsWith("Hello!"));
+        verify(applicationContext, servletContext, attributeEvaluatorFactory,
+                request, httpRequest, response, servlet, servletConfig,
+                objectWrapper);
+    }
+
     /**
      * Test method for
      * {...@link FreeMarkerAttributeRenderer
@@ -40,11 +173,12 @@ public class FreeMarkerAttributeRenderer
      */
     @Test
     public void testIsRenderable() {
-        TypeDetectingAttributeRenderer renderer = new 
FreeMarkerAttributeRenderer();
+        replay(attributeEvaluatorFactory);
         assertTrue(renderer.isRenderable("/my/template.ftl", null, null));
         assertFalse(renderer.isRenderable("my/template.ftl", null, null));
         assertFalse(renderer.isRenderable("/my/template.jsp", null, null));
         assertFalse(renderer.isRenderable(0, null, null));
+        verify(applicationContext, servletContext, attributeEvaluatorFactory);
     }
 
 }

Added: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/test.ftl
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/test.ftl?rev=951694&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/test.ftl 
(added)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/test.ftl Sat 
Jun  5 12:02:34 2010
@@ -0,0 +1,25 @@
+<#--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+-->
+Hello!
+

Propchange: 
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/test.ftl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/test.ftl
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL


Reply via email to