jvanzyl     01/12/31 07:30:19

  Added:       src/test/org/apache/turbine/pipeline TestPipelineMapper.java
                        classic-turbine-pipeline.xml
                        default-action-valve.xml default-target-valve.xml
  Log:
  - Added a test for the mapping of a pipeline XML description to a pipeline
    object using the mapper in stratum.
  
  Revision  Changes    Path
  1.1                  
jakarta-turbine-3/src/test/org/apache/turbine/pipeline/TestPipelineMapper.java
  
  Index: TestPipelineMapper.java
  ===================================================================
  package org.apache.turbine.pipeline;
  
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *    "Apache Turbine" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache Turbine", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  import java.io.File;
  import junit.framework.Test;
  import junit.framework.TestCase;
  import junit.framework.TestSuite;
  
  import org.apache.stratum.xo.Mapper;
  
  import org.apache.turbine.pipeline.TurbinePipeline;
  
  /**
   * Test Pipeline and valve definitions.
   *
   * @author <a href="mailto:[EMAIL PROTECTED]";>Jason van Zyl</a>
   * @version $Id: TestPipelineMapper.java,v 1.1 2001/12/31 15:30:19 jvanzyl Exp $
   */
  public class TestPipelineMapper 
      extends TestCase 
  {
      /**
       * Test document which starts the whole mapping process.
       */
      private static String TEST_DOCUMENT = 
          "src/test/org/apache/turbine/pipeline/classic-turbine-pipeline.xml";
      
      /**
       * Test class which is populated with the contents and
       * specifications in the test document.
       */
      private static String TEST_CLASS = 
          "org.apache.turbine.pipeline.TurbinePipeline";
  
      /**
       * Constructor
       */
      public TestPipelineMapper(String testName) 
      {
          super(testName);
      }
  
      /**
       * Return the Test
       */
      public static Test suite() 
      {
          return new TestSuite(TestPipelineMapper.class);
      }
  
      /**
       * Setup the test.
       */
      public void setUp() 
      {
          // Nothing done here yet.
      }
     
      /**
       * Tear down the test.
       */
      public void tearDown() 
      {
          // Nothing to do here yet.
      }
  
      /**
       * Test the mapping performed by the mapper.
       */
      public void testPersonMapping()
      {
          try
          {
              Mapper m = new Mapper();
              m.setDebug(true);
              
              // We want to pull in valve definition by reference. This was
              // originally setup for the Maven project object model where XML
              // are located in different directories but I will change the
              // default behaviour to look in the same directory first without
              // having to define an inclusion rule. This can be done automatically.
              // This rule just says that when we encounter a "valveDefinition"
              // element to look in the same directory as the parent XML file
              // for the description of the object to be consumed.
              m.setInclusionRule("valveDefinition", ".");
              TurbinePipeline p = (TurbinePipeline) m.map(TEST_DOCUMENT, TEST_CLASS);
              
              // For our test so far we have a pipeline with two valve
              // definitions. So lets make sure that the XML was consumed
              // correctly and that our objects were created accordingly.
              
              assertEquals("ClassicTurbinePipeline",p.getName());
              
              assertEquals("DefaultActionValve",p.getValveDefinition(0).getName());
              assertEquals("org.apache.turbine.pipeline.DefaultActionValve", 
                  p.getValveDefinition(0).getClassName());
  
              assertEquals("DefaultTargetValve",p.getValveDefinition(1).getName());
              assertEquals("org.apache.turbine.pipeline.DefaultTargetValve", 
                  p.getValveDefinition(1).getClassName());
              
          }            
          catch (Exception e)
          {
              e.printStackTrace();
              fail(e.getMessage());
          }
      }
  }
  
  
  
  1.1                  
jakarta-turbine-3/src/test/org/apache/turbine/pipeline/classic-turbine-pipeline.xml
  
  Index: classic-turbine-pipeline.xml
  ===================================================================
  <pipeline>
    <name>ClassicTurbinePipeline</name>
    <valveDefinitions>
      <valveDefinition id="default-action-valve"/>
      <valveDefinition id="default-target-valve"/>
    </valveDefinitions>
  </pipeline>
  
  
  
  1.1                  
jakarta-turbine-3/src/test/org/apache/turbine/pipeline/default-action-valve.xml
  
  Index: default-action-valve.xml
  ===================================================================
  <valveDefinition>
    <name>DefaultActionValve</name>
    <className>org.apache.turbine.pipeline.DefaultActionValve</className>
  </valveDefinition>
  
  
  
  1.1                  
jakarta-turbine-3/src/test/org/apache/turbine/pipeline/default-target-valve.xml
  
  Index: default-target-valve.xml
  ===================================================================
  <valveDefinition>
    <name>DefaultTargetValve</name>
    <className>org.apache.turbine.pipeline.DefaultTargetValve</className>
  </valveDefinition>
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to