blob: 8f5af15310c292166983d4cef64f169bc5445b51 [file] [log] [blame]
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2004 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 acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "Apache BSF", "Apache", 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 names without prior written
* permission of the Apache Group.
*
* 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 and was originally created by
* Sanjiva Weerawarana and others at International Business Machines
* Corporation. For more information on the Apache Software Foundation,
* please see <http://www.apache.org/>.
*/
package org.apache.bsf.util;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Reader;
import java.net.MalformedURLException;
import java.util.Vector;
import org.apache.bsf.util.StringUtils;
import junit.framework.TestCase;
/**
* This is a testcase for org.apache.bsf.util.StringUtils.java
*
* @author Sanka Samaranayake <sanka_hdins@yahoo.com>
* @author Nilupa Bandara <nilupa@opensource.lk>
*
*/
public class StringUtilsTest extends TestCase {
static private final String lineSeparator =
System.getProperty("line.separator", "\n");
/**
* Constructor for StringUtilsTest.
* @param arg0
*/
public StringUtilsTest (String arg0) {
super(arg0);
}
public void testClassNameToVarName() {
assertTrue((StringUtils.classNameToVarName("int")).equals(new String("int")));
assertTrue((StringUtils.classNameToVarName("int[][][]")).equals(new String("int_3D")));
assertNull((StringUtils.classNameToVarName("")));
}
public void testCleanString() {
String result;
result = StringUtils.cleanString("\"");
assertTrue(result.equals("\\\""));
result = StringUtils.cleanString("\\");
assertTrue(result.equals("\\\\"));
result = StringUtils.cleanString("\n");
assertTrue(result.equals("\\n"));
result = StringUtils.cleanString("\r");
assertTrue(result.equals("\\r"));
}
public void testGetChars() {
String result;
result = StringUtils.getChars(1, 'a');
assertTrue(result.equals(new String("a")));
result = StringUtils.getChars(1, ' ');
assertTrue(result.equals(new String(" ")));
result = StringUtils.getChars(10, ' ');
assertTrue(result.equals(new String(" ")));
result = StringUtils.getChars(-1, 'a');
assertTrue(result.equals(new String("")));
}
public void testGetClassName() {
String result;
result = StringUtils.getClassName((new Byte("0")).getClass());
assertTrue(result.equals(new String("java.lang.Byte")));
result = StringUtils.getClassName((new Byte[0][0][0]).getClass());
assertTrue(result.equals(new String("java.lang.Byte[][][]")));
result = StringUtils.getClassName((new String("")).getClass());
assertTrue(result.equals(new String("java.lang.String")));
result = StringUtils.getClassName((new String[0][0][0]).getClass());
assertTrue(result.equals(new String("java.lang.String[][][]")));
}
public void testGetCommaListFromVector() {
String result;
Vector vector = new Vector();
vector.add(new Character('a'));
vector.add(new Character('b'));
result = StringUtils.getCommaListFromVector(vector);
assertTrue(result.equals(new String("a, b")));
result = StringUtils.getCommaListFromVector(new Vector());
assertTrue(result.equals(new String("")));
}
public void testGetContentAsReader()
throws MalformedURLException, IOException {
Reader reader;
File myFile = File.createTempFile("Test", "txt");
FileWriter fw = new FileWriter(myFile);
PrintWriter pw = new PrintWriter(fw);
pw.println("file name : Test.txt");
pw.flush();
reader = StringUtils.getContentAsReader(myFile.toURL());
BufferedReader bf = new BufferedReader(reader);
assertTrue(bf.readLine().equals(
new String("file name : Test.txt")));
}
public void testGetContentAsString() throws IOException{
String result;
File myFile = File.createTempFile("Test", "txt");
FileWriter fw = new FileWriter(myFile);
PrintWriter pw = new PrintWriter(fw);
pw.println("file name : Test.txt");
pw.flush();
result = StringUtils.getContentAsString(myFile.toURL());
assertTrue(result.equals(new String("file name : Test.txt" +
lineSeparator)));
}
public void testGetSafeString() {
String result;
result = StringUtils.getSafeString("test-string");
assertTrue(result.equals(new String("\"test-string\"" +
lineSeparator)));
//checks for an empty string ..
result = StringUtils.getSafeString("");
assertTrue(result.equals(new String("\"\"" +
lineSeparator)));
result = StringUtils.getSafeString("\n");
assertTrue(result.equals(new String("\"\"" +
lineSeparator)));
result = StringUtils.getSafeString("\r");
assertTrue(result.equals(new String("\"\"" +
lineSeparator)));
result = StringUtils.getSafeString("\\n");
assertTrue(result.equals(new String("\"\\\\n\"" +
lineSeparator)));
result = StringUtils.getSafeString("\\r");
assertTrue(result.equals(new String("\"\\\\r\"" +
lineSeparator)));
}
public void testGetValidIdentifierName(){
assertTrue((StringUtils.getValidIdentifierName("identifier")).equals(
new String("identifier")));
assertTrue((StringUtils.getValidIdentifierName("0identifier")).equals(
new String("_identifier")));
assertTrue((StringUtils.getValidIdentifierName("i0dentifier")).equals(
new String("i0dentifier")));
assertTrue((StringUtils.getValidIdentifierName("$identifier")).equals(
new String("$identifier")));
assertTrue((StringUtils.getValidIdentifierName("identi$fier")).equals(
new String("identi$fier")));
assertTrue((StringUtils.getValidIdentifierName(" identifier")).equals(
new String("_identifier")));
assertTrue((StringUtils.getValidIdentifierName("identi fier")).equals(
new String("identi_fier")));
// checks for a empty string which should return null
assertNull(StringUtils.getValidIdentifierName(""));
// checks for a null value which should return null
assertNull(StringUtils.getValidIdentifierName(null));
}
public void testIsValidIdentifierName() {
assertTrue(StringUtils.isValidIdentifierName("identifier"));
assertTrue(!StringUtils.isValidIdentifierName("0identifier"));
assertTrue(StringUtils.isValidIdentifierName("i0dentifier"));
assertTrue(StringUtils.isValidIdentifierName("$identifier"));
assertTrue(StringUtils.isValidIdentifierName("identi$fier"));
assertTrue(!StringUtils.isValidIdentifierName(" identifier"));
assertTrue(!StringUtils.isValidIdentifierName("identi fier"));
// checks for a null value .. should return null
assertNull(StringUtils.getValidIdentifierName(null));
// checks for an empty string .. should return null
assertNull(StringUtils.getValidIdentifierName(""));
}
public void testIsValidPackageName() {
assertTrue(StringUtils.isValidPackageName("org"));
assertTrue(StringUtils.isValidPackageName("org.apache.bsf"));
// checks whether the package name ends with a '.'
assertTrue(!StringUtils.isValidPackageName("org.apache.bsf."));
// checks whether the package name includes '..'
assertTrue(!StringUtils.isValidPackageName("org.apache.bsf.."));
// checks for an empty string which is ok ..
assertTrue(StringUtils.isValidPackageName(""));
// checks for a null value
assertTrue(!StringUtils.isValidPackageName(null));
}
}