hlship      2003/06/20 08:26:09

  Modified:    hivemind/src/test/hivemind/test/external
                        TestExternalParser.java
  Added:       hivemind/src/test/hivemind/test/external
                        MapVariableSource.java VariableSourceOrder.xml
  Log:
  Add tests to check that variable sources are consulted in the specified order.
  
  Revision  Changes    Path
  1.6       +39 -1     
jakarta-commons-sandbox/hivemind/src/test/hivemind/test/external/TestExternalParser.java
  
  Index: TestExternalParser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/hivemind/src/test/hivemind/test/external/TestExternalParser.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- TestExternalParser.java   11 Jun 2003 14:13:29 -0000      1.5
  +++ TestExternalParser.java   20 Jun 2003 15:26:09 -0000      1.6
  @@ -288,4 +288,42 @@
           assertEquals("${town}", e2.getContent());
   
       }
  +    
  +     public void testVariableSourceOrder() throws Exception
  +     {
  +             RegistryBuilder b = new RegistryBuilder();
  +             DescriptorParser dp = new DescriptorParser();
  +
  +             b.processModule(_resolver, dp.parse(getMasterModuleLocation()));
  +             b.processModule(_resolver, 
dp.parse(getLocation("VariableSourceOrder.xml")));
  +
  +             IRegistry r = b.constructRegistry();
  +
  +             List elements = r.getConfiguration("hivemind.test.external.Elements");
  +             assertEquals(1, elements.size());
  +
  +             IElement e = (IElement) elements.get(0);
  +
  +             assertEquals("family", e.getElementName());
  +
  +             IAttribute a = (IAttribute) e.getAttributes().get(0);
  +             assertEquals("husband", a.getName());
  +             assertEquals("Homer Simpson", a.getValue());
  +
  +             List l2 = e.getElements();
  +             IElement e2 = (IElement) l2.get(0);
  +             assertEquals("Wife: Wilma Flintstone", e2.getContent());
  +
  +             e2 = (IElement) l2.get(1);
  +             assertEquals("Barney Rubble", e2.getContent());
  +
  +             e2 = (IElement) l2.get(2);
  +             assertEquals("Dino", e2.getContent());
  +
  +             e2 = (IElement) l2.get(3);
  +             // No value for this variable.
  +
  +             assertEquals("${town}", e2.getContent());
  +
  +     }    
   }
  
  
  
  1.1                  
jakarta-commons-sandbox/hivemind/src/test/hivemind/test/external/MapVariableSource.java
  
  Index: MapVariableSource.java
  ===================================================================
  package hivemind.test.external;
  
  import java.util.Map;
  
  import org.apache.commons.hivemind.IVariableSource;
  
  
  /**
   * Allows a Map as the basis of a variable source.
   *
   * @author Howard Lewis Ship
   * @version $Id: MapVariableSource.java,v 1.1 2003/06/20 15:26:09 hlship Exp $
   */
  public class MapVariableSource implements IVariableSource
  {
        private Map _map;
        
      public String valueForVariable(String variableName)
      {
          return (String)_map.get(variableName);
      }
  
      public Map getMap()
      {
          return _map;
      }
  
      public void setMap(Map map)
      {
          _map = map;
      }
  
  }
  
  
  
  1.1                  
jakarta-commons-sandbox/hivemind/src/test/hivemind/test/external/VariableSourceOrder.xml
  
  Index: VariableSourceOrder.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Id: VariableSourceOrder.xml,v 1.1 2003/06/20 15:26:09 hlship Exp $ -->
  <module
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
    
xsi:noNamespaceSchemaLocation="http://jakarta.apache.org/commons/hivemind/schema/HiveMind_1.0.xsd";
        id="hivemind.test.external" 
        version="1.0.0">
        <contribute-configuration 
configuration-id="org.apache.commons.hivemind.VariableSource">
          <create-instance 
class="org.apache.commons.hivemind.VariableSourceContribution">
                <set property="order" value="1000"/>
            <set-create property="source" 
class="hivemind.test.external.PropertiesVariableSource"/>
          </create-instance>    
          <create-instance 
class="org.apache.commons.hivemind.VariableSourceContribution">
                <set property="order" value="500"/>
                <set-create property="source" 
class="hivemind.test.external.MapVariableSource">
                        <set-create property="map" class="java.util.HashMap">
                                 <set property="husband" value="Homer Simpson"/>
                        </set-create>   
                </set-create>   
          </create-instance>
        </contribute-configuration>
    <configuration id="Elements" element-type="org.apache.commons.hivemind.IElement">
      <xml path="Variables.xml"/>
    </configuration>
  </module>
  
  

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

Reply via email to