You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2007/03/03 22:22:24 UTC

svn commit: r514244 - in /tapestry/tapestry4/trunk: tapestry-annotations/src/test/org/apache/tapestry/annotations/ tapestry-framework/src/java/org/apache/tapestry/internal/event/ tapestry-framework/src/java/org/apache/tapestry/services/impl/ tapestry-f...

Author: jkuhnert
Date: Sat Mar  3 13:22:24 2007
New Revision: 514244

URL: http://svn.apache.org/viewvc?view=rev&rev=514244
Log:
Event connection worker wasn't properly connecting events up because one stupid loop did a return instead of continue.

Modified:
    tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/AnnotatedPage.java
    tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/TestEventListenerAnnotationWorker.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/internal/event/ComponentEventProperty.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentEventConnectionWorker.java
    tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/internal/event/ComponentEventPropertyTest.java
    tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/internal/event/impl/ComponentEventInvokerTest.java
    tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/ComponentEventConnectionWorkerTest.java

Modified: tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/AnnotatedPage.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/AnnotatedPage.java?view=diff&rev=514244&r1=514243&r2=514244
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/AnnotatedPage.java (original)
+++ tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/AnnotatedPage.java Sat Mar  3 13:22:24 2007
@@ -160,6 +160,12 @@
     @EventListener(events = { "onClick" }, targets = { "email" }, submitForm = "testForm", focus=true)
     public void formListener() { }
     
+    @EventListener(events = { "onClick" }, targets = { "phone" }, submitForm = "testForm")
+    public void anotherFormListener() { }
+    
+    @EventListener(events = { "onClick" }, targets = { "phone" }, submitForm = "form")
+    public void yetAnotherFormListener() { }
+    
     @EventListener(events = { "onClick" }, targets = { "email" }, submitForm = "notExisting")
     public void brokenFormListener() { }
     

Modified: tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/TestEventListenerAnnotationWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/TestEventListenerAnnotationWorker.java?view=diff&rev=514244&r1=514243&r2=514244
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/TestEventListenerAnnotationWorker.java (original)
+++ tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/TestEventListenerAnnotationWorker.java Sat Mar  3 13:22:24 2007
@@ -147,4 +147,5 @@
         
         verify();
     }
+    
 }

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/internal/event/ComponentEventProperty.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/internal/event/ComponentEventProperty.java?view=diff&rev=514244&r1=514243&r2=514244
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/internal/event/ComponentEventProperty.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/internal/event/ComponentEventProperty.java Sat Mar  3 13:22:24 2007
@@ -26,8 +26,6 @@
  * Represents a configured listener/event(s) binding for a 
  * a component and the events that may be optionally listened
  * for on the client browser.
- * 
- * @author jkuhnert
  */
 public class ComponentEventProperty
 {
@@ -74,8 +72,7 @@
     public void addFormEventListener(String event, String methodName,
             String formId, boolean validateForm, boolean async, boolean focus)
     {
-        EventBoundListener listener = 
-            new EventBoundListener(methodName, formId, validateForm, _componentId, async, focus);
+        EventBoundListener listener = new EventBoundListener(methodName, formId, validateForm, _componentId, async, focus);
         
         List listeners = getFormEventListeners(event);
         if (!listeners.contains(listener))

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentEventConnectionWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentEventConnectionWorker.java?view=diff&rev=514244&r1=514243&r2=514244
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentEventConnectionWorker.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentEventConnectionWorker.java Sat Mar  3 13:22:24 2007
@@ -123,7 +123,7 @@
             Object[][] formEvents = filterFormEvents(props[i], parms, cycle);
             
             if (events.length < 1 && formEvents.length < 1)
-                return;
+                continue;
             
             DirectEventServiceParameter dsp =
                 new DirectEventServiceParameter((IDirectEvent)component, new Object[] {}, new String[] {}, false);
@@ -288,8 +288,8 @@
         return (Object[][])ret.toArray(new Object[ret.size()][2]);
     }
     
-    Object[][] buildFormEvents(IRequestCycle cycle, String formId, 
-            Set events, Boolean async, Boolean validate, Object uniqueHash)
+    Object[][] buildFormEvents(IRequestCycle cycle, String formId, Set events, Boolean async, 
+            Boolean validate, Object uniqueHash)
     {
         List formNames = (List)cycle.getAttribute(FORM_NAME_LIST + formId);
         List retval = new ArrayList();

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/internal/event/ComponentEventPropertyTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/internal/event/ComponentEventPropertyTest.java?view=diff&rev=514244&r1=514243&r2=514244
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/internal/event/ComponentEventPropertyTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/internal/event/ComponentEventPropertyTest.java Sat Mar  3 13:22:24 2007
@@ -14,6 +14,7 @@
 package org.apache.tapestry.internal.event;
 
 import java.util.List;
+import java.util.Set;
 
 import org.apache.tapestry.event.BrowserEvent;
 import org.testng.annotations.Test;
@@ -30,7 +31,7 @@
 public class ComponentEventPropertyTest extends TestBase
 {
 
-    public void testAddEventListener()
+    public void test_Add_Event_Listener()
     {
         String[] events = {"onClick", "onFoo"};
         ComponentEventProperty prop = new ComponentEventProperty("compid");
@@ -52,7 +53,7 @@
         assertEquals("doFoo", listener.getMethodName());
     }
     
-    public void testAddFormEventListener()
+    public void test_Add_Form_Event_Listener()
     {
         String[] events = {"onFoo"};
         ComponentEventProperty prop = new ComponentEventProperty("compid");
@@ -79,7 +80,39 @@
         assertEquals("doFoo", listener.getMethodName());
     }
     
-    public void testGetFormEvents()
+    public void test_Add_Multiple_Event_Listener()
+    {
+        String[] events = {"onClick", "onFoo"};
+        ComponentEventProperty prop = new ComponentEventProperty("compid");
+        
+        prop.addListener(events, "doFoo", "form1", false, false, false);
+        prop.addListener(new String[]{"onchange"}, "doBar", "form2", false, false, false);
+        prop.addListener(new String[]{"onchange"}, "secondForm", "form1", false, false, false);
+        
+        assertEquals("compid", prop.getComponentId());
+        assertEquals(prop.getEvents().size(), 0);
+        assertEquals(prop.getFormEvents().size(), 3);
+        
+        Set s = prop.getFormEvents();
+        String[] fevents = (String[])s.toArray(new String[s.size()]);
+        
+        assertEquals(fevents.length, 3);
+        
+        List listeners = prop.getFormEventListeners("onchange");
+        assertEquals(listeners.size(), 2);
+        
+        /*
+        List listeners = prop.getFormEventListeners("onClick");
+        assertEquals(listeners.size(), 2);
+        
+        EventBoundListener listener = (EventBoundListener)listeners.get(0);
+        assertEquals("compid", listener.getComponentId());
+        assertNull(listener.getFormId());
+        assertEquals("doFoo", listener.getMethodName());
+        */
+    }
+    
+    public void test_Get_Form_Events()
     {
         String[] events = {"onFoo"};
         ComponentEventProperty prop = new ComponentEventProperty("compid");

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/internal/event/impl/ComponentEventInvokerTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/internal/event/impl/ComponentEventInvokerTest.java?view=diff&rev=514244&r1=514243&r2=514244
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/internal/event/impl/ComponentEventInvokerTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/internal/event/impl/ComponentEventInvokerTest.java Sat Mar  3 13:22:24 2007
@@ -50,8 +50,7 @@
     public void test_Event_Properties()
     {
         IComponentSpecification spec = new ComponentSpecification();
-        spec.addEventListener("comp1", new String[] {"onClick"}, "testFoo", 
-                null, false, false, false);
+        spec.addEventListener("comp1", new String[] {"onClick"}, "testFoo", null, false, false, false);
         
         assert spec.getComponentEvents("comp1") != null;
         assert spec.getComponentEvents("comp1").getEvents().size() == 1;
@@ -62,6 +61,25 @@
         
         prop = spec.getComponentEvents("comp2");
         assert prop == null;
+    }
+    
+    public void test_Form_Event_Properties()
+    {
+        IComponentSpecification spec = new ComponentSpecification();
+        spec.addEventListener("comp1", new String[] {"onClick"}, "testFoo", "form", false, true, false);
+        spec.addEventListener("comp1", new String[] {"onClick"}, "testBar", "form", false, true, false);
+        
+        assert spec.getComponentEvents("comp1") != null;
+        
+        ComponentEventProperty p = spec.getComponentEvents("comp1");
+        
+        // should be only form events bound
+        assertEquals(p.getEvents().size(), 0);
+        assertEquals(p.getEventListeners("onClick").size(), 0);
+        
+        assertEquals(p.getComponentId(), "comp1");
+        assertEquals(p.getFormEventListeners("onClick").size(), 2);
+        assertEquals(p.getFormEvents().size(), 1);
     }
     
     public void test_Invoke_Component_Listener()

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/ComponentEventConnectionWorkerTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/ComponentEventConnectionWorkerTest.java?view=diff&rev=514244&r1=514243&r2=514244
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/ComponentEventConnectionWorkerTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/ComponentEventConnectionWorkerTest.java Sat Mar  3 13:22:24 2007
@@ -28,6 +28,7 @@
 import org.apache.hivemind.impl.DefaultClassResolver;
 import org.apache.hivemind.util.ClasspathResource;
 import org.apache.tapestry.BaseComponentTestCase;
+import org.apache.tapestry.IComponent;
 import org.apache.tapestry.IDirectEvent;
 import org.apache.tapestry.IForm;
 import org.apache.tapestry.IRequestCycle;
@@ -41,6 +42,7 @@
 import org.apache.tapestry.html.Body;
 import org.apache.tapestry.internal.event.ComponentEventProperty;
 import org.apache.tapestry.internal.event.IComponentEventInvoker;
+import org.apache.tapestry.internal.event.impl.ComponentEventInvoker;
 import org.apache.tapestry.spec.ComponentSpecification;
 import org.apache.tapestry.spec.IComponentSpecification;
 import org.easymock.MockControl;
@@ -60,7 +62,7 @@
     {   
         ClassResolver resolver = new DefaultClassResolver();
         
-        IComponentEventInvoker invoker = new org.apache.tapestry.internal.event.impl.ComponentEventInvoker();
+        IComponentEventInvoker invoker = new ComponentEventInvoker();
         IEngineService engine = newMock(IEngineService.class);
         IRequestCycle cycle = newCycle();
         checkOrder(cycle, false);
@@ -248,9 +250,22 @@
         IDirectEvent component = newMock(IDirectEvent.class);
         IComponentSpecification spec = new ComponentSpecification();
         
+        IDirectEvent comp1 = newMock(IDirectEvent.class);
+        IComponentSpecification comp1Spec = new ComponentSpecification();
+        
+        IDirectEvent comp2 = newMock(IDirectEvent.class);
+        IComponentSpecification comp2Spec = new ComponentSpecification();
+        
         // now test render
+        spec.addEventListener("comp1", new String[] {"onclick"}, "testMethod", "form1", true, true, false);
         invoker.addEventListener("comp1", spec);
-        spec.addEventListener("comp1", new String[] {"onclick"}, "testMethod", "form1", true, false, false);
+        invoker.addFormEventListener("form1", spec);
+        
+        spec.addEventListener("comp2", new String[] {"onclick"}, "testAnotherMethod", "form1", true, true, false);
+        invoker.addEventListener("comp2", spec);
+        invoker.addFormEventListener("form1", spec);
+        
+        // render of comp1
         
         expect(cycle.isRewinding()).andReturn(false);
         
@@ -258,31 +273,60 @@
         
         expect(cycle.getAttribute(TapestryUtils.FIELD_PRERENDER)).andReturn(null);
         
-        expect(component.getId()).andReturn("comp1").anyTimes();
-        expect(component.getClientId()).andReturn("comp1").anyTimes();
+        expect(comp1.getId()).andReturn("comp1").anyTimes();
+        expect(comp1.getClientId()).andReturn("comp1").anyTimes();
+        
+        expect(cycle.getAttribute(ComponentEventConnectionWorker.FORM_NAME_LIST + "form1")).andReturn(null);
+        
+        expect(comp1.getSpecification()).andReturn(comp1Spec);
+        
+        // render of comp2
+        
+        expect(cycle.isRewinding()).andReturn(false);
+        
+        expect(cycle.getAttribute(TapestryUtils.PAGE_RENDER_SUPPORT_ATTRIBUTE)).andReturn(prs);
+        
+        expect(cycle.getAttribute(TapestryUtils.FIELD_PRERENDER)).andReturn(null);
+        
+        expect(comp2.getId()).andReturn("comp2").anyTimes();
+        expect(comp2.getClientId()).andReturn("comp2").anyTimes();
         
         expect(cycle.getAttribute(ComponentEventConnectionWorker.FORM_NAME_LIST + "form1")).andReturn(null);
         
+        expect(comp2.getSpecification()).andReturn(comp2Spec);
+        
+        // render of component
+        
+        expect(cycle.isRewinding()).andReturn(false);
+        
+        expect(cycle.getAttribute(TapestryUtils.PAGE_RENDER_SUPPORT_ATTRIBUTE)).andReturn(prs);
+        
+        expect(cycle.getAttribute(TapestryUtils.FIELD_PRERENDER)).andReturn(null);
+        
+        expect(component.getId()).andReturn("comp").anyTimes();
+        
         expect(component.getSpecification()).andReturn(spec);
         
         replay();
         
+        worker.renderComponent(cycle, comp1);
+        worker.renderComponent(cycle, comp2);
         worker.renderComponent(cycle, component);
         
         verify();
         
-        assertEquals(1, worker.getDefferedFormConnections().size());
+        assertEquals(worker.getDefferedFormConnections().size(), 1);
         
         List deferred = (List)worker.getDefferedFormConnections().get("form1");
         
         assert deferred != null;
-        assertEquals(1, deferred.size());
+        assertEquals(deferred.size(), 2);
         
         Object[] parms = (Object[])deferred.get(0);
         assertEquals(4, parms.length);
         
         // assert async is false
-        assert (Boolean)parms[1] == false;
+        assert (Boolean)parms[1] == true;
         
         // assert validate form is true
         assert (Boolean)parms[2] == true;
@@ -296,7 +340,29 @@
         assert parm.get("target") == null;
         
         assertEquals("comp1", parm.get("clientId"));
-        assertEquals(component, parm.get("component"));
+        assertEquals(comp1, parm.get("component"));
+        
+        // test comp2 connections
+        
+        parms = (Object[])deferred.get(1);
+        assertEquals(4, parms.length);
+        
+        // assert async is false
+        assert (Boolean)parms[1] == true;
+        
+        // assert validate form is true
+        assert (Boolean)parms[2] == true;
+        
+        parm = (Map)parms[0];
+        
+        assert parm.get("clientId") != null;
+        assert parm.get("component") != null;
+        assert parm.get("url") == null;
+        assert parm.get("formEvents") == null;
+        assert parm.get("target") == null;
+        
+        assertEquals("comp2", parm.get("clientId"));
+        assertEquals(comp2, parm.get("component"));
     }
     
     
@@ -304,7 +370,7 @@
     {
         ClassResolver resolver = new DefaultClassResolver();
         
-        IComponentEventInvoker invoker = new org.apache.tapestry.internal.event.impl.ComponentEventInvoker();
+        IComponentEventInvoker invoker = new ComponentEventInvoker();
         IEngineService engine = newMock(IEngineService.class);
         IRequestCycle cycle = newCycle();
         IScriptSource scriptSource = newMock(IScriptSource.class);
@@ -325,12 +391,23 @@
         IDirectEvent component = newMock(IDirectEvent.class);
         IComponentSpecification spec = new ComponentSpecification();
         
+        IComponent comp1 = newMock(IComponent.class);
+        IComponentSpecification comp1Spec = new ComponentSpecification();
+        
+        IComponent comp2 = newMock(IComponent.class);
+        IComponentSpecification comp2Spec = new ComponentSpecification();
+        
         IForm form = newMock(IForm.class);
         IComponentSpecification formSpec = new ComponentSpecification();
         
         // now test render
+        spec.addEventListener("comp1", new String[] {"onclick"}, "testMethod", "form1", false, true, false);
         invoker.addEventListener("comp1", spec);
-        spec.addEventListener("comp1", new String[] {"onclick"}, "testMethod", "form1", false, false, false);
+        invoker.addFormEventListener("form1", spec);
+        
+        spec.addEventListener("comp2", new String[] {"ondoubleclick"}, "clickMethod", "form1", false, true, false);
+        invoker.addEventListener("comp2", spec);
+        invoker.addFormEventListener("form1", spec);
         
         expect(cycle.isRewinding()).andReturn(false);
         
@@ -338,23 +415,56 @@
         
         expect(cycle.getAttribute(TapestryUtils.FIELD_PRERENDER)).andReturn(null);
         
-        expect(component.getId()).andReturn("comp1").anyTimes();
-        expect(component.getClientId()).andReturn("comp1").anyTimes();
+        expect(component.getId()).andReturn("compListener").anyTimes();
+        expect(component.getClientId()).andReturn("compListener").anyTimes();
+        
+        expect(component.getSpecification()).andReturn(spec);
+        
+        // comp1 render
+        
+        expect(cycle.isRewinding()).andReturn(false);
+        
+        expect(cycle.getAttribute(TapestryUtils.PAGE_RENDER_SUPPORT_ATTRIBUTE)).andReturn(prs);
+        
+        expect(cycle.getAttribute(TapestryUtils.FIELD_PRERENDER)).andReturn(null);
+        
+        expect(comp1.getId()).andReturn("comp1").anyTimes();
+        expect(comp1.getClientId()).andReturn("comp1").anyTimes();
         
         expect(cycle.getAttribute(ComponentEventConnectionWorker.FORM_NAME_LIST + "form1")).andReturn(null);
         
-        expect(component.getSpecification()).andReturn(spec);
+        expect(comp1.getSpecification()).andReturn(comp1Spec).anyTimes();
+        
+        // comp2 render
+        
+        expect(cycle.isRewinding()).andReturn(false);
+        
+        expect(cycle.getAttribute(TapestryUtils.PAGE_RENDER_SUPPORT_ATTRIBUTE)).andReturn(prs);
+        
+        expect(cycle.getAttribute(TapestryUtils.FIELD_PRERENDER)).andReturn(null);
+        
+        expect(comp2.getId()).andReturn("comp2").anyTimes();
+        expect(comp2.getClientId()).andReturn("comp2").anyTimes();
+        
+        expect(cycle.getAttribute(ComponentEventConnectionWorker.FORM_NAME_LIST + "form1")).andReturn(null);
+        
+        expect(comp2.getSpecification()).andReturn(comp2Spec).anyTimes();
         
         replay();
         
         worker.renderComponent(cycle, component);
+        worker.renderComponent(cycle, comp1);
+        worker.renderComponent(cycle, comp2);
         
         verify();
         
-        assertEquals(1, worker.getDefferedFormConnections().size());
+        assertEquals(worker.getDefferedFormConnections().size(), 1);
+        assertEquals(((List)worker.getDefferedFormConnections().get("form1")).size(), 2);
         
         checkOrder(form, false);
         checkOrder(component, false);
+        checkOrder(comp1, false);
+        checkOrder(comp2, false);
         
         expect(cycle.isRewinding()).andReturn(false);
         
@@ -368,23 +478,28 @@
         
         expect(cycle.getAttribute(ComponentEventConnectionWorker.FORM_NAME_LIST + "form1")).andReturn(null);
         
-        cycle.setAttribute(eq(ComponentEventConnectionWorker.FORM_NAME_LIST + "form1"), 
-                isA(List.class));
+        cycle.setAttribute(eq(ComponentEventConnectionWorker.FORM_NAME_LIST + "form1"), isA(List.class));
         
         expect(form.getName()).andReturn("form1_0").anyTimes();
         
-        expect(component.getSpecification()).andReturn(spec);
+        expect(comp1.getSpecification()).andReturn(comp1Spec);
         
-        expect(component.getId()).andReturn("comp1").anyTimes();
+        expect(comp1.getId()).andReturn("comp1").anyTimes();
+        
+        expect(comp2.getSpecification()).andReturn(comp2Spec);
+        
+        expect(comp2.getId()).andReturn("comp2").anyTimes();
         
         List formNames = new ArrayList();
         formNames.add("form1_0");
         
-        expect(cycle.getAttribute(ComponentEventConnectionWorker.FORM_NAME_LIST + "form1"))
-        .andReturn(formNames);
+        expect(cycle.getAttribute(ComponentEventConnectionWorker.FORM_NAME_LIST + "form1")).andReturn(formNames).anyTimes();
         
-        expect(cycle.getAttribute(TapestryUtils.PAGE_RENDER_SUPPORT_ATTRIBUTE))
-        .andReturn(prs);
+        expect(cycle.getAttribute(TapestryUtils.PAGE_RENDER_SUPPORT_ATTRIBUTE)).andReturn(prs).anyTimes();
+        
+        expect(scriptSource.getScript(compScriptResource)).andReturn(script);
+        
+        script.execute(eq(form), eq(cycle), eq(prs), isA(Map.class));
         
         expect(scriptSource.getScript(compScriptResource)).andReturn(script);