You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2006/11/23 02:49:48 UTC

svn commit: r478428 [2/3] - in /tapestry/tapestry5/tapestry-core/trunk/src: main/java/org/apache/tapestry/internal/test/ main/java/org/apache/tapestry/test/ test/java/org/apache/tapestry/internal/bindings/ test/java/org/apache/tapestry/internal/service...

Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ComponentLifecycleMethodWorkerTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ComponentLifecycleMethodWorkerTest.java?view=diff&rev=478428&r1=478427&r2=478428
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ComponentLifecycleMethodWorkerTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ComponentLifecycleMethodWorkerTest.java Wed Nov 22 17:49:47 2006
@@ -12,271 +12,269 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.tapestry.internal.services;
-
+package org.apache.tapestry.internal.services;
+
 import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newList;
-
-import java.lang.reflect.Modifier;
-import java.util.List;
-
-import org.apache.tapestry.MarkupWriter;
-import org.apache.tapestry.annotations.SetupRender;
-import org.apache.tapestry.model.MutableComponentModel;
-import org.apache.tapestry.services.ClassTransformation;
-import org.apache.tapestry.services.ComponentClassTransformWorker;
-import org.apache.tapestry.services.MethodSignature;
-import org.apache.tapestry.services.TransformConstants;
-import org.apache.tapestry.test.TapestryTestCase;
-import org.testng.annotations.Test;
-
-/**
- * 
- */
-public class ComponentLifecycleMethodWorkerTest extends TapestryTestCase
-{
-    @Test
-    public void no_methods_with_annotation()
-    {
-        ClassTransformation tf = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-
-        List<MethodSignature> sigs = newList();
-
-        train_findMethodsWithAnnotation(tf, SetupRender.class, sigs);
-
-        replay();
-
-        ComponentClassTransformWorker worker = new ComponentLifecycleMethodWorker(
-                TransformConstants.SETUP_RENDER_SIGNATURE, SetupRender.class, false);
-
-        worker.transform(tf, model);
-
-        verify();
-    }
-
-    @Test
-    public void void_method()
-    {
-        ClassTransformation tf = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-
-        List<MethodSignature> sigs = newList();
-
-        sigs.add(new MethodSignature("aMethod"));
-
-        train_findMethodsWithAnnotation(tf, SetupRender.class, sigs);
-
-        train_isRootClass(model, false);
-
-        train_addMethod(
-                tf,
-                TransformConstants.SETUP_RENDER_SIGNATURE,
-                "{ super.setupRender($$); if ($2.isAborted()) return;  aMethod(); }");
-
-        replay();
-
-        ComponentClassTransformWorker worker = new ComponentLifecycleMethodWorker(
-                TransformConstants.SETUP_RENDER_SIGNATURE, SetupRender.class, false);
-
-        worker.transform(tf, model);
-
-        verify();
-    }
-
-    @Test
-    public void multiple_methods_reverse_order()
-    {
-        ClassTransformation tf = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-
-        List<MethodSignature> sigs = newList();
-
-        sigs.add(new MethodSignature("aMethod"));
-        sigs.add(new MethodSignature("bMethod"));
-
-        train_findMethodsWithAnnotation(tf, SetupRender.class, sigs);
-
-        train_isRootClass(model, false);
-
-        train_addMethod(
-                tf,
-                TransformConstants.SETUP_RENDER_SIGNATURE,
-                "{ bMethod(); aMethod(); super.setupRender($$); }");
-
-        replay();
-
-        ComponentClassTransformWorker worker = new ComponentLifecycleMethodWorker(
-                TransformConstants.SETUP_RENDER_SIGNATURE, SetupRender.class, true);
-
-        worker.transform(tf, model);
-
-        verify();
-    }
-
-    @Test
-    public void multiple_methods_parent_class_reverse_order()
-    {
-        ClassTransformation tf = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-
-        List<MethodSignature> sigs = newList();
-
-        sigs.add(new MethodSignature("aMethod"));
-        sigs.add(new MethodSignature("bMethod"));
-
-        train_findMethodsWithAnnotation(tf, SetupRender.class, sigs);
-        train_isRootClass(model, true);
-
-        train_addMethod(tf, TransformConstants.SETUP_RENDER_SIGNATURE, "{ bMethod(); aMethod(); }");
-
-        replay();
-
-        ComponentClassTransformWorker worker = new ComponentLifecycleMethodWorker(
-                TransformConstants.SETUP_RENDER_SIGNATURE, SetupRender.class, true);
-
-        worker.transform(tf, model);
-
-        verify();
-
-    }
-
-    @Test
-    public void method_in_base_class()
-    {
-        ClassTransformation tf = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-
-        train_isRootClass(model, true);
-
-        List<MethodSignature> sigs = newList();
-
-        sigs.add(new MethodSignature("aMethod"));
-
-        train_findMethodsWithAnnotation(tf, SetupRender.class, sigs);
-
-        train_addMethod(tf, TransformConstants.SETUP_RENDER_SIGNATURE, "{ aMethod(); }");
-
-        replay();
-
-        ComponentClassTransformWorker worker = new ComponentLifecycleMethodWorker(
-                TransformConstants.SETUP_RENDER_SIGNATURE, SetupRender.class, false);
-
-        worker.transform(tf, model);
-
-        verify();
-
-    }
-
-    protected final void train_isRootClass(MutableComponentModel model, boolean isRootClass)
-    {
-        model.isRootClass();
-        setReturnValue(isRootClass);
-    }
-
-    @Test
-    public void method_with_markup_writer_parameter()
-    {
-        ClassTransformation tf = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-
-        List<MethodSignature> sigs = newList();
-
-        sigs.add(new MethodSignature(Modifier.PUBLIC, "void", "aMethod", new String[]
-        { MarkupWriter.class.getName() }, null));
-
-        train_findMethodsWithAnnotation(tf, SetupRender.class, sigs);
-
-        train_isRootClass(model, false);
-
-        train_addMethod(
-                tf,
-                TransformConstants.SETUP_RENDER_SIGNATURE,
-                "{ super.setupRender($$); if ($2.isAborted()) return; aMethod($1); }");
-
-        replay();
-
-        ComponentClassTransformWorker worker = new ComponentLifecycleMethodWorker(
-                TransformConstants.SETUP_RENDER_SIGNATURE, SetupRender.class, false);
-
-        worker.transform(tf, model);
-
-        verify();
-
-    }
-
-    @Test
-    public void nonvoid_method()
-    {
-        ClassTransformation tf = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-
-        List<MethodSignature> sigs = newList();
-
-        sigs.add(new MethodSignature(Modifier.PROTECTED, "boolean", "aMethod", null, null));
-
-        train_findMethodsWithAnnotation(tf, SetupRender.class, sigs);
-
-        train_getClassName(tf, "biff.Baz");
-
-        train_isRootClass(model, false);
-
-        train_addMethod(
-                tf,
-                TransformConstants.SETUP_RENDER_SIGNATURE,
-                "{",
-                "super.setupRender($$);",
-                "if ($2.isAborted()) return; ",
-                "if ($2.storeResult(($w) aMethod(), \"biff.Baz.aMethod()\")) return;",
-                "}");
-
-        replay();
-
-        ComponentClassTransformWorker worker = new ComponentLifecycleMethodWorker(
-                TransformConstants.SETUP_RENDER_SIGNATURE, SetupRender.class, false);
-
-        worker.transform(tf, model);
-
-        verify();
-    }
-
-    @Test
-    public void multiple_methods()
-    {
-        ClassTransformation tf = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-
-        List<MethodSignature> sigs = newList();
-
-        sigs.add(new MethodSignature(Modifier.PROTECTED, "boolean", "aMethod", null, null));
-        sigs.add(new MethodSignature(Modifier.PUBLIC, "void", "bMethod", new String[]
-        { MarkupWriter.class.getName() }, null));
-
-        train_findMethodsWithAnnotation(tf, SetupRender.class, sigs);
-        train_isRootClass(model, false);
-        train_getClassName(tf, "foo.Bar");
-
-        train_addMethod(
-                tf,
-                TransformConstants.SETUP_RENDER_SIGNATURE,
-                "{ super.setupRender($$);",
-                "if ($2.isAborted()) return;",
-                "if ($2.storeResult(($w) aMethod(), \"foo.Bar.aMethod()\")) return;",
-                "bMethod($1); }");
-
-        replay();
-
-        ComponentClassTransformWorker worker = new ComponentLifecycleMethodWorker(
-                TransformConstants.SETUP_RENDER_SIGNATURE, SetupRender.class, false);
-
-        worker.transform(tf, model);
-
-        verify();
-    }
-
-    protected final void train_getClassName(ClassTransformation transformation, String className)
-    {
-        transformation.getClassName();
-        setReturnValue(className);
-    }
-
-}
+
+import java.lang.reflect.Modifier;
+import java.util.List;
+
+import org.apache.tapestry.MarkupWriter;
+import org.apache.tapestry.annotations.SetupRender;
+import org.apache.tapestry.model.MutableComponentModel;
+import org.apache.tapestry.services.ClassTransformation;
+import org.apache.tapestry.services.ComponentClassTransformWorker;
+import org.apache.tapestry.services.MethodSignature;
+import org.apache.tapestry.services.TransformConstants;
+import org.apache.tapestry.test.TapestryTestCase;
+import org.testng.annotations.Test;
+
+/**
+ * 
+ */
+public class ComponentLifecycleMethodWorkerTest extends TapestryTestCase
+{
+    @Test
+    public void no_methods_with_annotation()
+    {
+        ClassTransformation tf = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+
+        List<MethodSignature> sigs = newList();
+
+        train_findMethodsWithAnnotation(tf, SetupRender.class, sigs);
+
+        replay();
+
+        ComponentClassTransformWorker worker = new ComponentLifecycleMethodWorker(
+                TransformConstants.SETUP_RENDER_SIGNATURE, SetupRender.class, false);
+
+        worker.transform(tf, model);
+
+        verify();
+    }
+
+    @Test
+    public void void_method()
+    {
+        ClassTransformation tf = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+
+        List<MethodSignature> sigs = newList();
+
+        sigs.add(new MethodSignature("aMethod"));
+
+        train_findMethodsWithAnnotation(tf, SetupRender.class, sigs);
+
+        train_isRootClass(model, false);
+
+        train_addMethod(
+                tf,
+                TransformConstants.SETUP_RENDER_SIGNATURE,
+                "{ super.setupRender($$); if ($2.isAborted()) return;  aMethod(); }");
+
+        replay();
+
+        ComponentClassTransformWorker worker = new ComponentLifecycleMethodWorker(
+                TransformConstants.SETUP_RENDER_SIGNATURE, SetupRender.class, false);
+
+        worker.transform(tf, model);
+
+        verify();
+    }
+
+    @Test
+    public void multiple_methods_reverse_order()
+    {
+        ClassTransformation tf = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+
+        List<MethodSignature> sigs = newList();
+
+        sigs.add(new MethodSignature("aMethod"));
+        sigs.add(new MethodSignature("bMethod"));
+
+        train_findMethodsWithAnnotation(tf, SetupRender.class, sigs);
+
+        train_isRootClass(model, false);
+
+        train_addMethod(
+                tf,
+                TransformConstants.SETUP_RENDER_SIGNATURE,
+                "{ bMethod(); aMethod(); super.setupRender($$); }");
+
+        replay();
+
+        ComponentClassTransformWorker worker = new ComponentLifecycleMethodWorker(
+                TransformConstants.SETUP_RENDER_SIGNATURE, SetupRender.class, true);
+
+        worker.transform(tf, model);
+
+        verify();
+    }
+
+    @Test
+    public void multiple_methods_parent_class_reverse_order()
+    {
+        ClassTransformation tf = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+
+        List<MethodSignature> sigs = newList();
+
+        sigs.add(new MethodSignature("aMethod"));
+        sigs.add(new MethodSignature("bMethod"));
+
+        train_findMethodsWithAnnotation(tf, SetupRender.class, sigs);
+        train_isRootClass(model, true);
+
+        train_addMethod(tf, TransformConstants.SETUP_RENDER_SIGNATURE, "{ bMethod(); aMethod(); }");
+
+        replay();
+
+        ComponentClassTransformWorker worker = new ComponentLifecycleMethodWorker(
+                TransformConstants.SETUP_RENDER_SIGNATURE, SetupRender.class, true);
+
+        worker.transform(tf, model);
+
+        verify();
+
+    }
+
+    @Test
+    public void method_in_base_class()
+    {
+        ClassTransformation tf = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+
+        train_isRootClass(model, true);
+
+        List<MethodSignature> sigs = newList();
+
+        sigs.add(new MethodSignature("aMethod"));
+
+        train_findMethodsWithAnnotation(tf, SetupRender.class, sigs);
+
+        train_addMethod(tf, TransformConstants.SETUP_RENDER_SIGNATURE, "{ aMethod(); }");
+
+        replay();
+
+        ComponentClassTransformWorker worker = new ComponentLifecycleMethodWorker(
+                TransformConstants.SETUP_RENDER_SIGNATURE, SetupRender.class, false);
+
+        worker.transform(tf, model);
+
+        verify();
+
+    }
+
+    protected final void train_isRootClass(MutableComponentModel model, boolean isRootClass)
+    {
+        expect(model.isRootClass()).andReturn(isRootClass);
+    }
+
+    @Test
+    public void method_with_markup_writer_parameter()
+    {
+        ClassTransformation tf = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+
+        List<MethodSignature> sigs = newList();
+
+        sigs.add(new MethodSignature(Modifier.PUBLIC, "void", "aMethod", new String[]
+        { MarkupWriter.class.getName() }, null));
+
+        train_findMethodsWithAnnotation(tf, SetupRender.class, sigs);
+
+        train_isRootClass(model, false);
+
+        train_addMethod(
+                tf,
+                TransformConstants.SETUP_RENDER_SIGNATURE,
+                "{ super.setupRender($$); if ($2.isAborted()) return; aMethod($1); }");
+
+        replay();
+
+        ComponentClassTransformWorker worker = new ComponentLifecycleMethodWorker(
+                TransformConstants.SETUP_RENDER_SIGNATURE, SetupRender.class, false);
+
+        worker.transform(tf, model);
+
+        verify();
+
+    }
+
+    @Test
+    public void nonvoid_method()
+    {
+        ClassTransformation tf = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+
+        List<MethodSignature> sigs = newList();
+
+        sigs.add(new MethodSignature(Modifier.PROTECTED, "boolean", "aMethod", null, null));
+
+        train_findMethodsWithAnnotation(tf, SetupRender.class, sigs);
+
+        train_getClassName(tf, "biff.Baz");
+
+        train_isRootClass(model, false);
+
+        train_addMethod(
+                tf,
+                TransformConstants.SETUP_RENDER_SIGNATURE,
+                "{",
+                "super.setupRender($$);",
+                "if ($2.isAborted()) return; ",
+                "if ($2.storeResult(($w) aMethod(), \"biff.Baz.aMethod()\")) return;",
+                "}");
+
+        replay();
+
+        ComponentClassTransformWorker worker = new ComponentLifecycleMethodWorker(
+                TransformConstants.SETUP_RENDER_SIGNATURE, SetupRender.class, false);
+
+        worker.transform(tf, model);
+
+        verify();
+    }
+
+    @Test
+    public void multiple_methods()
+    {
+        ClassTransformation tf = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+
+        List<MethodSignature> sigs = newList();
+
+        sigs.add(new MethodSignature(Modifier.PROTECTED, "boolean", "aMethod", null, null));
+        sigs.add(new MethodSignature(Modifier.PUBLIC, "void", "bMethod", new String[]
+        { MarkupWriter.class.getName() }, null));
+
+        train_findMethodsWithAnnotation(tf, SetupRender.class, sigs);
+        train_isRootClass(model, false);
+        train_getClassName(tf, "foo.Bar");
+
+        train_addMethod(
+                tf,
+                TransformConstants.SETUP_RENDER_SIGNATURE,
+                "{ super.setupRender($$);",
+                "if ($2.isAborted()) return;",
+                "if ($2.storeResult(($w) aMethod(), \"foo.Bar.aMethod()\")) return;",
+                "bMethod($1); }");
+
+        replay();
+
+        ComponentClassTransformWorker worker = new ComponentLifecycleMethodWorker(
+                TransformConstants.SETUP_RENDER_SIGNATURE, SetupRender.class, false);
+
+        worker.transform(tf, model);
+
+        verify();
+    }
+
+    protected final void train_getClassName(ClassTransformation transformation, String className)
+    {
+        expect(transformation.getClassName()).andReturn(className);
+    }
+
+}

Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InfrastructureImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InfrastructureImplTest.java?view=diff&rev=478428&r1=478427&r2=478428
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InfrastructureImplTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InfrastructureImplTest.java Wed Nov 22 17:49:47 2006
@@ -12,202 +12,201 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.tapestry.internal.services;
-
+package org.apache.tapestry.internal.services;
+
 import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newMap;
-
-import java.util.Map;
-
-import org.apache.tapestry.internal.test.InternalBaseTestCase;
-import org.apache.tapestry.ioc.ObjectProvider;
-import org.apache.tapestry.ioc.ServiceLocator;
-import org.apache.tapestry.services.Infrastructure;
-import org.apache.tapestry.services.InfrastructureManager;
-import org.testng.annotations.Test;
-
-/**
- * 
- */
-public class InfrastructureImplTest extends InternalBaseTestCase
-{
-    @Test
-    public void mode_not_set_when_resolution_requested()
-    {
-        InfrastructureManager manager = newInfrastructureManager();
-        ServiceLocator locator = newServiceLocator();
-
-        replay();
-
-        Infrastructure infra = new InfrastructureImpl(manager);
-
-        // Do not assume that infra and provider are the same;
-        // that's an implementation choice.
-
-        ObjectProvider provider = infra.getObjectProvider();
-
-        try
-        {
-            provider.provide("expression", Runnable.class, locator);
-            unreachable();
-        }
-        catch (RuntimeException ex)
-        {
-            assertEquals(ex.getMessage(), ServicesMessages.infrastructureModeNotSet());
-        }
-
-        verify();
-    }
-
-    protected final InfrastructureManager newInfrastructureManager()
-    {
-        return newMock(InfrastructureManager.class);
-    }
-
-    @Test
-    public void resolve_object_within_mode()
-    {
-        InfrastructureManager manager = newInfrastructureManager();
-        ServiceLocator locator = newServiceLocator();
-        Runnable r = newRunnable();
-
-        Map<String, Object> configuration = newMap();
-        configuration.put("myrunnable", r);
-
-        train_getContributionsForMode(manager, "papyrus", configuration);
-
-        replay();
-
-        Infrastructure infra = new InfrastructureImpl(manager);
-
-        infra.setMode("papyrus");
-
-        // Do not assume that infra and provider are the same;
-        // that's an implementation choice.
-
-        ObjectProvider provider = infra.getObjectProvider();
-
-        Runnable actual = provider.provide("myrunnable", Runnable.class, locator);
-
-        assertSame(actual, r);
-
-        verify();
-    }
-
-    /** Check that the manager is only consulted once. */
-    @Test
-    public void configuration_is_cached()
-    {
-        InfrastructureManager manager = newInfrastructureManager();
-        ServiceLocator locator = newServiceLocator();
-        Runnable r = newRunnable();
-
-        Map<String, Object> configuration = newMap();
-        configuration.put("myrunnable", r);
-
-        train_getContributionsForMode(manager, "clay", configuration);
-
-        replay();
-
-        Infrastructure infra = new InfrastructureImpl(manager);
-
-        infra.setMode("clay");
-
-        // Do not assume that infra and provider are the same;
-        // that's an implementation choice.
-
-        ObjectProvider provider = infra.getObjectProvider();
-
-        Runnable actual1 = provider.provide("myrunnable", Runnable.class, locator);
-        Runnable actual2 = provider.provide("myrunnable", Runnable.class, locator);
-
-        assertSame(actual1, r);
-        assertSame(actual2, r);
-
-        verify();
-    }
-
-    @Test
-    public void expression_not_found_in_configuration()
-    {
-        InfrastructureManager manager = newInfrastructureManager();
-        ServiceLocator locator = newServiceLocator();
-
-        Map<String, Object> configuration = newMap();
-
-        configuration.put("fred", this);
-        configuration.put("barney", this);
-        configuration.put("wilma", this);
-
-        train_getContributionsForMode(manager, "clay", configuration);
-
-        replay();
-
-        Infrastructure infra = new InfrastructureImpl(manager);
-
-        infra.setMode("clay");
-
-        ObjectProvider provider = infra.getObjectProvider();
-
-        try
-        {
-            provider.provide("someexpression", Runnable.class, locator);
-            unreachable();
-        }
-        catch (RuntimeException ex)
-        {
-            assertEquals(
-                    ex.getMessage(),
-                    "No infrastructure property 'someexpression' has been configured. Configured properties are: barney, fred, wilma.");
-        }
-
-        verify();
-
-    }
-
-    @Test
-    public void requested_type_not_compatible_with_object()
-    {
-        InfrastructureManager manager = newInfrastructureManager();
-        ServiceLocator locator = newServiceLocator();
-        Runnable r = newRunnable();
-
-        Map<String, Object> configuration = newMap();
-        configuration.put("myrunnable", r);
-
-        train_getContributionsForMode(manager, "papyrus", configuration);
-
-        replay();
-
-        Infrastructure infra = new InfrastructureImpl(manager);
-
-        infra.setMode("papyrus");
-
-        // Do not assume that infra and provider are the same;
-        // that's an implementation choice.
-
-        ObjectProvider provider = infra.getObjectProvider();
-
-        try
-        {
-            provider.provide("myrunnable", UpdateListenerHub.class, locator);
-            unreachable();
-        }
-        catch (RuntimeException ex)
-        {
-            assertEquals(ex.getMessage(), ServicesMessages.infrastructurePropertyWrongType(
-                    "myrunnable",
-                    r,
-                    UpdateListenerHub.class));
-        }
-
-        verify();
-
-    }
-
-    protected final void train_getContributionsForMode(InfrastructureManager manager, String mode,
-            Map<String, Object> configuration)
-    {
-        manager.getContributionsForMode(mode);
-        setReturnValue(configuration);
-    }
-}
+
+import java.util.Map;
+
+import org.apache.tapestry.internal.test.InternalBaseTestCase;
+import org.apache.tapestry.ioc.ObjectProvider;
+import org.apache.tapestry.ioc.ServiceLocator;
+import org.apache.tapestry.services.Infrastructure;
+import org.apache.tapestry.services.InfrastructureManager;
+import org.testng.annotations.Test;
+
+/**
+ * 
+ */
+public class InfrastructureImplTest extends InternalBaseTestCase
+{
+    @Test
+    public void mode_not_set_when_resolution_requested()
+    {
+        InfrastructureManager manager = newInfrastructureManager();
+        ServiceLocator locator = newServiceLocator();
+
+        replay();
+
+        Infrastructure infra = new InfrastructureImpl(manager);
+
+        // Do not assume that infra and provider are the same;
+        // that's an implementation choice.
+
+        ObjectProvider provider = infra.getObjectProvider();
+
+        try
+        {
+            provider.provide("expression", Runnable.class, locator);
+            unreachable();
+        }
+        catch (RuntimeException ex)
+        {
+            assertEquals(ex.getMessage(), ServicesMessages.infrastructureModeNotSet());
+        }
+
+        verify();
+    }
+
+    protected final InfrastructureManager newInfrastructureManager()
+    {
+        return newMock(InfrastructureManager.class);
+    }
+
+    @Test
+    public void resolve_object_within_mode()
+    {
+        InfrastructureManager manager = newInfrastructureManager();
+        ServiceLocator locator = newServiceLocator();
+        Runnable r = newRunnable();
+
+        Map<String, Object> configuration = newMap();
+        configuration.put("myrunnable", r);
+
+        train_getContributionsForMode(manager, "papyrus", configuration);
+
+        replay();
+
+        Infrastructure infra = new InfrastructureImpl(manager);
+
+        infra.setMode("papyrus");
+
+        // Do not assume that infra and provider are the same;
+        // that's an implementation choice.
+
+        ObjectProvider provider = infra.getObjectProvider();
+
+        Runnable actual = provider.provide("myrunnable", Runnable.class, locator);
+
+        assertSame(actual, r);
+
+        verify();
+    }
+
+    /** Check that the manager is only consulted once. */
+    @Test
+    public void configuration_is_cached()
+    {
+        InfrastructureManager manager = newInfrastructureManager();
+        ServiceLocator locator = newServiceLocator();
+        Runnable r = newRunnable();
+
+        Map<String, Object> configuration = newMap();
+        configuration.put("myrunnable", r);
+
+        train_getContributionsForMode(manager, "clay", configuration);
+
+        replay();
+
+        Infrastructure infra = new InfrastructureImpl(manager);
+
+        infra.setMode("clay");
+
+        // Do not assume that infra and provider are the same;
+        // that's an implementation choice.
+
+        ObjectProvider provider = infra.getObjectProvider();
+
+        Runnable actual1 = provider.provide("myrunnable", Runnable.class, locator);
+        Runnable actual2 = provider.provide("myrunnable", Runnable.class, locator);
+
+        assertSame(actual1, r);
+        assertSame(actual2, r);
+
+        verify();
+    }
+
+    @Test
+    public void expression_not_found_in_configuration()
+    {
+        InfrastructureManager manager = newInfrastructureManager();
+        ServiceLocator locator = newServiceLocator();
+
+        Map<String, Object> configuration = newMap();
+
+        configuration.put("fred", this);
+        configuration.put("barney", this);
+        configuration.put("wilma", this);
+
+        train_getContributionsForMode(manager, "clay", configuration);
+
+        replay();
+
+        Infrastructure infra = new InfrastructureImpl(manager);
+
+        infra.setMode("clay");
+
+        ObjectProvider provider = infra.getObjectProvider();
+
+        try
+        {
+            provider.provide("someexpression", Runnable.class, locator);
+            unreachable();
+        }
+        catch (RuntimeException ex)
+        {
+            assertEquals(
+                    ex.getMessage(),
+                    "No infrastructure property 'someexpression' has been configured. Configured properties are: barney, fred, wilma.");
+        }
+
+        verify();
+
+    }
+
+    @Test
+    public void requested_type_not_compatible_with_object()
+    {
+        InfrastructureManager manager = newInfrastructureManager();
+        ServiceLocator locator = newServiceLocator();
+        Runnable r = newRunnable();
+
+        Map<String, Object> configuration = newMap();
+        configuration.put("myrunnable", r);
+
+        train_getContributionsForMode(manager, "papyrus", configuration);
+
+        replay();
+
+        Infrastructure infra = new InfrastructureImpl(manager);
+
+        infra.setMode("papyrus");
+
+        // Do not assume that infra and provider are the same;
+        // that's an implementation choice.
+
+        ObjectProvider provider = infra.getObjectProvider();
+
+        try
+        {
+            provider.provide("myrunnable", UpdateListenerHub.class, locator);
+            unreachable();
+        }
+        catch (RuntimeException ex)
+        {
+            assertEquals(ex.getMessage(), ServicesMessages.infrastructurePropertyWrongType(
+                    "myrunnable",
+                    r,
+                    UpdateListenerHub.class));
+        }
+
+        verify();
+
+    }
+
+    protected final void train_getContributionsForMode(InfrastructureManager manager, String mode,
+            Map<String, Object> configuration)
+    {
+        expect(manager.getContributionsForMode(mode)).andReturn(configuration);
+    }
+}

Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InjectWorkerTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InjectWorkerTest.java?view=diff&rev=478428&r1=478427&r2=478428
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InjectWorkerTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InjectWorkerTest.java Wed Nov 22 17:49:47 2006
@@ -12,140 +12,138 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.tapestry.internal.services;
-
-import org.apache.tapestry.annotations.Inject;
-import org.apache.tapestry.internal.test.InternalBaseTestCase;
-import org.apache.tapestry.ioc.ObjectProvider;
-import org.apache.tapestry.ioc.ServiceLocator;
-import org.apache.tapestry.model.MutableComponentModel;
-import org.apache.tapestry.services.ClassTransformation;
+package org.apache.tapestry.internal.services;
+
+import org.apache.tapestry.annotations.Inject;
+import org.apache.tapestry.internal.test.InternalBaseTestCase;
+import org.apache.tapestry.ioc.ObjectProvider;
+import org.apache.tapestry.ioc.ServiceLocator;
+import org.apache.tapestry.model.MutableComponentModel;
+import org.apache.tapestry.services.ClassTransformation;
 import org.apache.tapestry.services.InjectionProvider;
-import org.apache.tapestry.services.WebRequest;
-import org.testng.annotations.Test;
-
-/**
- * 
- */
-public class InjectWorkerTest extends InternalBaseTestCase
-{
-
-    private static final String WEBREQUEST_CLASS_NAME = WebRequest.class.getName();
-
-    @Test
-    public void annotation_has_value()
-    {
-        ObjectProvider provider = newObjectProvider();
-        ServiceLocator locator = newServiceLocator();
-        InjectionProvider ip = newMock(InjectionProvider.class);
-        Inject annotation = newMock(Inject.class);
-        ClassTransformation ct = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-        WebRequest injected = newWebRequest();
-
-        train_findFieldsWithAnnotation(ct, Inject.class, "myfield");
-        train_getFieldAnnotation(ct, "myfield", Inject.class, annotation);
-
-        train_value(annotation, "foo:Bar");
-
-        train_getFieldType(ct, "myfield", WEBREQUEST_CLASS_NAME);
-        train_toClass(ct, WEBREQUEST_CLASS_NAME, WebRequest.class);
-
-        train_provide(provider, "foo:Bar", WebRequest.class, locator, injected);
-
-        ct.injectField("myfield", injected);
-
-        ct.claimField("myfield", annotation);
-
-        replay();
-
-        InjectWorker worker = new InjectWorker(provider, locator, ip);
-
-        worker.transform(ct, model);
-
-        verify();
-    }
-
-    @Test
-    public void no_value_for_annotation()
-    {
-        ObjectProvider provider = newObjectProvider();
-        ServiceLocator locator = newServiceLocator();
-        InjectionProvider ip = newMock(InjectionProvider.class);
-        Inject annotation = newMock(Inject.class);
-        ClassTransformation ct = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-
-        train_findFieldsWithAnnotation(ct, Inject.class, "myfield");
-        train_getFieldAnnotation(ct, "myfield", Inject.class, annotation);
-
-        train_value(annotation, "");
-
-        train_getFieldType(ct, "myfield", WEBREQUEST_CLASS_NAME);
-
-        train_provideInjection(ip, "myfield", WEBREQUEST_CLASS_NAME, locator, ct, model, true);
-
-        ct.claimField("myfield", annotation);
-
-        replay();
-
-        InjectWorker worker = new InjectWorker(provider, locator, ip);
-
-        worker.transform(ct, model);
-
-        verify();
-    }
-
-    @Test
-    public void anonymous_injection_not_provided()
-    {
-        ObjectProvider provider = newObjectProvider();
-        ServiceLocator locator = newServiceLocator();
-        InjectionProvider ip = newMock(InjectionProvider.class);
-        Inject annotation = newMock(Inject.class);
-        ClassTransformation ct = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-
-        train_findFieldsWithAnnotation(ct, Inject.class, "myfield");
-        train_getFieldAnnotation(ct, "myfield", Inject.class, annotation);
-
-        train_value(annotation, "");
-
-        train_getFieldType(ct, "myfield", WEBREQUEST_CLASS_NAME);
-
-        train_provideInjection(ip, "myfield", WEBREQUEST_CLASS_NAME, locator, ct, model, false);
-
-        train_getClassName(ct, "foo.Baz");
-
-        replay();
-
-        InjectWorker worker = new InjectWorker(provider, locator, ip);
-
-        try
-        {
-            worker.transform(ct, model);
-            unreachable();
-        }
-        catch (RuntimeException ex)
-        {
-            assertEquals(ex.getMessage(), ServicesMessages.noInjectionFound(
-                    "foo.Baz",
-                    "myfield",
-                    WEBREQUEST_CLASS_NAME));
-        }
-
-        verify();
-    }
-
-    protected void train_getClassName(ClassTransformation transformation, String className)
-    {
-        transformation.getClassName();
-        setReturnValue(className);
-    }
-
-    private void train_value(Inject annotation, String value)
-    {
-        annotation.value();
-        setReturnValue(value);
-    }
-}
+import org.apache.tapestry.services.WebRequest;
+import org.testng.annotations.Test;
+
+/**
+ * 
+ */
+public class InjectWorkerTest extends InternalBaseTestCase
+{
+
+    private static final String WEBREQUEST_CLASS_NAME = WebRequest.class.getName();
+
+    @Test
+    public void annotation_has_value()
+    {
+        ObjectProvider provider = newObjectProvider();
+        ServiceLocator locator = newServiceLocator();
+        InjectionProvider ip = newMock(InjectionProvider.class);
+        Inject annotation = newMock(Inject.class);
+        ClassTransformation ct = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+        WebRequest injected = newWebRequest();
+
+        train_findFieldsWithAnnotation(ct, Inject.class, "myfield");
+        train_getFieldAnnotation(ct, "myfield", Inject.class, annotation);
+
+        train_value(annotation, "foo:Bar");
+
+        train_getFieldType(ct, "myfield", WEBREQUEST_CLASS_NAME);
+        train_toClass(ct, WEBREQUEST_CLASS_NAME, WebRequest.class);
+
+        train_provide(provider, "foo:Bar", WebRequest.class, locator, injected);
+
+        ct.injectField("myfield", injected);
+
+        ct.claimField("myfield", annotation);
+
+        replay();
+
+        InjectWorker worker = new InjectWorker(provider, locator, ip);
+
+        worker.transform(ct, model);
+
+        verify();
+    }
+
+    @Test
+    public void no_value_for_annotation()
+    {
+        ObjectProvider provider = newObjectProvider();
+        ServiceLocator locator = newServiceLocator();
+        InjectionProvider ip = newMock(InjectionProvider.class);
+        Inject annotation = newMock(Inject.class);
+        ClassTransformation ct = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+
+        train_findFieldsWithAnnotation(ct, Inject.class, "myfield");
+        train_getFieldAnnotation(ct, "myfield", Inject.class, annotation);
+
+        train_value(annotation, "");
+
+        train_getFieldType(ct, "myfield", WEBREQUEST_CLASS_NAME);
+
+        train_provideInjection(ip, "myfield", WEBREQUEST_CLASS_NAME, locator, ct, model, true);
+
+        ct.claimField("myfield", annotation);
+
+        replay();
+
+        InjectWorker worker = new InjectWorker(provider, locator, ip);
+
+        worker.transform(ct, model);
+
+        verify();
+    }
+
+    @Test
+    public void anonymous_injection_not_provided()
+    {
+        ObjectProvider provider = newObjectProvider();
+        ServiceLocator locator = newServiceLocator();
+        InjectionProvider ip = newMock(InjectionProvider.class);
+        Inject annotation = newMock(Inject.class);
+        ClassTransformation ct = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+
+        train_findFieldsWithAnnotation(ct, Inject.class, "myfield");
+        train_getFieldAnnotation(ct, "myfield", Inject.class, annotation);
+
+        train_value(annotation, "");
+
+        train_getFieldType(ct, "myfield", WEBREQUEST_CLASS_NAME);
+
+        train_provideInjection(ip, "myfield", WEBREQUEST_CLASS_NAME, locator, ct, model, false);
+
+        train_getClassName(ct, "foo.Baz");
+
+        replay();
+
+        InjectWorker worker = new InjectWorker(provider, locator, ip);
+
+        try
+        {
+            worker.transform(ct, model);
+            unreachable();
+        }
+        catch (RuntimeException ex)
+        {
+            assertEquals(ex.getMessage(), ServicesMessages.noInjectionFound(
+                    "foo.Baz",
+                    "myfield",
+                    WEBREQUEST_CLASS_NAME));
+        }
+
+        verify();
+    }
+
+    protected void train_getClassName(ClassTransformation transformation, String className)
+    {
+        expect(transformation.getClassName()).andReturn(className);
+    }
+
+    private void train_value(Inject annotation, String value)
+    {
+        expect(annotation.value()).andReturn(value);
+    }
+}

Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/MixinWorkerTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/MixinWorkerTest.java?view=diff&rev=478428&r1=478427&r2=478428
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/MixinWorkerTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/MixinWorkerTest.java Wed Nov 22 17:49:47 2006
@@ -12,115 +12,113 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.tapestry.internal.services;
-
-import org.apache.tapestry.annotations.Mixin;
-import org.apache.tapestry.internal.test.InternalBaseTestCase;
-import org.apache.tapestry.model.MutableComponentModel;
-import org.apache.tapestry.services.ClassTransformation;
-import org.apache.tapestry.services.ComponentClassResolver;
-import org.apache.tapestry.services.TransformConstants;
-import org.testng.annotations.Test;
-
-public class MixinWorkerTest extends InternalBaseTestCase
-{
-    @Test
-    public void no_fields_with_mixin_annotation()
-    {
-        ComponentClassResolver resolver = newComponentClassResolver();
-        ClassTransformation transformation = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-
-        train_findFieldsWithAnnotation(transformation, Mixin.class);
-
-        replay();
-
-        new MixinWorker(resolver).transform(transformation, model);
-
-        verify();
-    }
-
-    @Test
-    public void field_with_explicit_type()
-    {
-        ComponentClassResolver resolver = newComponentClassResolver();
-        ClassTransformation transformation = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-        Mixin annotation = newMixin("Bar");
-
-        train_findFieldsWithAnnotation(transformation, Mixin.class, "fred");
-        train_getFieldAnnotation(transformation, "fred", Mixin.class, annotation);
-        train_getFieldType(transformation, "fred", "foo.bar.Baz");
-
-        train_resolveMixinTypeToClassName(resolver, "Bar", "foo.bar.BazMixin");
-
-        model.addMixinClassName("foo.bar.BazMixin");
-
-        transformation.makeReadOnly("fred");
-
-        train_getResourcesFieldName(transformation, "rez");
-
-        train_extendMethod(
-                transformation,
-                TransformConstants.CONTAINING_PAGE_DID_LOAD_SIGNATURE,
-                "fred = (foo.bar.Baz) rez.getMixinByClassName(\"foo.bar.BazMixin\");");
-
-        transformation.claimField("fred", annotation);
-
-        replay();
-
-        new MixinWorker(resolver).transform(transformation, model);
-
-        verify();
-    }
-
-    @Test
-    public void field_with_no_specific_mixin_type()
-    {
-        ComponentClassResolver resolver = newComponentClassResolver();
-        ClassTransformation transformation = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-        Mixin annotation = newMixin("");
-
-        train_findFieldsWithAnnotation(transformation, Mixin.class, "fred");
-        train_getFieldAnnotation(transformation, "fred", Mixin.class, annotation);
-        train_getFieldType(transformation, "fred", "foo.bar.Baz");
-
-        model.addMixinClassName("foo.bar.Baz");
-
-        transformation.makeReadOnly("fred");
-
-        train_getResourcesFieldName(transformation, "rez");
-
-        train_extendMethod(
-                transformation,
-                TransformConstants.CONTAINING_PAGE_DID_LOAD_SIGNATURE,
-                "fred = (foo.bar.Baz) rez.getMixinByClassName(\"foo.bar.Baz\");");
-
-        transformation.claimField("fred", annotation);
-
-        replay();
-
-        new MixinWorker(resolver).transform(transformation, model);
-
-        verify();
-
-    }
-
-    protected final void train_resolveMixinTypeToClassName(ComponentClassResolver resolver,
-            String mixinType, String mixinClassName)
-    {
-        resolver.resolveMixinTypeToClassName(mixinType);
-        setReturnValue(mixinClassName);
-    }
-
-    private Mixin newMixin(String value)
-    {
-        Mixin annotation = newMock(Mixin.class);
-
-        annotation.value();
-        setReturnValue(value);
-
-        return annotation;
-    }
-}
+package org.apache.tapestry.internal.services;
+
+import org.apache.tapestry.annotations.Mixin;
+import org.apache.tapestry.internal.test.InternalBaseTestCase;
+import org.apache.tapestry.model.MutableComponentModel;
+import org.apache.tapestry.services.ClassTransformation;
+import org.apache.tapestry.services.ComponentClassResolver;
+import org.apache.tapestry.services.TransformConstants;
+import org.testng.annotations.Test;
+
+public class MixinWorkerTest extends InternalBaseTestCase
+{
+    @Test
+    public void no_fields_with_mixin_annotation()
+    {
+        ComponentClassResolver resolver = newComponentClassResolver();
+        ClassTransformation transformation = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+
+        train_findFieldsWithAnnotation(transformation, Mixin.class);
+
+        replay();
+
+        new MixinWorker(resolver).transform(transformation, model);
+
+        verify();
+    }
+
+    @Test
+    public void field_with_explicit_type()
+    {
+        ComponentClassResolver resolver = newComponentClassResolver();
+        ClassTransformation transformation = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+        Mixin annotation = newMixin("Bar");
+
+        train_findFieldsWithAnnotation(transformation, Mixin.class, "fred");
+        train_getFieldAnnotation(transformation, "fred", Mixin.class, annotation);
+        train_getFieldType(transformation, "fred", "foo.bar.Baz");
+
+        train_resolveMixinTypeToClassName(resolver, "Bar", "foo.bar.BazMixin");
+
+        model.addMixinClassName("foo.bar.BazMixin");
+
+        transformation.makeReadOnly("fred");
+
+        train_getResourcesFieldName(transformation, "rez");
+
+        train_extendMethod(
+                transformation,
+                TransformConstants.CONTAINING_PAGE_DID_LOAD_SIGNATURE,
+                "fred = (foo.bar.Baz) rez.getMixinByClassName(\"foo.bar.BazMixin\");");
+
+        transformation.claimField("fred", annotation);
+
+        replay();
+
+        new MixinWorker(resolver).transform(transformation, model);
+
+        verify();
+    }
+
+    @Test
+    public void field_with_no_specific_mixin_type()
+    {
+        ComponentClassResolver resolver = newComponentClassResolver();
+        ClassTransformation transformation = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+        Mixin annotation = newMixin("");
+
+        train_findFieldsWithAnnotation(transformation, Mixin.class, "fred");
+        train_getFieldAnnotation(transformation, "fred", Mixin.class, annotation);
+        train_getFieldType(transformation, "fred", "foo.bar.Baz");
+
+        model.addMixinClassName("foo.bar.Baz");
+
+        transformation.makeReadOnly("fred");
+
+        train_getResourcesFieldName(transformation, "rez");
+
+        train_extendMethod(
+                transformation,
+                TransformConstants.CONTAINING_PAGE_DID_LOAD_SIGNATURE,
+                "fred = (foo.bar.Baz) rez.getMixinByClassName(\"foo.bar.Baz\");");
+
+        transformation.claimField("fred", annotation);
+
+        replay();
+
+        new MixinWorker(resolver).transform(transformation, model);
+
+        verify();
+
+    }
+
+    protected final void train_resolveMixinTypeToClassName(ComponentClassResolver resolver,
+            String mixinType, String mixinClassName)
+    {
+        expect(resolver.resolveMixinTypeToClassName(mixinType)).andReturn(mixinClassName);
+    }
+
+    private Mixin newMixin(String value)
+    {
+        Mixin annotation = newMock(Mixin.class);
+
+        expect(annotation.value()).andReturn(value);
+
+        return annotation;
+    }
+}

Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/OnEventWorkerTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/OnEventWorkerTest.java?view=diff&rev=478428&r1=478427&r2=478428
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/OnEventWorkerTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/OnEventWorkerTest.java Wed Nov 22 17:49:47 2006
@@ -12,412 +12,408 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.tapestry.internal.services;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Modifier;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.tapestry.annotations.OnEvent;
-import org.apache.tapestry.internal.test.InternalBaseTestCase;
+package org.apache.tapestry.internal.services;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Modifier;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.tapestry.annotations.OnEvent;
+import org.apache.tapestry.internal.test.InternalBaseTestCase;
 import org.apache.tapestry.ioc.internal.util.CollectionFactory;
-import org.apache.tapestry.model.MutableComponentModel;
-import org.apache.tapestry.services.ClassTransformation;
-import org.apache.tapestry.services.MethodSignature;
-import org.apache.tapestry.services.TransformConstants;
-import org.testng.annotations.Test;
-
-/**
- * I'd prefer to test these in terms of the behavior of the final class, rather than the generated
- * Javassist method bodies, but that'll have to be saved for later integration tests.
- */
-public class OnEventWorkerTest extends InternalBaseTestCase
-{
-
-    private static final String BOILERPLATE_1 = "if ($1.isAborted()) return $_;";
-
-    private static final String BOILERPLATE_2 = "$_ = true;";
-
-    @Test
-    public void no_methods_with_annotation()
-    {
-        ClassTransformation ct = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-
-        List<MethodSignature> methods = CollectionFactory.newList();
-        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
-
-        replay();
-
-        new OnEventWorker().transform(ct, model);
-
-        verify();
-    }
-
-    @Test
-    public void minimal_case()
-    {
-        ClassTransformation ct = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-        OnEvent annotation = newOnEvent();
-
-        MethodSignature signature = new MethodSignature("foo");
-
-        List<MethodSignature> methods = Collections.singletonList(signature);
-        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
-
-        train_getMethodAnnotation(ct, signature, OnEvent.class, annotation);
-
-        train_value(annotation, new String[0]);
-        train_component(annotation, new String[0]);
-
-        train_getClassName(ct, "foo.Bar");
-
-        train_extendMethod(
-                ct,
-                TransformConstants.HANDLE_COMPONENT_EVENT,
-                "{",
-                BOILERPLATE_1,
-                BOILERPLATE_2,
-                "$1.setSource(this, \"foo.Bar.foo()\");",
-                "foo();",
-                "}");
-
-        replay();
-
-        new OnEventWorker().transform(ct, model);
-
-        verify();
-    }
-
-    @Test
-    public void filter_by_event_type()
-    {
-        ClassTransformation ct = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-        OnEvent annotation = newOnEvent();
-
-        String[] eventTypes = new String[]
-        { "gnip", "gnop" };
-
-        MethodSignature signature = new MethodSignature("foo");
-
-        List<MethodSignature> methods = Collections.singletonList(signature);
-        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
-
-        train_getMethodAnnotation(ct, signature, OnEvent.class, annotation);
-
-        train_value(annotation, eventTypes);
-
-        train_addInjectedField(ct, String[].class, "eventTypes", eventTypes, "_v");
-
-        train_component(annotation, new String[0]);
-
-        train_getClassName(ct, "foo.Bar");
-
-        train_extendMethod(
-                ct,
-                TransformConstants.HANDLE_COMPONENT_EVENT,
-                "{",
-                BOILERPLATE_1,
-                "if ($1.matchesByEventType(_v))",
-                "{",
-                BOILERPLATE_2,
-                "$1.setSource(this, \"foo.Bar.foo()\");",
-                "foo();",
-                "}",
-                "}");
-
-        replay();
-
-        new OnEventWorker().transform(ct, model);
-
-        verify();
-    }
-
-    @Test
-    public void filter_by_component_id()
-    {
-        ClassTransformation ct = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-        OnEvent annotation = newOnEvent();
-
-        String[] componentIds = new String[]
-        { "zork" };
-
-        MethodSignature signature = new MethodSignature("foo");
-
-        List<MethodSignature> methods = Collections.singletonList(signature);
-        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
-
-        train_getMethodAnnotation(ct, signature, OnEvent.class, annotation);
-
-        train_value(annotation, new String[0]);
-        train_component(annotation, componentIds);
-
-        train_addInjectedField(ct, java.lang.String[].class, "componentIds", componentIds, "_ids");
-
-        train_getResourcesFieldName(ct, "_res");
-
-        train_getClassName(ct, "foo.Bar");
-
-        train_extendMethod(
-                ct,
-                TransformConstants.HANDLE_COMPONENT_EVENT,
-                "{",
-                BOILERPLATE_1,
-                "if ($1.matchesByComponentId(_res, _ids))",
-                "{",
-                BOILERPLATE_2,
-                "$1.setSource(this, \"foo.Bar.foo()\");",
-                "foo();",
-                "}",
-                "}");
-
-        replay();
-
-        new OnEventWorker().transform(ct, model);
-
-        verify();
-    }
-
-    @Test
-    public void filter_by_both()
-    {
-        ClassTransformation ct = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-        OnEvent annotation = newOnEvent();
-
-        String[] eventTypes = new String[]
-        { "gnip", "gnop" };
-        String[] componentIds = new String[]
-        { "zork" };
-
-        MethodSignature signature = new MethodSignature("foo");
-
-        List<MethodSignature> methods = Collections.singletonList(signature);
-        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
-
-        train_getMethodAnnotation(ct, signature, OnEvent.class, annotation);
-
-        train_value(annotation, eventTypes);
-
-        train_addInjectedField(ct, java.lang.String[].class, "eventTypes", eventTypes, "_v");
-
-        train_component(annotation, componentIds);
-
-        train_addInjectedField(ct, java.lang.String[].class, "componentIds", componentIds, "_ids");
-
-        train_getResourcesFieldName(ct, "_res");
-
-        train_getClassName(ct, "foo.Bar");
-
-        train_extendMethod(
-                ct,
-                TransformConstants.HANDLE_COMPONENT_EVENT,
-                "{",
-                BOILERPLATE_1,
-                "if ($1.matchesByEventType(_v))",
-                "{",
-                "if ($1.matchesByComponentId(_res, _ids))",
-                "{",
-                BOILERPLATE_2,
-                "$1.setSource(this, \"foo.Bar.foo()\");",
-                "foo();",
-                "}",
-                "}",
-                "}");
-
-        replay();
-
-        new OnEventWorker().transform(ct, model);
-
-        verify();
-
-    }
-
-    @Test
-    public void method_with_non_void_return_value()
-    {
-        ClassTransformation ct = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-        OnEvent annotation = newOnEvent();
-
-        MethodSignature signature = new MethodSignature(Modifier.PRIVATE, "java.lang.String",
-                "foo", null, null);
-
-        List<MethodSignature> methods = Collections.singletonList(signature);
-        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
-
-        train_getMethodAnnotation(ct, signature, OnEvent.class, annotation);
-
-        train_value(annotation, new String[0]);
-        train_component(annotation, new String[0]);
-
-        train_getClassName(ct, "foo.Bar");
-
-        train_extendMethod(
-                ct,
-                TransformConstants.HANDLE_COMPONENT_EVENT,
-                "{",
-                BOILERPLATE_1,
-                BOILERPLATE_2,
-                "$1.setSource(this, \"foo.Bar.foo()\");",
-                "if ($1.storeResult(($w) foo())) return true;",
-                "}");
-
-        replay();
-
-        new OnEventWorker().transform(ct, model);
-
-        verify();
-    }
-
-    @Test
-    public void method_with_non_primitive_parameter()
-    {
-        ClassTransformation ct = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-        OnEvent annotation = newOnEvent();
-
-        MethodSignature signature = new MethodSignature(Modifier.PRIVATE, "void", "foo",
-                new String[]
-                { "java.lang.String" }, null);
-
-        List<MethodSignature> methods = Collections.singletonList(signature);
-        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
-
-        train_getMethodAnnotation(ct, signature, OnEvent.class, annotation);
-
-        train_value(annotation, new String[0]);
-        train_component(annotation, new String[0]);
-
-        train_getClassName(ct, "foo.Bar");
-
-        train_extendMethod(
-                ct,
-                TransformConstants.HANDLE_COMPONENT_EVENT,
-                "{",
-                BOILERPLATE_1,
-                BOILERPLATE_2,
-                "$1.setSource(this, \"foo.Bar.foo(java.lang.String)\");",
-                "foo($1.coerceContext(0, \"java.lang.String\"));",
-                "}");
-
-        replay();
-
-        new OnEventWorker().transform(ct, model);
-
-        verify();
-    }
-
-    @Test
-    public void method_with_primitive_parameter()
-    {
-        ClassTransformation ct = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-        OnEvent annotation = newOnEvent();
-
-        MethodSignature signature = new MethodSignature(Modifier.PRIVATE, "void", "foo",
-                new String[]
-                { "boolean" }, null);
-
-        List<MethodSignature> methods = Collections.singletonList(signature);
-        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
-
-        train_getMethodAnnotation(ct, signature, OnEvent.class, annotation);
-
-        train_value(annotation, new String[0]);
-        train_component(annotation, new String[0]);
-
-        train_getClassName(ct, "foo.Bar");
-
-        train_extendMethod(
-                ct,
-                TransformConstants.HANDLE_COMPONENT_EVENT,
-                "{",
-                BOILERPLATE_1,
-                BOILERPLATE_2,
-                "$1.setSource(this, \"foo.Bar.foo(boolean)\");",
-                "foo(((java.lang.Boolean)$1.coerceContext(0, \"java.lang.Boolean\")).booleanValue());",
-                "}");
-
-        replay();
-
-        new OnEventWorker().transform(ct, model);
-
-        verify();
-
-    }
-
-    @Test
-    public void method_with_multiple_parameters()
-    {
-        ClassTransformation ct = newClassTransformation();
-        MutableComponentModel model = newMutableComponentModel();
-        OnEvent annotation = newOnEvent();
-
-        MethodSignature signature = new MethodSignature(Modifier.PRIVATE, "void", "foo",
-                new String[]
-                { "java.lang.String", "java.lang.Integer" }, null);
-
-        List<MethodSignature> methods = Collections.singletonList(signature);
-        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
-
-        train_getMethodAnnotation(ct, signature, OnEvent.class, annotation);
-
-        train_value(annotation, new String[0]);
-        train_component(annotation, new String[0]);
-
-        train_getClassName(ct, "foo.Bar");
-
-        train_extendMethod(
-                ct,
-                TransformConstants.HANDLE_COMPONENT_EVENT,
-                "{",
-                BOILERPLATE_1,
-                BOILERPLATE_2,
-                "$1.setSource(this, \"foo.Bar.foo(java.lang.String, java.lang.Integer)\");",
-                "foo($1.coerceContext(0, \"java.lang.String\"), ",
-                "$1.coerceContext(1, \"java.lang.Integer\"));",
-                "}");
-
-        replay();
-
-        new OnEventWorker().transform(ct, model);
-
-        verify();
-
-    }
-
-    protected final OnEvent newOnEvent()
-    {
-        return newMock(OnEvent.class);
-    }
-
-    protected final void train_getClassName(ClassTransformation ct, String className)
-    {
-        ct.getClassName();
-        setReturnValue(className);
-    }
-
-    protected final void train_value(OnEvent annotation, String[] values)
-    {
-        annotation.value();
-        setReturnValue(values);
-    }
-
-    protected final void train_component(OnEvent annotation, String[] values)
-    {
-        annotation.component();
-        setReturnValue(values);
-    }
-
-    protected final <T extends Annotation> void train_getMethodAnnotation(ClassTransformation ct,
-            MethodSignature signature, Class<T> annotationClass, T annotation)
-    {
-        ct.getMethodAnnotation(signature, annotationClass);
-        setReturnValue(annotation);
-    }
-}
+import org.apache.tapestry.model.MutableComponentModel;
+import org.apache.tapestry.services.ClassTransformation;
+import org.apache.tapestry.services.MethodSignature;
+import org.apache.tapestry.services.TransformConstants;
+import org.testng.annotations.Test;
+
+/**
+ * I'd prefer to test these in terms of the behavior of the final class, rather than the generated
+ * Javassist method bodies, but that'll have to be saved for later integration tests.
+ */
+public class OnEventWorkerTest extends InternalBaseTestCase
+{
+
+    private static final String BOILERPLATE_1 = "if ($1.isAborted()) return $_;";
+
+    private static final String BOILERPLATE_2 = "$_ = true;";
+
+    @Test
+    public void no_methods_with_annotation()
+    {
+        ClassTransformation ct = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+
+        List<MethodSignature> methods = CollectionFactory.newList();
+        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
+
+        replay();
+
+        new OnEventWorker().transform(ct, model);
+
+        verify();
+    }
+
+    @Test
+    public void minimal_case()
+    {
+        ClassTransformation ct = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+        OnEvent annotation = newOnEvent();
+
+        MethodSignature signature = new MethodSignature("foo");
+
+        List<MethodSignature> methods = Collections.singletonList(signature);
+        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
+
+        train_getMethodAnnotation(ct, signature, OnEvent.class, annotation);
+
+        train_value(annotation, new String[0]);
+        train_component(annotation, new String[0]);
+
+        train_getClassName(ct, "foo.Bar");
+
+        train_extendMethod(
+                ct,
+                TransformConstants.HANDLE_COMPONENT_EVENT,
+                "{",
+                BOILERPLATE_1,
+                BOILERPLATE_2,
+                "$1.setSource(this, \"foo.Bar.foo()\");",
+                "foo();",
+                "}");
+
+        replay();
+
+        new OnEventWorker().transform(ct, model);
+
+        verify();
+    }
+
+    @Test
+    public void filter_by_event_type()
+    {
+        ClassTransformation ct = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+        OnEvent annotation = newOnEvent();
+
+        String[] eventTypes = new String[]
+        { "gnip", "gnop" };
+
+        MethodSignature signature = new MethodSignature("foo");
+
+        List<MethodSignature> methods = Collections.singletonList(signature);
+        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
+
+        train_getMethodAnnotation(ct, signature, OnEvent.class, annotation);
+
+        train_value(annotation, eventTypes);
+
+        train_addInjectedField(ct, String[].class, "eventTypes", eventTypes, "_v");
+
+        train_component(annotation, new String[0]);
+
+        train_getClassName(ct, "foo.Bar");
+
+        train_extendMethod(
+                ct,
+                TransformConstants.HANDLE_COMPONENT_EVENT,
+                "{",
+                BOILERPLATE_1,
+                "if ($1.matchesByEventType(_v))",
+                "{",
+                BOILERPLATE_2,
+                "$1.setSource(this, \"foo.Bar.foo()\");",
+                "foo();",
+                "}",
+                "}");
+
+        replay();
+
+        new OnEventWorker().transform(ct, model);
+
+        verify();
+    }
+
+    @Test
+    public void filter_by_component_id()
+    {
+        ClassTransformation ct = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+        OnEvent annotation = newOnEvent();
+
+        String[] componentIds = new String[]
+        { "zork" };
+
+        MethodSignature signature = new MethodSignature("foo");
+
+        List<MethodSignature> methods = Collections.singletonList(signature);
+        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
+
+        train_getMethodAnnotation(ct, signature, OnEvent.class, annotation);
+
+        train_value(annotation, new String[0]);
+        train_component(annotation, componentIds);
+
+        train_addInjectedField(ct, java.lang.String[].class, "componentIds", componentIds, "_ids");
+
+        train_getResourcesFieldName(ct, "_res");
+
+        train_getClassName(ct, "foo.Bar");
+
+        train_extendMethod(
+                ct,
+                TransformConstants.HANDLE_COMPONENT_EVENT,
+                "{",
+                BOILERPLATE_1,
+                "if ($1.matchesByComponentId(_res, _ids))",
+                "{",
+                BOILERPLATE_2,
+                "$1.setSource(this, \"foo.Bar.foo()\");",
+                "foo();",
+                "}",
+                "}");
+
+        replay();
+
+        new OnEventWorker().transform(ct, model);
+
+        verify();
+    }
+
+    @Test
+    public void filter_by_both()
+    {
+        ClassTransformation ct = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+        OnEvent annotation = newOnEvent();
+
+        String[] eventTypes = new String[]
+        { "gnip", "gnop" };
+        String[] componentIds = new String[]
+        { "zork" };
+
+        MethodSignature signature = new MethodSignature("foo");
+
+        List<MethodSignature> methods = Collections.singletonList(signature);
+        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
+
+        train_getMethodAnnotation(ct, signature, OnEvent.class, annotation);
+
+        train_value(annotation, eventTypes);
+
+        train_addInjectedField(ct, java.lang.String[].class, "eventTypes", eventTypes, "_v");
+
+        train_component(annotation, componentIds);
+
+        train_addInjectedField(ct, java.lang.String[].class, "componentIds", componentIds, "_ids");
+
+        train_getResourcesFieldName(ct, "_res");
+
+        train_getClassName(ct, "foo.Bar");
+
+        train_extendMethod(
+                ct,
+                TransformConstants.HANDLE_COMPONENT_EVENT,
+                "{",
+                BOILERPLATE_1,
+                "if ($1.matchesByEventType(_v))",
+                "{",
+                "if ($1.matchesByComponentId(_res, _ids))",
+                "{",
+                BOILERPLATE_2,
+                "$1.setSource(this, \"foo.Bar.foo()\");",
+                "foo();",
+                "}",
+                "}",
+                "}");
+
+        replay();
+
+        new OnEventWorker().transform(ct, model);
+
+        verify();
+
+    }
+
+    @Test
+    public void method_with_non_void_return_value()
+    {
+        ClassTransformation ct = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+        OnEvent annotation = newOnEvent();
+
+        MethodSignature signature = new MethodSignature(Modifier.PRIVATE, "java.lang.String",
+                "foo", null, null);
+
+        List<MethodSignature> methods = Collections.singletonList(signature);
+        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
+
+        train_getMethodAnnotation(ct, signature, OnEvent.class, annotation);
+
+        train_value(annotation, new String[0]);
+        train_component(annotation, new String[0]);
+
+        train_getClassName(ct, "foo.Bar");
+
+        train_extendMethod(
+                ct,
+                TransformConstants.HANDLE_COMPONENT_EVENT,
+                "{",
+                BOILERPLATE_1,
+                BOILERPLATE_2,
+                "$1.setSource(this, \"foo.Bar.foo()\");",
+                "if ($1.storeResult(($w) foo())) return true;",
+                "}");
+
+        replay();
+
+        new OnEventWorker().transform(ct, model);
+
+        verify();
+    }
+
+    @Test
+    public void method_with_non_primitive_parameter()
+    {
+        ClassTransformation ct = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+        OnEvent annotation = newOnEvent();
+
+        MethodSignature signature = new MethodSignature(Modifier.PRIVATE, "void", "foo",
+                new String[]
+                { "java.lang.String" }, null);
+
+        List<MethodSignature> methods = Collections.singletonList(signature);
+        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
+
+        train_getMethodAnnotation(ct, signature, OnEvent.class, annotation);
+
+        train_value(annotation, new String[0]);
+        train_component(annotation, new String[0]);
+
+        train_getClassName(ct, "foo.Bar");
+
+        train_extendMethod(
+                ct,
+                TransformConstants.HANDLE_COMPONENT_EVENT,
+                "{",
+                BOILERPLATE_1,
+                BOILERPLATE_2,
+                "$1.setSource(this, \"foo.Bar.foo(java.lang.String)\");",
+                "foo($1.coerceContext(0, \"java.lang.String\"));",
+                "}");
+
+        replay();
+
+        new OnEventWorker().transform(ct, model);
+
+        verify();
+    }
+
+    @Test
+    public void method_with_primitive_parameter()
+    {
+        ClassTransformation ct = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+        OnEvent annotation = newOnEvent();
+
+        MethodSignature signature = new MethodSignature(Modifier.PRIVATE, "void", "foo",
+                new String[]
+                { "boolean" }, null);
+
+        List<MethodSignature> methods = Collections.singletonList(signature);
+        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
+
+        train_getMethodAnnotation(ct, signature, OnEvent.class, annotation);
+
+        train_value(annotation, new String[0]);
+        train_component(annotation, new String[0]);
+
+        train_getClassName(ct, "foo.Bar");
+
+        train_extendMethod(
+                ct,
+                TransformConstants.HANDLE_COMPONENT_EVENT,
+                "{",
+                BOILERPLATE_1,
+                BOILERPLATE_2,
+                "$1.setSource(this, \"foo.Bar.foo(boolean)\");",
+                "foo(((java.lang.Boolean)$1.coerceContext(0, \"java.lang.Boolean\")).booleanValue());",
+                "}");
+
+        replay();
+
+        new OnEventWorker().transform(ct, model);
+
+        verify();
+
+    }
+
+    @Test
+    public void method_with_multiple_parameters()
+    {
+        ClassTransformation ct = newClassTransformation();
+        MutableComponentModel model = newMutableComponentModel();
+        OnEvent annotation = newOnEvent();
+
+        MethodSignature signature = new MethodSignature(Modifier.PRIVATE, "void", "foo",
+                new String[]
+                { "java.lang.String", "java.lang.Integer" }, null);
+
+        List<MethodSignature> methods = Collections.singletonList(signature);
+        train_findMethodsWithAnnotation(ct, OnEvent.class, methods);
+
+        train_getMethodAnnotation(ct, signature, OnEvent.class, annotation);
+
+        train_value(annotation, new String[0]);
+        train_component(annotation, new String[0]);
+
+        train_getClassName(ct, "foo.Bar");
+
+        train_extendMethod(
+                ct,
+                TransformConstants.HANDLE_COMPONENT_EVENT,
+                "{",
+                BOILERPLATE_1,
+                BOILERPLATE_2,
+                "$1.setSource(this, \"foo.Bar.foo(java.lang.String, java.lang.Integer)\");",
+                "foo($1.coerceContext(0, \"java.lang.String\"), ",
+                "$1.coerceContext(1, \"java.lang.Integer\"));",
+                "}");
+
+        replay();
+
+        new OnEventWorker().transform(ct, model);
+
+        verify();
+
+    }
+
+    protected final OnEvent newOnEvent()
+    {
+        return newMock(OnEvent.class);
+    }
+
+    protected final void train_getClassName(ClassTransformation ct, String className)
+    {
+        expect(ct.getClassName()).andReturn(className);
+    }
+
+    protected final void train_value(OnEvent annotation, String[] values)
+    {
+        expect(annotation.value()).andReturn(values);
+    }
+
+    protected final void train_component(OnEvent annotation, String[] values)
+    {
+        expect(annotation.component()).andReturn(values);
+    }
+
+    protected final <T extends Annotation> void train_getMethodAnnotation(ClassTransformation ct,
+            MethodSignature signature, Class<T> annotationClass, T annotation)
+    {
+        expect(ct.getMethodAnnotation(signature, annotationClass)).andReturn(annotation);
+    }
+}

Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/PagePoolImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/PagePoolImplTest.java?view=diff&rev=478428&r1=478427&r2=478428
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/PagePoolImplTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/PagePoolImplTest.java Wed Nov 22 17:49:47 2006
@@ -12,126 +12,124 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.tapestry.internal.services;
-
-import static org.easymock.EasyMock.contains;
-
-import java.util.Locale;
-
-import org.apache.commons.logging.Log;
-import org.apache.tapestry.internal.structure.Page;
-import org.apache.tapestry.internal.test.InternalBaseTestCase;
-import org.testng.annotations.Test;
-
-/**
- * 
- */
-public class PagePoolImplTest extends InternalBaseTestCase
-{
-    private static final String PAGE_NAME = "com.foo.pages.MyPage";
-
-    // This will change once we start supporting application localization.
-
-    private final Locale _locale = Locale.getDefault();
-
-    @Test
-    public void checkout_when_page_list_is_null()
-    {
-        PageLoader loader = newPageLoader();
-        Page page = newPage();
-
-        train_loadPage(loader, PAGE_NAME, _locale, page);
-
-        replay();
-
-        PagePool pool = new PagePoolImpl(null, loader);
-
-        assertSame(page, pool.checkout(PAGE_NAME));
-
-        verify();
-    }
-
-    @Test
-    public void checkout_when_page_list_is_empty()
-    {
-        PageLoader loader = newPageLoader();
-        Page page1 = newPage();
-        Page page2 = newPage();
-
-        train_detached(page1, false);
-        train_getName(page1, PAGE_NAME);
-
-        train_loadPage(loader, PAGE_NAME, _locale, page2);
-
-        replay();
-
-        PagePool pool = new PagePoolImpl(null, loader);
-
-        pool.release(page1);
-
-        assertSame(page1, pool.checkout(PAGE_NAME));
-
-        // Now the list is empty, but not null.
-
-        assertSame(page2, pool.checkout(PAGE_NAME));
-
-        verify();
-    }
-
-    protected final void train_detached(Page page, boolean dirty)
-    {
-        page.detached();
-
-        setReturnValue(dirty);
-    }
-
-    @Test
-    public void release_last_in_first_out()
-    {
-        PageLoader loader = newPageLoader();
-        Page page1 = newPage();
-        Page page2 = newPage();
-
-        train_detached(page1, false);
-
-        train_getName(page1, PAGE_NAME);
-
-        train_detached(page2, false);
-
-        train_getName(page2, PAGE_NAME);
-
-        replay();
-
-        PagePool pool = new PagePoolImpl(null, loader);
-
-        pool.release(page1);
-        pool.release(page2);
-
-        assertSame(page2, pool.checkout(PAGE_NAME));
-        assertSame(page1, pool.checkout(PAGE_NAME));
-
-        verify();
-    }
-
-    @Test
-    public void dirty_pages_are_not_pooled()
-    {
-        PageLoader loader = newPageLoader();
-        Page page = newPage();
-        Log log = newLog();
-
-        train_detached(page, true);
-
-        log.error(contains("is dirty, and will be discarded"));
-
-        // The fact that we don't ask the page for its name is our clue that it is not being cached.
-
-        replay();
-
-        PagePool pool = new PagePoolImpl(log, loader);
-
-        pool.release(page);
-
-        verify();
-    }
-}
+package org.apache.tapestry.internal.services;
+
+import static org.easymock.EasyMock.contains;
+
+import java.util.Locale;
+
+import org.apache.commons.logging.Log;
+import org.apache.tapestry.internal.structure.Page;
+import org.apache.tapestry.internal.test.InternalBaseTestCase;
+import org.testng.annotations.Test;
+
+/**
+ * 
+ */
+public class PagePoolImplTest extends InternalBaseTestCase
+{
+    private static final String PAGE_NAME = "com.foo.pages.MyPage";
+
+    // This will change once we start supporting application localization.
+
+    private final Locale _locale = Locale.getDefault();
+
+    @Test
+    public void checkout_when_page_list_is_null()
+    {
+        PageLoader loader = newPageLoader();
+        Page page = newPage();
+
+        train_loadPage(loader, PAGE_NAME, _locale, page);
+
+        replay();
+
+        PagePool pool = new PagePoolImpl(null, loader);
+
+        assertSame(page, pool.checkout(PAGE_NAME));
+
+        verify();
+    }
+
+    @Test
+    public void checkout_when_page_list_is_empty()
+    {
+        PageLoader loader = newPageLoader();
+        Page page1 = newPage();
+        Page page2 = newPage();
+
+        train_detached(page1, false);
+        train_getName(page1, PAGE_NAME);
+
+        train_loadPage(loader, PAGE_NAME, _locale, page2);
+
+        replay();
+
+        PagePool pool = new PagePoolImpl(null, loader);
+
+        pool.release(page1);
+
+        assertSame(page1, pool.checkout(PAGE_NAME));
+
+        // Now the list is empty, but not null.
+
+        assertSame(page2, pool.checkout(PAGE_NAME));
+
+        verify();
+    }
+
+    protected final void train_detached(Page page, boolean dirty)
+    {
+        expect(page.detached()).andReturn(dirty);
+    }
+
+    @Test
+    public void release_last_in_first_out()
+    {
+        PageLoader loader = newPageLoader();
+        Page page1 = newPage();
+        Page page2 = newPage();
+
+        train_detached(page1, false);
+
+        train_getName(page1, PAGE_NAME);
+
+        train_detached(page2, false);
+
+        train_getName(page2, PAGE_NAME);
+
+        replay();
+
+        PagePool pool = new PagePoolImpl(null, loader);
+
+        pool.release(page1);
+        pool.release(page2);
+
+        assertSame(page2, pool.checkout(PAGE_NAME));
+        assertSame(page1, pool.checkout(PAGE_NAME));
+
+        verify();
+    }
+
+    @Test
+    public void dirty_pages_are_not_pooled()
+    {
+        PageLoader loader = newPageLoader();
+        Page page = newPage();
+        Log log = newLog();
+
+        train_detached(page, true);
+
+        log.error(contains("is dirty, and will be discarded"));
+
+        // The fact that we don't ask the page for its name is our clue that it is not being cached.
+
+        replay();
+
+        PagePool pool = new PagePoolImpl(log, loader);
+
+        pool.release(page);
+
+        verify();
+    }
+}

Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/PageRenderDispatcherTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/PageRenderDispatcherTest.java?view=diff&rev=478428&r1=478427&r2=478428
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/PageRenderDispatcherTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/PageRenderDispatcherTest.java Wed Nov 22 17:49:47 2006
@@ -111,15 +111,14 @@
     private void train_triggerEvent(ComponentPageElement element, String eventType,
             Object[] context, ComponentEventHandler handler, boolean handled)
     {
-        element.triggerEvent(EasyMock.eq(eventType), EasyMock.aryEq(context), EasyMock
-                .same(handler));
-        setReturnValue(handled);
+        expect(
+                element.triggerEvent(EasyMock.eq(eventType), EasyMock.aryEq(context), EasyMock
+                        .same(handler))).andReturn(handled);
     }
 
     protected final void train_get(RequestPageCache cache, String pageName, Page page)
     {
-        cache.get(pageName);
-        setReturnValue(page).atLeastOnce();
+        expect(cache.get(pageName)).andReturn(page).atLeastOnce();
     }
 
     protected final PageResponseRenderer newPageResponseRenderer()
@@ -129,8 +128,7 @@
 
     protected final void train_getPath(WebRequest request, String path)
     {
-        request.getPath();
-        setReturnValue(path).atLeastOnce();
+        expect(request.getPath()).andReturn(path).atLeastOnce();
     }
 
 }

Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/RequestPageCacheImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/RequestPageCacheImplTest.java?view=diff&rev=478428&r1=478427&r2=478428
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/RequestPageCacheImplTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/RequestPageCacheImplTest.java Wed Nov 22 17:49:47 2006
@@ -12,97 +12,95 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.tapestry.internal.services;
-
-import org.apache.tapestry.internal.structure.Page;
-import org.apache.tapestry.internal.test.InternalBaseTestCase;
-import org.apache.tapestry.services.ComponentClassResolver;
-import org.testng.annotations.Test;
-
-/**
- * 
- */
-public class RequestPageCacheImplTest extends InternalBaseTestCase
-{
-    private static final String PAGE_NAME = "MyPage";
-
-    private static final String PAGE_CLASS_NAME = "com.foo.pages.MyPage";
-
-    @Test
-    public void get_is_cached()
-    {
-        ComponentClassResolver resolver = newComponentClassResolver();
-        PagePool pool = newPagePool();
-        Page page = newPage();
-
-        train_resolvePageNameToClassName(resolver, PAGE_NAME, PAGE_CLASS_NAME);
-
-        pool.checkout(PAGE_CLASS_NAME);
-        setReturnValue(page);
-
-        page.attached();
-
-        replay();
-
-        RequestPageCacheImpl cache = new RequestPageCacheImpl(resolver, pool);
-
-        assertSame(cache.get(PAGE_NAME), page);
-
-        verify();
-
-        // Asking for a page always resolves the name to a class (fortunately,
-        // this is cached by resolver).
-
-        train_resolvePageNameToClassName(resolver, PAGE_NAME, PAGE_CLASS_NAME);
-
-        replay();
-
-        // Again, same object, but no PagePool this time.
-        assertSame(cache.get(PAGE_NAME), page);
-
-        verify();
-
-        pool.release(page);
-
-        replay();
-
-        // Now, trigger the release()
-
-        cache.threadDidCleanup();
-
-        verify();
-    }
-
-    @Test
-    public void page_does_not_exist()
-    {
-        ComponentClassResolver resolver = newComponentClassResolver();
-        PagePool pool = newPagePool();
-
-        train_resolvePageNameToClassName(resolver, PAGE_NAME, null);
-
-        replay();
-
-        try
-        {
-            RequestPageCacheImpl cache = new RequestPageCacheImpl(resolver, pool);
-
-            cache.get(PAGE_NAME);
-
-            unreachable();
-        }
-        catch (RuntimeException ex)
-        {
-            assertEquals(ex.getMessage(), "Page 'MyPage' is not defined by this application.");
-        }
-
-        verify();
-    }
-
-    protected final void train_resolvePageNameToClassName(ComponentClassResolver resolver,
-            String pageName, String className)
-    {
-        resolver.resolvePageNameToClassName(pageName);
-        setReturnValue(className);
-    }
-}
+package org.apache.tapestry.internal.services;
+
+import org.apache.tapestry.internal.structure.Page;
+import org.apache.tapestry.internal.test.InternalBaseTestCase;
+import org.apache.tapestry.services.ComponentClassResolver;
+import org.testng.annotations.Test;
+
+/**
+ * 
+ */
+public class RequestPageCacheImplTest extends InternalBaseTestCase
+{
+    private static final String PAGE_NAME = "MyPage";
+
+    private static final String PAGE_CLASS_NAME = "com.foo.pages.MyPage";
+
+    @Test
+    public void get_is_cached()
+    {
+        ComponentClassResolver resolver = newComponentClassResolver();
+        PagePool pool = newPagePool();
+        Page page = newPage();
+
+        train_resolvePageNameToClassName(resolver, PAGE_NAME, PAGE_CLASS_NAME);
+
+        expect(pool.checkout(PAGE_CLASS_NAME)).andReturn(page);
+
+        page.attached();
+
+        replay();
+
+        RequestPageCacheImpl cache = new RequestPageCacheImpl(resolver, pool);
+
+        assertSame(cache.get(PAGE_NAME), page);
+
+        verify();
+
+        // Asking for a page always resolves the name to a class (fortunately,
+        // this is cached by resolver).
+
+        train_resolvePageNameToClassName(resolver, PAGE_NAME, PAGE_CLASS_NAME);
+
+        replay();
+
+        // Again, same object, but no PagePool this time.
+        assertSame(cache.get(PAGE_NAME), page);
+
+        verify();
+
+        pool.release(page);
+
+        replay();
+
+        // Now, trigger the release()
+
+        cache.threadDidCleanup();
+
+        verify();
+    }
+
+    @Test
+    public void page_does_not_exist()
+    {
+        ComponentClassResolver resolver = newComponentClassResolver();
+        PagePool pool = newPagePool();
+
+        train_resolvePageNameToClassName(resolver, PAGE_NAME, null);
+
+        replay();
+
+        try
+        {
+            RequestPageCacheImpl cache = new RequestPageCacheImpl(resolver, pool);
+
+            cache.get(PAGE_NAME);
+
+            unreachable();
+        }
+        catch (RuntimeException ex)
+        {
+            assertEquals(ex.getMessage(), "Page 'MyPage' is not defined by this application.");
+        }
+
+        verify();
+    }
+
+    protected final void train_resolvePageNameToClassName(ComponentClassResolver resolver,
+            String pageName, String className)
+    {
+        expect(resolver.resolvePageNameToClassName(pageName)).andReturn(className);
+    }
+}