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