- Revision
- 335
- Author
- mauro
- Date
- 2007-11-03 08:41:24 -0500 (Sat, 03 Nov 2007)
Log Message
Added waffle-mock extension module with Abstract/PicoRegistrarMockery to mirror Abstract/PicoRegistrarTestCase. The jMock 1 classes left in core for the moment, pending consensus on move.
Modified Paths
- trunk/.classpath
- trunk/core/src/main/java/org/codehaus/waffle/registrar/mock/AbstractRegistrarTestCase.java
- trunk/pom.xml
Added Paths
- trunk/extensions/mock/
- trunk/extensions/mock/pom.xml
- trunk/extensions/mock/src/
- trunk/extensions/mock/src/main/
- trunk/extensions/mock/src/main/java/
- trunk/extensions/mock/src/main/java/org/
- trunk/extensions/mock/src/main/java/org/codehaus/
- trunk/extensions/mock/src/main/java/org/codehaus/waffle/
- trunk/extensions/mock/src/main/java/org/codehaus/waffle/mock/
- trunk/extensions/mock/src/main/java/org/codehaus/waffle/mock/AbstractRegistrarMockery.java
- trunk/extensions/mock/src/main/java/org/codehaus/waffle/mock/PicoRegistrarMockery.java
Diff
Modified: trunk/.classpath (334 => 335)
--- trunk/.classpath 2007-11-03 12:29:36 UTC (rev 334) +++ trunk/.classpath 2007-11-03 13:41:24 UTC (rev 335) @@ -2,6 +2,7 @@ <classpath> <classpathentry kind="src" path="core/src/main/java"/> <classpathentry kind="src" path="core/src/test/java"/> + <classpathentry kind="src" path="extensions/mock/src/main/java"/> <classpathentry kind="src" path="extensions/taglib/src/main/java"/> <classpathentry kind="src" path="extensions/taglib/src/test/java"/> <classpathentry kind="src" path="extensions/taglib-acceptance/src/main/java"/>
Modified: trunk/core/src/main/java/org/codehaus/waffle/registrar/mock/AbstractRegistrarTestCase.java (334 => 335)
--- trunk/core/src/main/java/org/codehaus/waffle/registrar/mock/AbstractRegistrarTestCase.java 2007-11-03 12:29:36 UTC (rev 334) +++ trunk/core/src/main/java/org/codehaus/waffle/registrar/mock/AbstractRegistrarTestCase.java 2007-11-03 13:41:24 UTC (rev 335) @@ -26,6 +26,8 @@ /** * Built-in test for asserting Registrars are defined correctly. + * Concrete subclasses need to define method to create the ContextContainer + * and the Registrar. * * @author Michael Ward * @author Mauro Talevi @@ -37,12 +39,6 @@ private Mock mockHttpServletResponse = mock(HttpServletResponse.class); private Mock mockMessageResources = mock(MessageResources.class); - public void assertConfiguration(Class registrarClass) { - assertApplicationContext(registrarClass); - assertSessionContext(registrarClass); - assertRequestContext(registrarClass); - } - public Mock getMockServletContext() { return mockServletContext; } @@ -63,7 +59,13 @@ this.mockHttpServletResponse = mockHttpServletResponse; } - public void assertApplicationContext(Class customRegistrarClass) { + public void assertConfiguration(Class<?> registrarClass) { + assertApplicationContext(registrarClass); + assertSessionContext(registrarClass); + assertRequestContext(registrarClass); + } + + public void assertApplicationContext(Class<?> customRegistrarClass) { ServletContext servletContext = (ServletContext) mockServletContext.proxy(); ContextContainer container = createContextContainer(); @@ -77,7 +79,7 @@ container.validateComponentInstances(); // ensure dependencies are satisfied } - public void assertSessionContext(Class customRegistrarClass) { + public void assertSessionContext(Class<?> customRegistrarClass) { ServletContext servletContext = (ServletContext) mockServletContext.proxy(); HttpSession httpSession = (HttpSession) mockHttpSession.proxy(); @@ -94,7 +96,7 @@ container.validateComponentInstances(); // ensure dependencies are satisfied } - public void assertRequestContext(Class customRegistrarClass) { + public void assertRequestContext(Class<?> customRegistrarClass) { ServletContext servletContext = (ServletContext) mockServletContext.proxy(); HttpSession httpSession = (HttpSession) mockHttpSession.proxy(); HttpServletRequest request = (HttpServletRequest) mockHttpServletRequest.proxy();
Property changes: trunk/extensions/mock
Name: svn:ignore
+ target
Added: trunk/extensions/mock/pom.xml (0 => 335)
--- trunk/extensions/mock/pom.xml (rev 0) +++ trunk/extensions/mock/pom.xml 2007-11-03 13:41:24 UTC (rev 335) @@ -0,0 +1,30 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.codehaus.waffle</groupId> + <artifactId>waffle-parent</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + <packaging>jar</packaging> + <artifactId>waffle-mock</artifactId> + <name>Waffle Mock</name> + + <dependencies> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>waffle</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>org.jmock</groupId> + <artifactId>jmock-junit4</artifactId> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + </dependency> + </dependencies> + +</project>
Added: trunk/extensions/mock/src/main/java/org/codehaus/waffle/mock/AbstractRegistrarMockery.java (0 => 335)
--- trunk/extensions/mock/src/main/java/org/codehaus/waffle/mock/AbstractRegistrarMockery.java (rev 0) +++ trunk/extensions/mock/src/main/java/org/codehaus/waffle/mock/AbstractRegistrarMockery.java 2007-11-03 13:41:24 UTC (rev 335) @@ -0,0 +1,111 @@ +/***************************************************************************** + * Copyright (C) 2005,2006 Michael Ward * + * All rights reserved. * + * ------------------------------------------------------------------------- * + * The software in this package is published under the terms of the BSD * + * style license a copy of which has been included with this distribution in * + * the LICENSE.txt file. * + * * + * Original code by: Michael Ward * + *****************************************************************************/ +package org.codehaus.waffle.mock; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.codehaus.waffle.context.ContextContainer; +import org.codehaus.waffle.context.ContextLevel; +import org.codehaus.waffle.i18n.MessageResources; +import org.codehaus.waffle.registrar.Registrar; +import org.codehaus.waffle.registrar.RegistrarAssistant; +import org.jmock.Mockery; + +/** + * Abstract Mockery for asserting Registrars are defined correctly. + * Concrete subclasses need to define method to create the ContextContainer + * and the Registrar. + * + * @author Michael Ward + * @author Mauro Talevi + */ +public abstract class AbstractRegistrarMockery extends Mockery { + + private ServletContext servletContext = mock(ServletContext.class); + private HttpSession httpSession = mock(HttpSession.class); + private HttpServletRequest httpServletRequest = mock(HttpServletRequest.class); + private HttpServletResponse httpServletResponse = mock(HttpServletResponse.class); + private MessageResources messageResources = mock(MessageResources.class); + + public ServletContext mockServletContext() { + return servletContext; + } + + public HttpSession mockHttpSession() { + return httpSession; + } + + public HttpServletRequest mockHttpServletRequest() { + return httpServletRequest; + } + + public HttpServletResponse mockHttpServletResponse() { + return httpServletResponse; + } + + public void assertConfiguration(Class<?> registrarClass) { + assertApplicationContext(registrarClass); + assertSessionContext(registrarClass); + assertRequestContext(registrarClass); + } + + public void assertApplicationContext(Class<?> registrarClass) { + ContextContainer container = createContextContainer(); + container.registerComponentInstance(servletContext); + container.registerComponentInstance(messageResources); + Registrar registrar = createRegistrar(container); + + RegistrarAssistant registrarAssistant = new RegistrarAssistant(registrarClass); + registrarAssistant.executeDelegatingRegistrar(registrar, ContextLevel.APPLICATION); + + container.validateComponentInstances(); // ensure dependencies are satisfied + } + + public void assertSessionContext(Class<?> registrarClass) { + ContextContainer container = createContextContainer(); + container.registerComponentInstance(servletContext); + container.registerComponentInstance(httpSession); + container.registerComponentInstance(messageResources); + Registrar registrar = createRegistrar(container); + + RegistrarAssistant registrarAssistant = new RegistrarAssistant(registrarClass); + registrarAssistant.executeDelegatingRegistrar(registrar, ContextLevel.APPLICATION); + registrarAssistant.executeDelegatingRegistrar(registrar, ContextLevel.SESSION); + + container.validateComponentInstances(); // ensure dependencies are satisfied + } + + public void assertRequestContext(Class<?> customRegistrarClass) { + + ContextContainer container = createContextContainer(); + container.registerComponentInstance(servletContext); + container.registerComponentInstance(httpSession); + container.registerComponentInstance(httpServletRequest); + container.registerComponentInstance(httpServletResponse); + container.registerComponentInstance(messageResources); + Registrar registrar = createRegistrar(container); + + RegistrarAssistant registrarAssistant = new RegistrarAssistant(customRegistrarClass); + registrarAssistant.executeDelegatingRegistrar(registrar, ContextLevel.APPLICATION); + registrarAssistant.executeDelegatingRegistrar(registrar, ContextLevel.SESSION); + registrarAssistant.executeDelegatingRegistrar(registrar, ContextLevel.REQUEST); + + container.validateComponentInstances(); // ensure dependencies are satisfied + } + + protected abstract ContextContainer createContextContainer(); + + protected abstract Registrar createRegistrar(ContextContainer container); + +}
Added: trunk/extensions/mock/src/main/java/org/codehaus/waffle/mock/PicoRegistrarMockery.java (0 => 335)
--- trunk/extensions/mock/src/main/java/org/codehaus/waffle/mock/PicoRegistrarMockery.java (rev 0) +++ trunk/extensions/mock/src/main/java/org/codehaus/waffle/mock/PicoRegistrarMockery.java 2007-11-03 13:41:24 UTC (rev 335) @@ -0,0 +1,24 @@ +package org.codehaus.waffle.mock; + +import org.picocontainer.MutablePicoContainer; + +import org.codehaus.waffle.context.ContextContainer; +import org.codehaus.waffle.context.pico.PicoContextContainer; +import org.codehaus.waffle.registrar.Registrar; +import org.codehaus.waffle.registrar.pico.PicoRegistrar; + +/** + * Registrar Mockery that uses PicoContainer as the ContextContainer + * + * @author Mauro Talevi + */ +public abstract class PicoRegistrarMockery extends AbstractRegistrarMockery { + + protected ContextContainer createContextContainer() { + return new PicoContextContainer(); + } + + protected Registrar createRegistrar(ContextContainer container) { + return new PicoRegistrar((MutablePicoContainer) container.getDelegate()); + } +}
Modified: trunk/pom.xml (334 => 335)
--- trunk/pom.xml 2007-11-03 12:29:36 UTC (rev 334) +++ trunk/pom.xml 2007-11-03 13:41:24 UTC (rev 335) @@ -13,8 +13,9 @@ <modules> <module>core</module> + <module>extensions/mock</module> + <module>extensions/taglib</module> <module>extensions/webcontainer</module> - <module>extensions/taglib</module> </modules> <dependencyManagement>
To unsubscribe from this list please visit:
