You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2003/07/10 21:41:21 UTC
cvs commit: avalon-sandbox/merlin/meta-spi/src/test/org/apache/avalon/meta/model/test CategoryTestCase.java ContextDirectiveTestCase.java EntryTestCase.java ImportTestCase.java LoggingDirectiveTestCase.java ModelExceptionTestCase.java ModelRuntimeExceptionTestCase.java ParameterTestCase.java ProfileTestCase.java
mcconnell 2003/07/10 12:41:21
Modified: merlin/meta-spi/src/java/org/apache/avalon/meta/data
CategoriesDirective.java CategoryDirective.java
ContextDirective.java EntryDirective.java
ImportDirective.java Parameter.java
Added: merlin/meta-spi/src/java/org/apache/avalon/meta/data
ConstructorDirective.java
merlin/meta-spi/src/test/org/apache/avalon/meta/data/test
CategoryDirectiveTestCase.java
ConstructorDirectiveTestCase.java
ContextDirectiveTestCase.java
ImportDirectiveTestCase.java
MetaDataExceptionTestCase.java
ParameterTestCase.java
Removed: merlin/meta-spi/src/test/org/apache/avalon/meta/model/test
CategoryTestCase.java ContextDirectiveTestCase.java
EntryTestCase.java ImportTestCase.java
LoggingDirectiveTestCase.java
ModelExceptionTestCase.java
ModelRuntimeExceptionTestCase.java
ParameterTestCase.java ProfileTestCase.java
Log:
Moved model test-cases to meta-data package and refactored the context entry, import and constructor directives.
Revision Changes Path
1.2 +9 -2 avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/data/CategoriesDirective.java
Index: CategoriesDirective.java
===================================================================
RCS file: /home/cvs/avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/data/CategoriesDirective.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CategoriesDirective.java 3 Jul 2003 04:28:55 -0000 1.1
+++ CategoriesDirective.java 10 Jul 2003 19:41:21 -0000 1.2
@@ -103,7 +103,14 @@
final CategoryDirective[] categories )
{
super( name, priority, target );
- m_categories = categories;
+ if( categories == null )
+ {
+ m_categories = new CategoryDirective[ 0 ];
+ }
+ else
+ {
+ m_categories = categories;
+ }
}
/**
1.2 +27 -11 avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/data/CategoryDirective.java
Index: CategoryDirective.java
===================================================================
RCS file: /home/cvs/avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/data/CategoryDirective.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CategoryDirective.java 3 Jul 2003 04:28:55 -0000 1.1
+++ CategoryDirective.java 10 Jul 2003 19:41:21 -0000 1.2
@@ -98,16 +98,6 @@
public static final String ERROR = "ERROR";
/**
- * Constant value for the default logging target name.
- */
- public static final String DEFAULT_LOGGING_TARGET = "default";
-
- /**
- * Constant value for the default logging priority level.
- */
- public static final String DEFAULT_LOGGING_PRIORITY = INFO;
-
- /**
* The logging category name.
*/
private String m_name;
@@ -195,5 +185,31 @@
public String getTarget()
{
return m_target;
+ }
+
+ public boolean equals(Object other)
+ {
+ boolean isEqual = other instanceof CategoryDirective;
+
+ if ( isEqual )
+ {
+ CategoryDirective test = (CategoryDirective) other;
+ isEqual = m_name.equals(test.m_name);
+ if (isEqual) isEqual = m_priority.equals(test.m_priority);
+ if (isEqual) isEqual = m_target.equals(test.m_target);
+ }
+
+ return isEqual;
+ }
+
+ public int hashCode()
+ {
+ int hash = m_name.hashCode();
+ hash >>>= 13;
+ hash ^= m_priority.hashCode();
+ hash >>>= 5;
+ hash ^= m_target.hashCode();
+
+ return hash;
}
}
1.4 +21 -3 avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/data/ContextDirective.java
Index: ContextDirective.java
===================================================================
RCS file: /home/cvs/avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/data/ContextDirective.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ContextDirective.java 9 Jul 2003 11:39:28 -0000 1.3
+++ ContextDirective.java 10 Jul 2003 19:41:21 -0000 1.4
@@ -96,10 +96,28 @@
* @param imports the set of import directives
* @param entries the set of entry descriptors
*/
+ public ContextDirective( final EntryDirective[] entries )
+ {
+ this( null, entries );
+ }
+
+ /**
+ * Creation of a new file target.
+ * @param classname the context implementation class
+ * @param imports the set of import directives
+ * @param entries the set of entry descriptors
+ */
public ContextDirective( final String classname, final EntryDirective[] entries )
{
- m_entries = entries;
m_classname = classname;
+ if( entries != null )
+ {
+ m_entries = entries;
+ }
+ else
+ {
+ m_entries = new EntryDirective[0];
+ }
}
/**
@@ -115,7 +133,7 @@
* Return the set of entry directives.
* @return the entries
*/
- public EntryDirective[] getEntries()
+ public EntryDirective[] getEntryDirectives()
{
return m_entries;
}
1.3 +3 -63 avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/data/EntryDirective.java
Index: EntryDirective.java
===================================================================
RCS file: /home/cvs/avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/data/EntryDirective.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- EntryDirective.java 9 Jul 2003 11:39:28 -0000 1.2
+++ EntryDirective.java 10 Jul 2003 19:41:21 -0000 1.3
@@ -83,58 +83,25 @@
* @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
* @version $Revision$ $Date$
*/
-public class EntryDirective implements Serializable
+public abstract class EntryDirective implements Serializable
{
- public static final int IMPORT = 0;
-
- public static final int PARAM = 1;
-
- public static final int PROVIDER = 2;
-
/**
* The entry key.
*/
private final String m_key;
- private final ImportDirective m_target;
-
- private final Parameter m_param;
-
- private final int m_mode;
-
/**
* Creation of a new entry directive using a import directive.
* @param key the entry key
* @param target the import directive defining the target key name
*/
- public EntryDirective( final String key, final ImportDirective target )
- {
- if( null == key )
- {
- throw new NullPointerException( "key" );
- }
- m_key = key;
- m_target = target;
- m_mode = IMPORT;
- m_param = null;
- }
-
- /**
- * Creation of a new entry directive using a parameter.
- * @param key the entry key
- * @param classname the classname of the entry implementation
- * @param parameters implementation class constructor parameter directives
- */
- public EntryDirective( final String key, final Parameter parameter )
+ public EntryDirective( final String key )
{
if( null == key )
{
throw new NullPointerException( "key" );
}
m_key = key;
- m_param = parameter;
- m_mode = PARAM;
- m_target = null;
}
/**
@@ -144,32 +111,5 @@
public String getKey()
{
return m_key;
- }
-
- /**
- * Return the entry mode (IMPORT, PARAM or PROVIDER)
- * @return the mode
- */
- public int getMode()
- {
- return m_mode;
- }
-
- /**
- * Return the import directive if the mode is IMPORT else null.
- * @return the directive
- */
- public ImportDirective getImportDirective()
- {
- return m_target;
- }
-
- /**
- * Return the parameter directive if the mode is PARAM else null.
- * @return the directive
- */
- public Parameter getParameter()
- {
- return m_param;
}
}
1.3 +12 -11 avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/data/ImportDirective.java
Index: ImportDirective.java
===================================================================
RCS file: /home/cvs/avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/data/ImportDirective.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ImportDirective.java 9 Jul 2003 11:39:28 -0000 1.2
+++ ImportDirective.java 10 Jul 2003 19:41:21 -0000 1.3
@@ -80,33 +80,34 @@
* @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
* @version $Revision$ $Date$
*/
-public class ImportDirective implements Serializable
+public class ImportDirective extends EntryDirective
{
/**
- * The local key.
+ * The container scoped key.
*/
private final String m_key;
/**
* Creation of a new entry directive.
- * @param key the container scope key value to import
+ * @param component the componet entry key
+ * @param container the container scope key value to import
*/
- public ImportDirective( final String key )
+ public ImportDirective( final String key, final String containerKey )
{
- if( null == key )
+ super( key );
+ if( null == containerKey )
{
throw new NullPointerException( "key" );
}
- m_key = key;
+ m_key = containerKey;
}
/**
- * Return the key that will be used by a client of a context object to
- * access the inported value.
+ * Return the container scoped key that defines the object to be imported.
*
- * @return the local context key
+ * @return the contain scoped key
*/
- public String getKey()
+ public String getImportKey()
{
return m_key;
}
1.2 +16 -7 avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/data/Parameter.java
Index: Parameter.java
===================================================================
RCS file: /home/cvs/avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/data/Parameter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Parameter.java 3 Jul 2003 04:28:55 -0000 1.1
+++ Parameter.java 10 Jul 2003 19:41:21 -0000 1.2
@@ -122,8 +122,13 @@
*/
public Parameter( final String value )
{
+ if( null == value )
+ {
+ throw new NullPointerException( "value" );
+ }
+
+ m_classname = "java.lang.String";
m_parameters = new Parameter[ 0 ];
- m_classname = null;
m_argument = value;
}
@@ -134,18 +139,18 @@
*/
public Parameter( final String classname, final String value )
{
- if( null == classname )
+ if( null == value )
{
- throw new NullPointerException( "classname" );
+ throw new NullPointerException( "value" );
}
- if( null == value )
+ if( null == classname )
{
- throw new NullPointerException( "value" );
+ throw new NullPointerException( "classname" );
}
- m_parameters = new Parameter[ 0 ];
m_classname = classname;
+ m_parameters = new Parameter[ 0 ];
m_argument = value;
}
@@ -159,6 +164,10 @@
if( null == classname )
{
throw new NullPointerException( "classname" );
+ }
+ if( null == parameters )
+ {
+ throw new NullPointerException( "parameters" );
}
m_classname = classname;
1.1 avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/data/ConstructorDirective.java
Index: ConstructorDirective.java
===================================================================
/*
============================================================================
The Apache Software License, Version 1.1
============================================================================
Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without modifica-
tion, 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 "Jakarta", "Apache Avalon", "Avalon Framework" and
"Apache Software Foundation" must not be used to endorse or promote
products derived from this software without prior written
permission. For written permission, please contact apache@apache.org.
5. Products derived from this software may not be called "Apache", 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 (INCLU-
DING, 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/>.
*/
package org.apache.avalon.meta.data;
/**
* A entry descriptor declares the context entry import or creation criteria for
* a single context entry instance.
*
* <p><b>XML</b></p>
* <p>A entry may contain either (a) a single nested import directive, or (b) a single param constructor directives.</p>
* <pre>
* <font color="gray"><context></font>
*
* <!-- option (a) nested import -->
* <entry key="<font color="darkred">my-home-dir</font>">
* <include key="<font color="darkred">urn:avalon:home</font>"/>
* </entry>
*
* <!-- option (b) param constructors -->
* <entry key="<font color="darkred">title</font>">
* <param><font color="darkred">Lord of the Rings</font></>
* </entry>
* <entry key="<font color="darkred">home</font>">
* <param class="<font color="darkred">java.io.File</font>"><font color="darkred">../home</font></param>
* </entry>
*
* <font color="gray"></context></font>
* </pre>
*
* @see ImportDirective
* @see Parameter
* @see ContextDirective
* @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
* @version $Revision: 1.1 $ $Date: 2003/07/10 19:41:21 $
*/
public class ConstructorDirective extends EntryDirective
{
/**
* The constructor classname.
*/
private final String m_classname;
/**
* The constructor param.
*/
private final Parameter[] m_params;
/**
* The alternative argument.
*/
private final String m_argument;
/**
* Creation of a new entry directive using a constructor
* classname and single argument value.
* @param key the entry key
* @param classname the classname of the entry implementation
* @param value the single argument value
*/
public ConstructorDirective(
final String key, final String value )
{
this( key, "java.lang.String", value );
}
/**
* Creation of a new entry directive using a constructor
* classname and single argument value.
* @param key the entry key
* @param classname the classname of the entry implementation
* @param value the single argument value
*/
public ConstructorDirective(
final String key, final String classname, final String value )
{
super( key );
if( null == classname )
{
throw new NullPointerException( "classname" );
}
if( null == value )
{
throw new NullPointerException( "value" );
}
m_params = new Parameter[0];
m_classname = "java.lang.String";
m_argument = value;
}
/**
* Creation of a new entry directive using a parameter.
* @param key the entry key
* @param classname the classname of the entry implementation
* @param parameters implementation class constructor parameter directives
*/
public ConstructorDirective( final String key, final Parameter[] parameters )
{
this( key, "java.lang.String", parameters );
}
/**
* Creation of a new entry directive using a parameter.
* @param key the entry key
* @param classname the classname of the entry implementation
* @param params implementation class constructor parameter directives
*/
public ConstructorDirective(
final String key, final String classname, final Parameter[] params )
{
super( key );
if( null == params )
{
throw new NullPointerException( "parameters" );
}
if( null == classname )
{
throw new NullPointerException( "classname" );
}
if( params.length == 0 )
{
throw new IllegalArgumentException( "parameters" );
}
m_classname = classname;
m_params = params;
m_argument = null;
}
/**
* Return the constructor classname
* @return the classname
*/
public String getClassname()
{
return m_classname;
}
/**
* Return the parameter directive if the mode is PARAM else null.
* @return the directive
*/
public Parameter[] getParameters()
{
return m_params;
}
/**
* Return the constructor classname
* @return the classname
*/
public String getArgument()
{
return m_argument;
}
}
1.1 avalon-sandbox/merlin/meta-spi/src/test/org/apache/avalon/meta/data/test/CategoryDirectiveTestCase.java
Index: CategoryDirectiveTestCase.java
===================================================================
/*
============================================================================
The Apache Software License, Version 1.1
============================================================================
Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without modifica-
tion, 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 "Jakarta", "Avalon", "Excalibur" and "Apache Software Foundation"
must not be used to endorse or promote products derived from this software
without prior written permission. For written permission, please contact
apache@apache.org.
5. Products derived from this software may not be called "Apache", 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 (INCLU-
DING, 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/>.
*/
package org.apache.avalon.meta.data.test;
import junit.framework.TestCase;
import org.apache.avalon.meta.data.CategoryDirective;
import java.io.*;
/**
* CategoryTestCase does XYZ
*
* @author <a href="bloritsch.at.apache.org">Berin Loritsch</a>
* @version CVS $ Revision: 1.1 $
*/
public class CategoryDirectiveTestCase extends TestCase
{
public CategoryDirectiveTestCase( String name )
{
super( name );
}
public void testCategory()
{
String catName = "name";
CategoryDirective cat = new CategoryDirective(catName);
testCategory( cat, catName, null, null );
}
public void testLogPriority()
{
String catName = "name";
String priority = CategoryDirective.DEBUG;
CategoryDirective cat = new CategoryDirective( catName, priority);
testCategory( cat, catName, priority, null );
priority = CategoryDirective.ERROR;
cat = new CategoryDirective( catName, priority );
testCategory( cat, catName, priority, null );
priority = CategoryDirective.INFO;
cat = new CategoryDirective( catName, priority );
testCategory( cat, catName, priority, null );
priority = CategoryDirective.WARN;
cat = new CategoryDirective( catName, priority );
testCategory( cat, catName, priority, null );
}
public void testLogTarget()
{
String name = "name";
String priority = CategoryDirective.DEBUG;
String target = "test";
CategoryDirective cat = new CategoryDirective( name, priority, target);
testCategory( cat, name, priority, target );
}
private void testCategory( CategoryDirective cat, String name, String priority, String target )
{
assertEquals( name, cat.getName() );
assertEquals( priority, cat.getPriority() );
assertEquals( target, cat.getTarget() );
}
public void testSerialization() throws IOException, ClassNotFoundException
{
File file = new File("name.test");
String name = "name";
String priority = CategoryDirective.WARN;
String target = "test";
CategoryDirective original = new CategoryDirective( name, priority, target );
testCategory( original, name, priority, target );
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
oos.writeObject(original);
oos.close();
ObjectInputStream ois = new ObjectInputStream( new FileInputStream(file));
CategoryDirective serialized = (CategoryDirective)ois.readObject();
ois.close();
file.delete();
testCategory( serialized, name, priority, target );
assertEquals( original, serialized );
assertEquals( original.hashCode(), serialized.hashCode() );
}
}
1.1 avalon-sandbox/merlin/meta-spi/src/test/org/apache/avalon/meta/data/test/ConstructorDirectiveTestCase.java
Index: ConstructorDirectiveTestCase.java
===================================================================
/*
============================================================================
The Apache Software License, Version 1.1
============================================================================
Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without modifica-
tion, 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 "Jakarta", "Avalon", "Excalibur" and "Apache Software Foundation"
must not be used to endorse or promote products derived from this software
without prior written permission. For written permission, please contact
apache@apache.org.
5. Products derived from this software may not be called "Apache", 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 (INCLU-
DING, 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/>.
*/
package org.apache.avalon.meta.data.test;
import junit.framework.TestCase;
import org.apache.avalon.meta.data.MetaDataException;
import org.apache.avalon.meta.data.Parameter;
import org.apache.avalon.meta.data.EntryDirective;
import org.apache.avalon.meta.data.ConstructorDirective;
import java.util.HashMap;
/**
* ConstructorDirectiveTestCase does XYZ
*
* @author <a href="bloritsch.at.apache.org">Berin Loritsch</a>
* @version CVS $ Revision: 1.1 $
*/
public class ConstructorDirectiveTestCase extends TestCase
{
public ConstructorDirectiveTestCase( String name )
{
super( name );
}
public void testEntry() throws MetaDataException
{
String key = "key";
String className = ConstructorDirectiveTestCase.class.getName();
String value = "val";
Parameter param = new Parameter( value );
Parameter[] params = new Parameter[]{ param };
try
{
new ConstructorDirective( null, (String) null );
fail( "Did not throw expected NullPointerException" );
}
catch ( NullPointerException npe )
{
// Success!!
}
try
{
new ConstructorDirective( null, (Parameter[]) null );
fail( "Did not throw expected NullPointerException" );
}
catch ( NullPointerException npe )
{
// Success!!
}
try
{
new ConstructorDirective( null, (String)null, (Parameter[]) null );
fail( "Did not throw expected NullPointerException" );
}
catch ( NullPointerException npe )
{
// Success!!
}
try
{
new ConstructorDirective( null, params );
fail( "Did not throw expected NullPointerException" );
}
catch ( NullPointerException npe )
{
// Success!!
}
try
{
new ConstructorDirective( key, (String) null );
fail( "Did not throw expected NullPointerException" );
}
catch ( NullPointerException npe )
{
// Success!!
}
try
{
new ConstructorDirective( key, (Parameter[]) null );
fail( "Did not throw expected NullPointerException" );
}
catch ( NullPointerException npe )
{
// Success!!
}
ConstructorDirective entry = new ConstructorDirective( key, className, params );
assertEquals( key, entry.getKey() );
assertEquals( params, entry.getParameters() );
assertEquals( className, entry.getClassname() );
}
}
1.1 avalon-sandbox/merlin/meta-spi/src/test/org/apache/avalon/meta/data/test/ContextDirectiveTestCase.java
Index: ContextDirectiveTestCase.java
===================================================================
/*
============================================================================
The Apache Software License, Version 1.1
============================================================================
Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without modifica-
tion, 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 "Jakarta", "Avalon", "Excalibur" and "Apache Software Foundation"
must not be used to endorse or promote products derived from this software
without prior written permission. For written permission, please contact
apache@apache.org.
5. Products derived from this software may not be called "Apache", 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 (INCLU-
DING, 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/>.
*/
package org.apache.avalon.meta.data.test;
import junit.framework.TestCase;
import org.apache.avalon.meta.data.ImportDirective;
import org.apache.avalon.meta.data.EntryDirective;
import org.apache.avalon.meta.data.ContextDirective;
/**
* ContextDirectiveTestCase does XYZ
*
* @author <a href="bloritsch.at.apache.org">Berin Loritsch</a>
* @version CVS $ Revision: 1.1 $
*/
public class ContextDirectiveTestCase extends TestCase
{
public ContextDirectiveTestCase( String name )
{
super( name );
}
public void testConstructor()
{
try
{
new ContextDirective( null );
}
catch(NullPointerException npe)
{
fail("NullPointerException should not be thrown - null indicates default");
}
try
{
new ContextDirective( null, new EntryDirective[0] );
}
catch(NullPointerException npe)
{
fail("NullPointerException should not be thrown - null indicates default");
}
try
{
new ContextDirective( null, null );
}
catch ( NullPointerException npe )
{
fail("NullPointerException should not be thrown - null indicated default");
}
}
public void testContextDirective()
{
EntryDirective[] entries = new EntryDirective[0];
ContextDirective cd = new ContextDirective( getClass().getName(), entries);
assertEquals( "classname", getClass().getName(), cd.getClassname());
assertEquals( "entries", entries, cd.getEntryDirectives());
assertEquals( "length", entries.length, cd.getEntryDirectives().length);
}
public void testGetEntry()
{
String key = "key";
String val = "val";
ImportDirective imp = new ImportDirective( key, "xxx" );
EntryDirective[] entries =
new EntryDirective[]{ imp };
ContextDirective cd = new ContextDirective( entries );
assertNull( cd.getClassname() );
assertEquals( entries, cd.getEntryDirectives() );
assertEquals( entries.length, cd.getEntryDirectives().length );
assertEquals( entries[0], cd.getEntryDirective( key ) );
assertNull( cd.getEntryDirective( val ) );
}
}
1.1 avalon-sandbox/merlin/meta-spi/src/test/org/apache/avalon/meta/data/test/ImportDirectiveTestCase.java
Index: ImportDirectiveTestCase.java
===================================================================
/*
============================================================================
The Apache Software License, Version 1.1
============================================================================
Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without modifica-
tion, 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 "Jakarta", "Avalon", "Excalibur" and "Apache Software Foundation"
must not be used to endorse or promote products derived from this software
without prior written permission. For written permission, please contact
apache@apache.org.
5. Products derived from this software may not be called "Apache", 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 (INCLU-
DING, 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/>.
*/
package org.apache.avalon.meta.data.test;
import junit.framework.TestCase;
import org.apache.avalon.meta.data.MetaDataException;
import org.apache.avalon.meta.data.ImportDirective;
import org.apache.avalon.meta.data.EntryDirective;
import java.util.HashMap;
/**
* ImportDirectiveTestCase does XYZ
*
* @author <a href="bloritsch.at.apache.org">Berin Loritsch</a>
* @version CVS $ Revision: 1.1 $
*/
public class ImportDirectiveTestCase extends TestCase
{
public ImportDirectiveTestCase( String name )
{
super( name );
}
public void testEntry() throws MetaDataException
{
String key = "key";
String imp = "container-scoped-key";
try
{
new ImportDirective( null, null );
fail( "Did not throw expected NullPointerException" );
}
catch ( NullPointerException npe )
{
// Success!!
}
try
{
new ImportDirective( null, imp );
fail( "Did not throw expected NullPointerException" );
}
catch ( NullPointerException npe )
{
// Success!!
}
try
{
new ImportDirective( key, null );
fail( "Did not throw expected NullPointerException" );
}
catch ( NullPointerException npe )
{
// Success!!
}
ImportDirective entry = new ImportDirective( key, imp );
assertEquals( key, entry.getKey() );
assertEquals( imp, entry.getImportKey() );
}
}
1.1 avalon-sandbox/merlin/meta-spi/src/test/org/apache/avalon/meta/data/test/MetaDataExceptionTestCase.java
Index: MetaDataExceptionTestCase.java
===================================================================
/*
============================================================================
The Apache Software License, Version 1.1
============================================================================
Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without modifica-
tion, 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 "Jakarta", "Avalon", "Excalibur" and "Apache Software Foundation"
must not be used to endorse or promote products derived from this software
without prior written permission. For written permission, please contact
apache@apache.org.
5. Products derived from this software may not be called "Apache", 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 (INCLU-
DING, 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/>.
*/
package org.apache.avalon.meta.data.test;
import junit.framework.TestCase;
import org.apache.avalon.meta.data.MetaDataException;
/**
* MetaDataExceptionTestCase does XYZ
*
* @author <a href="bloritsch.at.apache.org">Berin Loritsch</a>
* @version CVS $ Revision: 1.1 $
*/
public class MetaDataExceptionTestCase extends TestCase
{
public MetaDataExceptionTestCase( String name )
{
super( name );
}
public void testMetaDataException()
{
String message = "Original Message";
Exception parent = new Exception("Parent Exception");
MetaDataException me = new MetaDataException( message );
assertNotNull( me );
assertNull( me.getCause() );
assertEquals( message, me.getMessage() );
me = new MetaDataException( message, parent );
assertNotNull( me );
assertEquals( parent, me.getCause() );
assertEquals( message, me.getMessage() );
}
}
1.1 avalon-sandbox/merlin/meta-spi/src/test/org/apache/avalon/meta/data/test/ParameterTestCase.java
Index: ParameterTestCase.java
===================================================================
/*
============================================================================
The Apache Software License, Version 1.1
============================================================================
Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without modifica-
tion, 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 "Jakarta", "Avalon", "Excalibur" and "Apache Software Foundation"
must not be used to endorse or promote products derived from this software
without prior written permission. For written permission, please contact
apache@apache.org.
5. Products derived from this software may not be called "Apache", 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 (INCLU-
DING, 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/>.
*/
package org.apache.avalon.meta.data.test;
import junit.framework.TestCase;
import org.apache.avalon.meta.data.Parameter;
import org.apache.avalon.meta.data.MetaDataException;
import java.util.Map;
import java.util.HashMap;
import java.lang.reflect.Constructor;
/**
* ParameterTestCase does XYZ
*
* @author <a href="bloritsch.at.apache.org">Berin Loritsch</a>
* @version CVS $ Revision: 1.1 $
*/
public class ParameterTestCase extends TestCase
{
public ParameterTestCase( String name )
{
super( name );
}
public void testParameters() throws MetaDataException
{
String className = ParameterTestCase.class.getName();
String value = "val";
Parameter[] params = new Parameter[] {
new Parameter( "java.io.File", value ),
new Parameter( ParameterTestCase.class.getName(), value )
};
try
{
new Parameter(null);
fail("Did not throw expected NullPointerException/1");
}
catch (NullPointerException npe)
{
// Success!!
}
try
{
new Parameter( null, value );
fail( "Did not throw expected NullPointerException/2" );
}
catch ( NullPointerException npe )
{
// Success!!
}
try
{
new Parameter( className, (String)null );
fail( "Did not throw expected NullPointerException/3" );
}
catch ( NullPointerException npe )
{
// Success!!
}
try
{
new Parameter( null, params );
fail( "Did not throw expected NullPointerException/4" );
}
catch ( NullPointerException npe )
{
// Success!!
}
try
{
new Parameter( className, (Parameter[]) null );
fail( "Did not throw expected NullPointerException/5" );
}
catch ( NullPointerException npe )
{
// Success!!
}
Parameter param = new Parameter( value );
assertEquals( String.class.getName(), param.getClassname());
param = new Parameter( className, params );
assertEquals( className, param.getClassname() );
assertEquals( params.length, param.getParameters().length );
assertEquals( params.length, param.getParameters().length );
assertEquals( "java.io.File", param.getParameters()[0].getClassname() );
assertEquals( ParameterTestCase.class.getName(), param.getParameters()[1].getClassname() );
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org