Author: cziegeler
Date: Mon Oct 25 05:53:02 2004
New Revision: 55493

Modified:
   
cocoon/trunk/src/core/test/org/apache/cocoon/core/container/ContainerTestCase.java
   cocoon/trunk/src/test/org/apache/cocoon/SitemapComponentTestCase.java
Log:
Add some helper methods - not sure if they really help

Modified: 
cocoon/trunk/src/core/test/org/apache/cocoon/core/container/ContainerTestCase.java
==============================================================================
--- 
cocoon/trunk/src/core/test/org/apache/cocoon/core/container/ContainerTestCase.java
  (original)
+++ 
cocoon/trunk/src/core/test/org/apache/cocoon/core/container/ContainerTestCase.java
  Mon Oct 25 05:53:02 2004
@@ -30,6 +30,7 @@
 import org.apache.avalon.framework.context.DefaultContext;
 import org.apache.avalon.framework.logger.ConsoleLogger;
 import org.apache.avalon.framework.logger.Logger;
+import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.avalon.framework.service.ServiceException;
 import org.apache.avalon.framework.service.ServiceManager;
 
@@ -121,6 +122,9 @@
     /** The service manager to use */
     private ServiceManager manager;
 
+    /** The context */
+    private Context context;
+    
     /** Return the logger */
     protected Logger getLogger() {
         return logger;
@@ -184,11 +188,10 @@
             conf = new DefaultConfiguration("", "-");
         }
 
-        final Context context = this.setupContext( conf.getChild( "context" ) 
);
+        this.context = this.setupContext( conf.getChild( "context" ) );
 
         this.setupManagers( conf.getChild( "components" ),
-                            conf.getChild( "roles" ),
-                            context );
+                            conf.getChild( "roles" ));
     }
 
     /* (non-Javadoc)
@@ -259,8 +262,7 @@
     }
     
     final private void setupManagers( final Configuration confCM,
-                                      final Configuration confRM,
-                                      final Context context )
+                                      final Configuration confRM)
     throws Exception {
         // Setup the RoleManager
         RoleManager roleManager = new RoleManager();
@@ -270,7 +272,7 @@
         // Set up the ComponentLocator
         CocoonServiceManager ecManager = new CocoonServiceManager(null, null);
         ecManager.enableLogging( this.getLogger() );
-        ecManager.contextualize( context );
+        ecManager.contextualize( this.context );
         ecManager.setRoleManager( roleManager );
         ecManager.setLoggerManager( new DefaultLoggerManager(this.logger));
         ecManager.configure( confCM );
@@ -288,6 +290,35 @@
         manager.release( object );
     }
     
+    private Object getComponent(String classname,
+                                  Configuration conf,
+                                  Parameters p) 
+    throws Exception {
+        final Object instance = Class.forName(classname).newInstance();
+        ContainerUtil.enableLogging(instance, getLogger());
+        ContainerUtil.contextualize(instance, this.context);
+        ContainerUtil.service(instance, getManager());
+        ContainerUtil.configure(instance, conf);
+        ContainerUtil.parameterize(instance, p);
+        ContainerUtil.initialize(instance);
+        return instance;
+    }
+    
+    protected Object getComponent(String classname,
+                                  Configuration conf) 
+    throws Exception {
+        return this.getComponent(classname, conf, null);
+    }
+
+    protected Object getComponent(String classname,
+                                  Parameters p) 
+    throws Exception {
+        return this.getComponent(classname, null, p);
+    }
+    
+     /**
+     * We use this simple logger manager that sends all output to the console 
(logger)
+     */
     protected static class DefaultLoggerManager implements LoggerManager {
         
         private Logger logger;

Modified: cocoon/trunk/src/test/org/apache/cocoon/SitemapComponentTestCase.java
==============================================================================
--- cocoon/trunk/src/test/org/apache/cocoon/SitemapComponentTestCase.java       
(original)
+++ cocoon/trunk/src/test/org/apache/cocoon/SitemapComponentTestCase.java       
Mon Oct 25 05:53:02 2004
@@ -29,6 +29,7 @@
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
+import org.apache.avalon.framework.configuration.DefaultConfiguration;
 import org.apache.avalon.framework.context.DefaultContext;
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.avalon.framework.service.ServiceException;
@@ -39,6 +40,8 @@
 import org.apache.cocoon.components.flow.FlowHelper;
 import org.apache.cocoon.components.flow.Interpreter;
 import org.apache.cocoon.components.source.SourceResolverAdapter;
+import org.apache.cocoon.core.container.CocoonServiceManager;
+import org.apache.cocoon.core.container.CocoonServiceSelector;
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.mock.MockContext;
 import org.apache.cocoon.environment.mock.MockRedirector;
@@ -103,6 +106,9 @@
         context.put(ContextHelper.CONTEXT_OBJECT_MODEL, objectmodel);
     }
 
+    /* (non-Javadoc)
+     * @see junit.framework.TestCase#setUp()
+     */
     public void setUp() throws Exception {
         super.setUp();
         objectmodel.clear();
@@ -117,6 +123,38 @@
         objectmodel.put(ObjectModelHelper.CONTEXT_OBJECT, context);
 
         redirector.reset();
+    }
+
+    /* (non-Javadoc)
+     * @see 
org.apache.cocoon.core.container.ContainerTestCase#addComponents(org.apache.cocoon.core.container.CocoonServiceManager)
+     */
+    protected void addComponents(CocoonServiceManager manager) 
+    throws ServiceException {
+        super.addComponents(manager);
+        final String[] o = this.getSitemapComponentInfo();
+        if ( o != null ) {
+            final String typeClassName = o[0];
+            final String componentClassName = o[1];
+            final String key = o[2];
+            
+            // Create configuration for selector
+            final DefaultConfiguration df = new 
DefaultConfiguration("transformers");
+            final DefaultConfiguration factory = new 
DefaultConfiguration("component-instance");
+            factory.setAttribute("class", componentClassName);
+            factory.setAttribute("name", key);
+            df.addChild(factory);
+            manager.addComponent(typeClassName + "Selector", 
+                                 CocoonServiceSelector.class, 
+                                 df);
+        }
+    }
+
+    /**
+     * This triple can be used to add a sitemap component to the service 
manager
+     * @return A triple of strings: class name of the type, class name of the 
component, key
+     */
+    protected String[] getSitemapComponentInfo() {
+        return null;
     }
 
     /**

Reply via email to