You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by rs...@apache.org on 2002/09/20 22:14:31 UTC
cvs commit: xml-axis/java/test/utils axisNLS.properties Messages.java TestMessages.java
rsitze 2002/09/20 13:14:30
Modified: java/test/utils TestMessages.java
Added: java/test/utils axisNLS.properties Messages.java
Log:
Test cases for message extensions:
- for all messages test, verify that # keys found exceeds a threshold (currently 500).
this ensures that we linked back to org.apache.axis.utils.axisNLS correctly.
- verify that we find keys in org.apache.axis.utils.axisNLS
- verify that we find key in test.utils.axisNLS
Revision Changes Path
1.18 +25 -3 xml-axis/java/test/utils/TestMessages.java
Index: TestMessages.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/utils/TestMessages.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- TestMessages.java 20 Sep 2002 16:50:48 -0000 1.17
+++ TestMessages.java 20 Sep 2002 20:14:30 -0000 1.18
@@ -14,13 +14,12 @@
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.apache.axis.utils.Messages;
-
/**
* This TestCase verifies:
* - the contents of axisNLS.properties for well-formedness, and
* - tests calls to Messages.getMessage.
+ * - tests Messages extension mechanism
*/
public class TestMessages extends TestCase {
public TestMessages(String name) {
@@ -32,14 +31,19 @@
}
/**
- * Call getMessage for each key in axisNLS.properties to make sure they are all well formed.
+ * Call getMessage for each key in axisNLS.properties
+ * to make sure they are all well formed.
*/
+ private static final int expectedNumberKeysThreshold = 500;
public void testAllMessages() {
String arg0 = "arg0";
String arg1 = "arg1";
String[] args = {arg0, arg1, "arg2"};
+
+ int count = 0;
Enumeration keys = Messages.getResourceBundle().getKeys();
while (keys.hasMoreElements()) {
+ count++;
String key = (String) keys.nextElement();
try {
String message = Messages.getMessage(key);
@@ -51,6 +55,9 @@
throw new AssertionFailedError("Test failure on key = " + key + ": " + iae.getMessage());
}
}
+
+ assertTrue("expected # keys greater than " + expectedNumberKeysThreshold + ", only got " + count + "! VERIFY HIERARCHICAL MESSAGES WORK/LINKED CORRECTLY",
+ count > expectedNumberKeysThreshold);
} // testAllMessages
/**
@@ -103,6 +110,21 @@
throw new AssertionFailedError("Test failure: " + t.getMessage());
}
} // testTestMessages
+
+
+ /**
+ * Make sure the extended test messages come out as we expect them to.
+ */
+ public void testTestExtendedMessages() {
+ try {
+ String message = Messages.getMessage("extended.test00");
+ String expected = "message in extension file";
+ assertTrue("expected (" + expected + ") got (" + message + ")", expected.equals(message));
+ }
+ catch (Throwable t) {
+ throw new AssertionFailedError("Test failure: " + t.getMessage());
+ }
+ } // testTestExtendedMessages
private static final String LS = System.getProperty("line.separator");
1.1 xml-axis/java/test/utils/axisNLS.properties
Index: axisNLS.properties
===================================================================
# Extension to org.apache.axis.i18n.resource.properties.
extended.test00=message in extension file
1.1 xml-axis/java/test/utils/Messages.java
Index: Messages.java
===================================================================
/*
* 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 "Axis" 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 (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/>.
*/
package test.utils;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
/**
* These two imports added to facilitate copying to different packages...
*
* import org.apache.axis.i18n.MessageBundle;
* import org.apache.axis.i18n.MessagesConstants;
*/
import org.apache.axis.i18n.MessageBundle;
import org.apache.axis.i18n.MessagesConstants;
/**
* @see org.apache.axis.i18n.Messages
*
* Changed projectName to local package (test.utils).
*
* @author Richard A. Sitze (rsitze@us.ibm.com)
* @author Karl Moss (kmoss@macromedia.com)
* @author Glen Daniels (gdaniels@macromedia.com)
*/
public class Messages {
private static final Class thisClass = Messages.class;
private static final String projectName = "test.utils";
private static final String resourceName = MessagesConstants.resourceName;
private static final Locale locale = MessagesConstants.locale;
private static final String packageName = getPackage(thisClass.getName());
private static final ClassLoader classLoader = thisClass.getClassLoader();
private static final ResourceBundle parent =
(MessagesConstants.rootPackageName == packageName)
? null
: MessagesConstants.rootBundle;
/***** NO NEED TO CHANGE ANYTHING BELOW *****/
private static final MessageBundle messageBundle =
new MessageBundle(projectName, packageName, resourceName,
locale, classLoader, parent);
/**
* Get a message from resource.properties from the package of the given object.
* @param caller The calling object, used to get the package name and class loader
* @param locale The locale
* @param key The resource key
* @return The formatted message
*/
public static String getMessage(String key)
throws MissingResourceException
{
return messageBundle.getMessage(key);
}
/**
* Get a message from resource.properties from the package of the given object.
* @param caller The calling object, used to get the package name and class loader
* @param locale The locale
* @param key The resource key
* @param arg0 The argument to place in variable {0}
* @return The formatted message
*/
public static String getMessage(String key, String arg0)
throws MissingResourceException
{
return messageBundle.getMessage(key, arg0);
}
/**
* Get a message from resource.properties from the package of the given object.
* @param caller The calling object, used to get the package name and class loader
* @param locale The locale
* @param key The resource key
* @param arg0 The argument to place in variable {0}
* @param arg1 The argument to place in variable {1}
* @return The formatted message
*/
public static String getMessage(String key, String arg0, String arg1)
throws MissingResourceException
{
return messageBundle.getMessage(key, arg0, arg1);
}
/**
* Get a message from resource.properties from the package of the given object.
* @param caller The calling object, used to get the package name and class loader
* @param locale The locale
* @param key The resource key
* @param arg0 The argument to place in variable {0}
* @param arg1 The argument to place in variable {1}
* @param arg2 The argument to place in variable {2}
* @return The formatted message
*/
public static String getMessage(String key, String arg0, String arg1, String arg2)
throws MissingResourceException
{
return messageBundle.getMessage(key, arg0, arg1, arg2);
}
/**
* Get a message from resource.properties from the package of the given object.
* @param caller The calling object, used to get the package name and class loader
* @param locale The locale
* @param key The resource key
* @param arg0 The argument to place in variable {0}
* @param arg1 The argument to place in variable {1}
* @param arg2 The argument to place in variable {2}
* @param arg3 The argument to place in variable {3}
* @return The formatted message
*/
public static String getMessage(String key, String arg0, String arg1, String arg2, String arg3)
throws MissingResourceException
{
return messageBundle.getMessage(key, arg0, arg1, arg2, arg3);
}
/**
* Get a message from resource.properties from the package of the given object.
* @param caller The calling object, used to get the package name and class loader
* @param locale The locale
* @param key The resource key
* @param arg0 The argument to place in variable {0}
* @param arg1 The argument to place in variable {1}
* @param arg2 The argument to place in variable {2}
* @param arg3 The argument to place in variable {3}
* @param arg4 The argument to place in variable {4}
* @return The formatted message
*/
public static String getMessage(String key, String arg0, String arg1, String arg2, String arg3, String arg4)
throws MissingResourceException
{
return messageBundle.getMessage(key, arg0, arg1, arg2, arg3, arg4);
}
/**
* Get a message from resource.properties from the package of the given object.
* @param caller The calling object, used to get the package name and class loader
* @param locale The locale
* @param key The resource key
* @param array An array of objects to place in corresponding variables
* @return The formatted message
*/
public static String getMessage(String key, String[] args)
throws MissingResourceException
{
return messageBundle.getMessage(key, args);
}
public static ResourceBundle getResourceBundle() {
return messageBundle.getResourceBundle();
}
public static MessageBundle getMessageBundle() {
return messageBundle;
}
private static final String getPackage(String name) {
return name.substring(0, name.lastIndexOf('.')).intern();
}
}
Re: cvs commit: xml-axis/java/test/utils axisNLS.properties Messages.java TestMessages.java
Posted by Davanum Srinivas <di...@yahoo.com>.
Richard,
Gump was failing because resource.properties should be copied over to
build/classes/test/utils....I checked in a new test/utils/build.xml to fix this issue.
Thanks,
dims
--- rsitze@apache.org wrote:
> rsitze 2002/09/20 13:14:30
>
> Modified: java/test/utils TestMessages.java
> Added: java/test/utils axisNLS.properties Messages.java
> Log:
> Test cases for message extensions:
> - for all messages test, verify that # keys found exceeds a threshold (currently 500).
> this ensures that we linked back to org.apache.axis.utils.axisNLS correctly.
> - verify that we find keys in org.apache.axis.utils.axisNLS
> - verify that we find key in test.utils.axisNLS
>
> Revision Changes Path
> 1.18 +25 -3 xml-axis/java/test/utils/TestMessages.java
>
> Index: TestMessages.java
> ===================================================================
> RCS file: /home/cvs/xml-axis/java/test/utils/TestMessages.java,v
> retrieving revision 1.17
> retrieving revision 1.18
> diff -u -r1.17 -r1.18
> --- TestMessages.java 20 Sep 2002 16:50:48 -0000 1.17
> +++ TestMessages.java 20 Sep 2002 20:14:30 -0000 1.18
> @@ -14,13 +14,12 @@
> import junit.framework.TestCase;
> import junit.framework.TestSuite;
>
> -import org.apache.axis.utils.Messages;
> -
>
> /**
> * This TestCase verifies:
> * - the contents of axisNLS.properties for well-formedness, and
> * - tests calls to Messages.getMessage.
> + * - tests Messages extension mechanism
> */
> public class TestMessages extends TestCase {
> public TestMessages(String name) {
> @@ -32,14 +31,19 @@
> }
>
> /**
> - * Call getMessage for each key in axisNLS.properties to make sure they are all well
> formed.
> + * Call getMessage for each key in axisNLS.properties
> + * to make sure they are all well formed.
> */
> + private static final int expectedNumberKeysThreshold = 500;
> public void testAllMessages() {
> String arg0 = "arg0";
> String arg1 = "arg1";
> String[] args = {arg0, arg1, "arg2"};
> +
> + int count = 0;
> Enumeration keys = Messages.getResourceBundle().getKeys();
> while (keys.hasMoreElements()) {
> + count++;
> String key = (String) keys.nextElement();
> try {
> String message = Messages.getMessage(key);
> @@ -51,6 +55,9 @@
> throw new AssertionFailedError("Test failure on key = " + key + ": " +
> iae.getMessage());
> }
> }
> +
> + assertTrue("expected # keys greater than " + expectedNumberKeysThreshold + ", only
> got " + count + "! VERIFY HIERARCHICAL MESSAGES WORK/LINKED CORRECTLY",
> + count > expectedNumberKeysThreshold);
> } // testAllMessages
>
> /**
> @@ -103,6 +110,21 @@
> throw new AssertionFailedError("Test failure: " + t.getMessage());
> }
> } // testTestMessages
> +
> +
> + /**
> + * Make sure the extended test messages come out as we expect them to.
> + */
> + public void testTestExtendedMessages() {
> + try {
> + String message = Messages.getMessage("extended.test00");
> + String expected = "message in extension file";
> + assertTrue("expected (" + expected + ") got (" + message + ")",
> expected.equals(message));
> + }
> + catch (Throwable t) {
> + throw new AssertionFailedError("Test failure: " + t.getMessage());
> + }
> + } // testTestExtendedMessages
>
>
> private static final String LS = System.getProperty("line.separator");
>
>
>
> 1.1 xml-axis/java/test/utils/axisNLS.properties
>
> Index: axisNLS.properties
> ===================================================================
> # Extension to org.apache.axis.i18n.resource.properties.
>
> extended.test00=message in extension file
>
>
>
> 1.1 xml-axis/java/test/utils/Messages.java
>
> Index: Messages.java
> ===================================================================
> /*
> * 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 "Axis" 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 (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/>.
> */
>
> package test.utils;
>
> import java.util.Locale;
> import java.util.MissingResourceException;
> import java.util.ResourceBundle;
>
> /**
> * These two imports added to facilitate copying to different packages...
> *
> * import org.apache.axis.i18n.MessageBundle;
> * import org.apache.axis.i18n.MessagesConstants;
> */
> import org.apache.axis.i18n.MessageBundle;
> import org.apache.axis.i18n.MessagesConstants;
>
>
> /**
> * @see org.apache.axis.i18n.Messages
> *
> * Changed projectName to local package (test.utils).
> *
> * @author Richard A. Sitze (rsitze@us.ibm.com)
> * @author Karl Moss (kmoss@macromedia.com)
> * @author Glen Daniels (gdaniels@macromedia.com)
> */
> public class Messages {
> private static final Class thisClass = Messages.class;
>
> private static final String projectName = "test.utils";
>
> private static final String resourceName = MessagesConstants.resourceName;
> private static final Locale locale = MessagesConstants.locale;
>
> private static final String packageName = getPackage(thisClass.getName());
> private static final ClassLoader classLoader = thisClass.getClassLoader();
>
=== message truncated ===
=====
Davanum Srinivas - http://xml.apache.org/~dims/
__________________________________________________
Do you Yahoo!?
New DSL Internet Access from SBC & Yahoo!
http://sbc.yahoo.com