You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by st...@apache.org on 2004/06/14 16:49:25 UTC
cvs commit: cocoon-2.1/src/test/org/apache/cocoon SitemapComponentTestCase.java
stephan 2004/06/14 07:49:25
Modified: src/test/org/apache/cocoon SitemapComponentTestCase.java
Log:
Add methods to test flow scripts.
Revision Changes Path
1.6 +82 -1 cocoon-2.1/src/test/org/apache/cocoon/SitemapComponentTestCase.java
Index: SitemapComponentTestCase.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/test/org/apache/cocoon/SitemapComponentTestCase.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SitemapComponentTestCase.java 5 Mar 2004 13:03:02 -0000 1.5
+++ SitemapComponentTestCase.java 14 Jun 2004 14:49:25 -0000 1.6
@@ -19,6 +19,7 @@
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.IOException;
+import java.util.*;
import java.util.HashMap;
import java.util.Map;
@@ -31,8 +32,12 @@
import org.apache.avalon.framework.component.Component;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.component.ComponentSelector;
+import org.apache.avalon.framework.context.DefaultContext;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.cocoon.acting.Action;
+import org.apache.cocoon.components.ContextHelper;
+import org.apache.cocoon.components.flow.*;
+import org.apache.cocoon.components.flow.Interpreter;
import org.apache.cocoon.components.source.SourceResolverAdapter;
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.mock.MockContext;
@@ -100,6 +105,12 @@
public final Map getObjectModel() {
return objectmodel;
}
+
+ protected void addContext(DefaultContext context) {
+ context.put(ContextHelper.CONTEXT_REQUEST_OBJECT, request);
+ context.put(ContextHelper.CONTEXT_RESPONSE_OBJECT, response);
+ context.put(ContextHelper.CONTEXT_OBJECT_MODEL, objectmodel);
+ }
public void setUp() {
objectmodel.clear();
@@ -393,6 +404,76 @@
}
return document.toByteArray();
+ }
+
+ public String callFunction(String type, String source, String function, List params) throws Exception {
+
+ ComponentSelector selector = null;
+ Interpreter interpreter = null;
+ SourceResolver resolver = null;
+
+ try {
+ selector = (ComponentSelector) this.manager.lookup(Interpreter.ROLE);
+ assertNotNull("Test lookup of interpreter selector", selector);
+
+ resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
+ assertNotNull("Test lookup of source resolver", resolver);
+
+ assertNotNull("Test if interpreter name is not null", type);
+ interpreter = (Interpreter) selector.select(type);
+ assertNotNull("Test lookup of interpreter", interpreter);
+
+ ((AbstractInterpreter)interpreter).register(source);
+ interpreter.callFunction(function, params, getRedirector());
+
+ } catch (ComponentException ce) {
+ getLogger().error("Could not retrieve interpeter", ce);
+ fail("Could not retrieve interpreter: " + ce.toString());
+ } finally {
+ if (interpreter != null) {
+ selector.release((Component) interpreter);
+ }
+ this.manager.release(selector);
+ this.manager.release(resolver);
+ }
+ return FlowHelper.getWebContinuation(getObjectModel()).getId();
+ }
+
+ public String callContinuation(String type, String source, String id, List params) throws Exception {
+
+ ComponentSelector selector = null;
+ Interpreter interpreter = null;
+ SourceResolver resolver = null;
+
+ try {
+ selector = (ComponentSelector) this.manager.lookup(Interpreter.ROLE);
+ assertNotNull("Test lookup of interpreter selector", selector);
+
+ resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
+ assertNotNull("Test lookup of source resolver", resolver);
+
+ assertNotNull("Test if interpreter name is not null", type);
+ interpreter = (Interpreter) selector.select(type);
+ assertNotNull("Test lookup of interpreter", interpreter);
+
+ ((AbstractInterpreter)interpreter).register(source);
+ interpreter.handleContinuation(id, params, getRedirector());
+
+ } catch (ComponentException ce) {
+ getLogger().error("Could not retrieve interpreter", ce);
+ fail("Could not retrieve interpreter: " + ce.toString());
+ } finally {
+ if (interpreter != null) {
+ selector.release((Component) interpreter);
+ }
+ this.manager.release(selector);
+ this.manager.release(resolver);
+ }
+ return FlowHelper.getWebContinuation(getObjectModel()).getId();
+ }
+
+ public Object getFlowContextObject() {
+ return FlowHelper.getContextObject(getObjectModel());
}
public final void print(Document document) {