You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hivemind.apache.org by kn...@apache.org on 2004/09/12 20:30:56 UTC

cvs commit: jakarta-hivemind/framework/src/test/hivemind/test/parse GenericModule.xml TestDescriptorParser.java

knut        2004/09/12 11:30:56

  Modified:    framework/src/test/hivemind/test FrameworkTestCase.java
                        TestDependency.java TestRegistryBuilder.java
               framework/src/test/hivemind/test/parse GenericModule.xml
                        TestDescriptorParser.java
  Added:       framework/src/test/hivemind/test SimpleModuleProvider.java
  Log:
  - added createModuleDescriptor() and createDependencyDescriptor() methods to FrameworkTestCase
  - added SimpleModuleProvider which is convenient to use in tests
  - refactored TestDependency accordingly
  - added test for duplicate module ids to TestRegistryBuilder
  - added <dependency> test to TestDescriptorParser
  
  Revision  Changes    Path
  1.11      +30 -0     jakarta-hivemind/framework/src/test/hivemind/test/FrameworkTestCase.java
  
  Index: FrameworkTestCase.java
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/FrameworkTestCase.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- FrameworkTestCase.java	24 Jul 2004 13:41:52 -0000	1.10
  +++ FrameworkTestCase.java	12 Sep 2004 18:30:55 -0000	1.11
  @@ -18,7 +18,9 @@
   import org.apache.hivemind.Resource;
   import org.apache.hivemind.impl.DefaultClassResolver;
   import org.apache.hivemind.impl.DefaultErrorHandler;
  +import org.apache.hivemind.impl.LocationImpl;
   import org.apache.hivemind.impl.RegistryAssemblyImpl;
  +import org.apache.hivemind.parse.DependencyDescriptor;
   import org.apache.hivemind.parse.DescriptorParser;
   import org.apache.hivemind.parse.ModuleDescriptor;
   import org.apache.hivemind.test.HiveMindTestCase;
  @@ -58,6 +60,34 @@
       protected void interceptLogging()
       {
           interceptLogging("org.apache.hivemind");
  +    }
  +
  +    /**
  +     * Convenience method for creating a {@link org.apache.hivemind.parse.ModuleDescriptor}.
  +     */
  +    protected ModuleDescriptor createModuleDescriptor(String moduleId, String version)
  +    {
  +        ModuleDescriptor result = new ModuleDescriptor();
  +    
  +        result.setModuleId(moduleId);
  +        result.setVersion(version);
  +        result.setLocation(new LocationImpl(null));
  +
  +        return result;
  +    }
  +
  +    /**
  +     * Convenience method for creating a {@link org.apache.hivemind.parse.DependencyDescriptor}.
  +     */
  +    protected DependencyDescriptor createDependencyDescriptor(String moduleId, String version)
  +    {
  +        DependencyDescriptor result = new DependencyDescriptor();
  +    
  +        result.setModuleId(moduleId);
  +        result.setVersion(version);
  +        result.setLocation(new LocationImpl(null));
  +    
  +        return result;
       }
   
   }
  
  
  
  1.2       +0 -54     jakarta-hivemind/framework/src/test/hivemind/test/TestDependency.java
  
  Index: TestDependency.java
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/TestDependency.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestDependency.java	9 Sep 2004 16:06:46 -0000	1.1
  +++ TestDependency.java	12 Sep 2004 18:30:56 -0000	1.2
  @@ -14,15 +14,7 @@
   
   package hivemind.test;
   
  -import java.util.ArrayList;
  -import java.util.HashSet;
  -import java.util.List;
  -import java.util.Set;
  -
  -import org.apache.hivemind.ErrorHandler;
   import org.apache.hivemind.Registry;
  -import org.apache.hivemind.impl.ModuleProvider;
  -import org.apache.hivemind.impl.RegistryAssembly;
   import org.apache.hivemind.parse.DependencyDescriptor;
   import org.apache.hivemind.parse.ModuleDescriptor;
   
  @@ -34,26 +26,6 @@
   public class TestDependency extends FrameworkTestCase
   {
   
  -    /**
  -     * An implementation of the {@link org.apache.hivemind.impl.ModuleProvider}
  -     * interface convenient for testing purposes.  This provider simply provides
  -     * ModuleDescriptors registered with it beforehand.
  -     */
  -    private static class SimpleModuleProvider implements ModuleProvider
  -    {
  -        private Set _moduleDescriptors = new HashSet();
  -
  -        public void addModuleDescriptor(ModuleDescriptor moduleDescriptor)
  -        {
  -            _moduleDescriptors.add(moduleDescriptor);
  -        }
  -
  -        public List getModuleDescriptors(ErrorHandler handler, RegistryAssembly assembly)
  -        {
  -            return new ArrayList(_moduleDescriptors);
  -        }
  -    }
  -
       public void testMissingRequiredModule() throws Exception
       {
           ModuleDescriptor dependingModule = createModuleDescriptor(
  @@ -117,32 +89,6 @@
           Registry r = buildFrameworkRegistry(provider);
   
           assertLoggedMessage("Version of required module required.module does not match expected version 1.0.0.");
  -    }
  -
  -    /**
  -     * Convenience method for creating a {@link org.apache.hivemind.parse.ModuleDescriptor}.
  -     */
  -    private ModuleDescriptor createModuleDescriptor(String moduleId, String version)
  -    {
  -        ModuleDescriptor result = new ModuleDescriptor();
  -
  -        result.setModuleId(moduleId);
  -        result.setVersion(version);
  -
  -        return result;
  -    }
  -
  -    /**
  -     * Convenience method for creating a {@link org.apache.hivemind.parse.DependencyDescriptor}.
  -     */
  -    private DependencyDescriptor createDependencyDescriptor(String moduleId, String version)
  -    {
  -        DependencyDescriptor result = new DependencyDescriptor();
  -
  -        result.setModuleId(moduleId);
  -        result.setVersion(version);
  -
  -        return result;
       }
   
   }
  
  
  
  1.16      +36 -15    jakarta-hivemind/framework/src/test/hivemind/test/TestRegistryBuilder.java
  
  Index: TestRegistryBuilder.java
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/TestRegistryBuilder.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- TestRegistryBuilder.java	9 Sep 2004 16:06:46 -0000	1.15
  +++ TestRegistryBuilder.java	12 Sep 2004 18:30:56 -0000	1.16
  @@ -29,40 +29,41 @@
   import org.apache.hivemind.impl.RegistryBuilder;
   import org.apache.hivemind.impl.XmlModuleProvider;
   import org.apache.hivemind.internal.RegistryInfrastructure;
  +import org.apache.hivemind.parse.ModuleDescriptor;
   import org.apache.hivemind.service.ClassFactory;
   
   /**
  - * Tests the {@link org.apache.hivemind.impl.RegistryBuilder} class.
  - *
  + * Tests the {@link org.apache.hivemind.impl.RegistryBuilder}class.
  + * 
    * @author Howard Lewis Ship
    */
   public class TestRegistryBuilder extends FrameworkTestCase
   {
       /**
  -     * Reproduce test {@link hivemind.test.config.TestConfiguration#testValueVariables()} using
  +     * Reproduce test {@link hivemind.test.config.TestConfiguration#testValueVariables()}using
        * dynamic lookup of hivemodule resources.
        */
   
       public void testLookup() throws Exception
       {
  -    	// JDK 1.3 URLClassLoader doesn't seem to work properly for directories, so
  -    	// the contents of the TestRegistryBuilder folder are packaged inside this JAR.
  -    	
  +        // JDK 1.3 URLClassLoader doesn't seem to work properly for directories, so
  +        // the contents of the TestRegistryBuilder folder are packaged inside this JAR.
  +
           File f = new File(getFrameworkPath("src/test-data/TestRegistryBuilder.jar"));
   
  -        URL[] urls = new URL[] { f.toURL()};
  +        URL[] urls = new URL[]{f.toURL()};
   
  -        ClassLoader loader =
  -            new URLClassLoader(urls, Thread.currentThread().getContextClassLoader());
  +        ClassLoader loader = new URLClassLoader(urls, Thread.currentThread()
  +                .getContextClassLoader());
   
           ClassResolver resolver = new DefaultClassResolver(loader);
   
           RegistryBuilder b = new RegistryBuilder();
   
           ModuleProvider provider = new XmlModuleProvider(resolver, XmlModuleProvider.HIVE_MODULE_XML);
  -        
  -        RegistryInfrastructure r =
  -            (RegistryInfrastructure) b.constructRegistry(provider, Locale.getDefault());
  +
  +        RegistryInfrastructure r = (RegistryInfrastructure) b.constructRegistry(provider, Locale
  +                .getDefault());
   
           List l = r.getConfiguration("hivemind.test.config.Symbols");
           assertEquals(1, l.size());
  @@ -77,9 +78,29 @@
       {
           Registry r = RegistryBuilder.constructDefaultRegistry();
   
  -        ClassFactory factory =
  -            (ClassFactory) r.getService("hivemind.ClassFactory", ClassFactory.class);
  +        ClassFactory factory = (ClassFactory) r.getService(
  +            "hivemind.ClassFactory",
  +            ClassFactory.class);
   
           assertNotNull(factory);
       }
  -}
  +
  +    public void testDuplicateModuleId() throws Exception
  +    {
  +        String duplicateModuleId = "non.unique.module";
  +        
  +        ModuleDescriptor firstModule = createModuleDescriptor(duplicateModuleId, null);
  +        ModuleDescriptor duplicateModule = createModuleDescriptor(duplicateModuleId, null);
  +
  +        SimpleModuleProvider provider = new SimpleModuleProvider();
  +        provider.addModuleDescriptor(firstModule);
  +        provider.addModuleDescriptor(duplicateModule);
  +
  +        interceptLogging();
  +
  +        Registry r = buildFrameworkRegistry(provider);
  +
  +        assertLoggedMessagePattern("Module " + duplicateModuleId + " is duplicated!");
  +    }
  +
  +}
  \ No newline at end of file
  
  
  
  1.1                  jakarta-hivemind/framework/src/test/hivemind/test/SimpleModuleProvider.java
  
  Index: SimpleModuleProvider.java
  ===================================================================
  package hivemind.test;
  
  import java.util.ArrayList;
  import java.util.HashSet;
  import java.util.List;
  import java.util.Set;
  
  import org.apache.hivemind.ErrorHandler;
  import org.apache.hivemind.impl.ModuleProvider;
  import org.apache.hivemind.impl.RegistryAssembly;
  import org.apache.hivemind.parse.ModuleDescriptor;
  
  /**
   * An implementation of the {@link org.apache.hivemind.impl.ModuleProvider}
   * interface convenient for testing purposes.  This provider simply provides
   * ModuleDescriptors registered with it beforehand.
   */
  class SimpleModuleProvider implements ModuleProvider
  {
      private Set _moduleDescriptors = new HashSet();
  
      public void addModuleDescriptor(ModuleDescriptor moduleDescriptor)
      {
          _moduleDescriptors.add(moduleDescriptor);
      }
  
      public List getModuleDescriptors(ErrorHandler handler, RegistryAssembly assembly)
      {
          return new ArrayList(_moduleDescriptors);
      }
  
  }
  
  
  
  1.9       +1 -0      jakarta-hivemind/framework/src/test/hivemind/test/parse/GenericModule.xml
  
  Index: GenericModule.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/parse/GenericModule.xml,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- GenericModule.xml	10 Aug 2004 22:19:26 -0000	1.8
  +++ GenericModule.xml	12 Sep 2004 18:30:56 -0000	1.9
  @@ -17,6 +17,7 @@
   
   <module id="hivemind.test.parse" version="1.0.0">
   	Description of the Module.
  +	<dependency module-id="my.module" version="1.0.0"/>
   	<configuration-point id="MyExtensionPoint" occurs="1..n" schema-id="Fool">
   		Description of MyExtensionPoint.
   	</configuration-point>
  
  
  
  1.20      +12 -0     jakarta-hivemind/framework/src/test/hivemind/test/parse/TestDescriptorParser.java
  
  Index: TestDescriptorParser.java
  ===================================================================
  RCS file: /home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/parse/TestDescriptorParser.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- TestDescriptorParser.java	6 Sep 2004 09:19:47 -0000	1.19
  +++ TestDescriptorParser.java	12 Sep 2004 18:30:56 -0000	1.20
  @@ -29,6 +29,7 @@
   import org.apache.hivemind.parse.ConfigurationPointDescriptor;
   import org.apache.hivemind.parse.ContributionDescriptor;
   import org.apache.hivemind.parse.CreateInstanceDescriptor;
  +import org.apache.hivemind.parse.DependencyDescriptor;
   import org.apache.hivemind.parse.ImplementationDescriptor;
   import org.apache.hivemind.parse.InterceptorDescriptor;
   import org.apache.hivemind.parse.ModuleDescriptor;
  @@ -303,6 +304,17 @@
           ElementModel em = (ElementModel) l.get(0);
   
           assertEquals("myParameter", em.getElementName());
  +    }
  +
  +    public void testDependency() throws Exception
  +    {
  +        ModuleDescriptor md = parse("GenericModule.xml");
  +        List l = md.getDependencies();
  +        assertEquals(1, l.size());
  +        DependencyDescriptor dd = (DependencyDescriptor) l.get(0);
  +
  +        assertEquals("my.module", dd.getModuleId());
  +        assertEquals("1.0.0", dd.getVersion());
       }
   
       public void testBadElement() throws Exception
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: hivemind-cvs-unsubscribe@jakarta.apache.org
For additional commands, e-mail: hivemind-cvs-help@jakarta.apache.org