Title: [waffle-scm] [335] trunk: Added waffle-mock extension module with Abstract/PicoRegistrarMockery to mirror Abstract/PicoRegistrarTestCase.
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

Added Paths

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:

http://xircles.codehaus.org/manage_email

Reply via email to