/*
* Created on May 8, 2004
*
* To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package test.org.anodyneos.xpImpl.util;
import junit.framework.TestCase;
import org.anodyneos.xpImpl.util.CoerceUtil;
/**
* @author jvas
*/
public class CoerceUtilTest extends TestCase {
public void testSimplifyType() {
assertEquals(CoerceUtil.simplifyType("xx.yy.zz"), "xx.yy.zz");
assertEquals(CoerceUtil.simplifyType("java.lang.String"), "String");
assertEquals(CoerceUtil.simplifyType("java.lang.Boolean"), "Boolean");
assertEquals(CoerceUtil.simplifyType("java.lang.Byte"), "Byte");
assertEquals(CoerceUtil.simplifyType("java.lang.Character"), "Character");
assertEquals(CoerceUtil.simplifyType("java.lang.Double"), "Double");
assertEquals(CoerceUtil.simplifyType("java.lang.Integer"), "Integer");
assertEquals(CoerceUtil.simplifyType("java.lang.Float"), "Float");
assertEquals(CoerceUtil.simplifyType("java.lang.Long"), "Long");
assertEquals(CoerceUtil.simplifyType("java.lang.Short"), "Short");
assertEquals(CoerceUtil.simplifyType("java.lang.Object"), "Object");
}
public void testJavaExpression() {
// String
assertEquals("\"\"", CoerceUtil.javaExpression(null, "String"));
assertEquals("\"\"", CoerceUtil.javaExpression("", "String"));
assertEquals("\"x\\\"y\\\"z\"", CoerceUtil.javaExpression("x\"y\"z", "String"));
assertEquals("\"x\\\"y\\\"z\"", CoerceUtil.javaExpression("x\"y\"z", "java.lang.String"));
// boolean
assertEquals("false", CoerceUtil.javaExpression(null, "boolean"));
assertEquals("false", CoerceUtil.javaExpression("", "boolean"));
assertEquals("true", CoerceUtil.javaExpression("true", "boolean"));
assertEquals("true", CoerceUtil.javaExpression("TrUe", "boolean"));
assertEquals("false", CoerceUtil.javaExpression("false", "boolean"));
assertEquals("false", CoerceUtil.javaExpression("faxse", "boolean"));
// Boolean
assertEquals("Boolean.FALSE", CoerceUtil.javaExpression(null, "Boolean"));
assertEquals("Boolean.FALSE", CoerceUtil.javaExpression("", "Boolean"));
assertEquals("Boolean.TRUE", CoerceUtil.javaExpression("true", "Boolean"));
assertEquals("Boolean.TRUE", CoerceUtil.javaExpression("TrUe", "Boolean"));
assertEquals("Boolean.FALSE", CoerceUtil.javaExpression("false", "Boolean"));
assertEquals("Boolean.FALSE", CoerceUtil.javaExpression("faxse", "Boolean"));
// byte
assertEquals("(byte)0", CoerceUtil.javaExpression(null, "byte"));
assertEquals("(byte)0", CoerceUtil.javaExpression("", "byte"));
assertEquals("(byte)10", CoerceUtil.javaExpression("10", "byte"));
assertEquals("(byte)127", CoerceUtil.javaExpression("127", "byte"));
assertEquals("(byte)-128", CoerceUtil.javaExpression("-128", "byte"));
try {
CoerceUtil.javaExpression("-129", "byte");
fail("Should throw NumberFormatException for byte -129");
} catch (NumberFormatException e) {
// success
}
// Byte
assertEquals("new Byte((byte)0)", CoerceUtil.javaExpression(null, "Byte"));
assertEquals("new Byte((byte)0)", CoerceUtil.javaExpression("", "Byte"));
assertEquals("new Byte((byte)10)", CoerceUtil.javaExpression("10", "Byte"));
assertEquals("new Byte((byte)127)", CoerceUtil.javaExpression("127", "Byte"));
assertEquals("new Byte((byte)-128)", CoerceUtil.javaExpression("-128", "Byte"));
try {
CoerceUtil.javaExpression("-129", "Byte");
fail("Should throw NumberFormatException for Byte -129");
} catch (NumberFormatException e) {
// success
}
// char
assertEquals("(char)0", CoerceUtil.javaExpression(null, "char"));
assertEquals("(char)0", CoerceUtil.javaExpression("", "char"));
assertEquals("(char)65", CoerceUtil.javaExpression("ABC", "char"));
assertEquals("(char)66", CoerceUtil.javaExpression("B", "char"));
// Character
assertEquals("new Character((char)0)", CoerceUtil.javaExpression(null, "Character"));
assertEquals("new Character((char)0)", CoerceUtil.javaExpression("", "Character"));
assertEquals("new Character((char)65)", CoerceUtil.javaExpression("ABC", "Character"));
assertEquals("new Character((char)66)", CoerceUtil.javaExpression("B", "Character"));
// double
assertEquals("0.0", CoerceUtil.javaExpression(null, "double"));
assertEquals("0.0", CoerceUtil.javaExpression("", "double"));
assertEquals("4.9E-324", CoerceUtil.javaExpression("4.9E-324", "double"));
assertEquals("0.0", CoerceUtil.javaExpression("4.9E-325", "double"));
assertEquals("-0.0", CoerceUtil.javaExpression("-4.9E-325", "double"));
assertEquals("1.7976931348623157E308", CoerceUtil.javaExpression("1.7976931348623157E308", "double"));
assertEquals("Double.POSITIVE_INFINITY", CoerceUtil.javaExpression("1.7976931348623159E308", "double"));
assertEquals("Double.NEGATIVE_INFINITY", CoerceUtil.javaExpression("-1.7976931348623159E308", "double"));
try {
CoerceUtil.javaExpression("x10.0", "double");
fail("Should throw NumberFormatException");
} catch (NumberFormatException e) {
// success
}
// Double
assertEquals("new Double(0.0)", CoerceUtil.javaExpression(null, "Double"));
assertEquals("new Double(0.0)", CoerceUtil.javaExpression("", "Double"));
assertEquals("new Double(4.9E-324)", CoerceUtil.javaExpression("4.9E-324", "Double"));
assertEquals("new Double(0.0)", CoerceUtil.javaExpression("4.9E-325", "Double"));
assertEquals("new Double(-0.0)", CoerceUtil.javaExpression("-4.9E-325", "Double"));
assertEquals("new Double(1.7976931348623157E308)", CoerceUtil.javaExpression("1.7976931348623157E308", "Double"));
assertEquals("new Double(Double.POSITIVE_INFINITY)", CoerceUtil.javaExpression("1.7976931348623159E308", "Double"));
assertEquals("new Double(Double.NEGATIVE_INFINITY)", CoerceUtil.javaExpression("-1.7976931348623159E308", "Double"));
try {
CoerceUtil.javaExpression("x10.0", "Double");
fail("Should throw NumberFormatException");
} catch (NumberFormatException e) {
// success
}
// float
assertEquals("0.0f", CoerceUtil.javaExpression(null, "float"));
assertEquals("0.0f", CoerceUtil.javaExpression("", "float"));
assertEquals("1.4E-45f", CoerceUtil.javaExpression("1.4E-45", "float"));
assertEquals("0.0f", CoerceUtil.javaExpression("1.4E-46", "float"));
assertEquals("-0.0f", CoerceUtil.javaExpression("-1.4E-46", "float"));
assertEquals("3.4028235E38f", CoerceUtil.javaExpression("3.4028235E38", "float"));
assertEquals("Float.POSITIVE_INFINITY", CoerceUtil.javaExpression("3.4028236E38", "float"));
assertEquals("Float.NEGATIVE_INFINITY", CoerceUtil.javaExpression("-3.4028236E38", "float"));
try {
CoerceUtil.javaExpression("x10.0", "float");
fail("Should throw NumberFormatException");
} catch (NumberFormatException e) {
// success
}
// Float
assertEquals("new Float(0.0f)", CoerceUtil.javaExpression(null, "Float"));
assertEquals("new Float(0.0f)", CoerceUtil.javaExpression("", "Float"));
assertEquals("new Float(1.4E-45f)", CoerceUtil.javaExpression("1.4E-45", "Float"));
assertEquals("new Float(0.0f)", CoerceUtil.javaExpression("1.4E-46", "Float"));
assertEquals("new Float(-0.0f)", CoerceUtil.javaExpression("-1.4E-46", "Float"));
assertEquals("new Float(3.4028235E38f)", CoerceUtil.javaExpression("3.4028235E38", "Float"));
assertEquals("new Float(Float.POSITIVE_INFINITY)", CoerceUtil.javaExpression("3.4028236E38", "Float"));
assertEquals("new Float(Float.NEGATIVE_INFINITY)", CoerceUtil.javaExpression("-3.4028236E38", "Float"));
try {
CoerceUtil.javaExpression("x10.0", "Float");
fail("Should throw NumberFormatException");
} catch (NumberFormatException e) {
// success
}
// int
assertEquals("0", CoerceUtil.javaExpression(null, "int"));
assertEquals("0", CoerceUtil.javaExpression("", "int"));
assertEquals("10", CoerceUtil.javaExpression("10", "int"));
assertEquals("2147483647", CoerceUtil.javaExpression("2147483647", "int"));
assertEquals("-2147483648", CoerceUtil.javaExpression("-2147483648", "int"));
try {
CoerceUtil.javaExpression("2147483648", "int");
fail("Should throw NumberFormatException");
} catch (NumberFormatException e) {
// success
}
// Integer
assertEquals("new Integer(0)", CoerceUtil.javaExpression(null, "Integer"));
assertEquals("new Integer(0)", CoerceUtil.javaExpression("", "Integer"));
assertEquals("new Integer(10)", CoerceUtil.javaExpression("10", "Integer"));
assertEquals("new Integer(2147483647)", CoerceUtil.javaExpression("2147483647", "Integer"));
assertEquals("new Integer(-2147483648)", CoerceUtil.javaExpression("-2147483648", "Integer"));
try {
CoerceUtil.javaExpression("2147483648", "Integer");
fail("Should throw NumberFormatException");
} catch (NumberFormatException e) {
// success
}
// long
assertEquals("0L", CoerceUtil.javaExpression(null, "long"));
assertEquals("0L", CoerceUtil.javaExpression("", "long"));
assertEquals("10L", CoerceUtil.javaExpression("10", "long"));
assertEquals("9223372036854775807L", CoerceUtil.javaExpression("9223372036854775807", "long"));
assertEquals("-9223372036854775808L", CoerceUtil.javaExpression("-9223372036854775808", "long"));
try {
CoerceUtil.javaExpression("-9223372036854775809", "long");
fail("Should throw NumberFormatException");
} catch (NumberFormatException e) {
// success
}
// Long
assertEquals("new Long(0L)", CoerceUtil.javaExpression(null, "Long"));
assertEquals("new Long(0L)", CoerceUtil.javaExpression("", "Long"));
assertEquals("new Long(10L)", CoerceUtil.javaExpression("10", "Long"));
assertEquals("new Long(9223372036854775807L)", CoerceUtil.javaExpression("9223372036854775807", "Long"));
assertEquals("new Long(-9223372036854775808L)", CoerceUtil.javaExpression("-9223372036854775808", "Long"));
try {
CoerceUtil.javaExpression("-9223372036854775809", "Long");
fail("Should throw NumberFormatException");
} catch (NumberFormatException e) {
// success
}
// short
assertEquals("(short)0", CoerceUtil.javaExpression(null, "short"));
assertEquals("(short)0", CoerceUtil.javaExpression("", "short"));
assertEquals("(short)10", CoerceUtil.javaExpression("10", "short"));
assertEquals("(short)32767", CoerceUtil.javaExpression("32767", "short"));
assertEquals("(short)-32768", CoerceUtil.javaExpression("-32768", "short"));
try {
CoerceUtil.javaExpression("32768", "short");
fail("Should throw NumberFormatException");
} catch (NumberFormatException e) {
// success
}
try {
CoerceUtil.javaExpression("x32768", "short");
fail("Should throw NumberFormatException");
} catch (NumberFormatException e) {
// success
}
// Short
assertEquals("new Short((short)0)", CoerceUtil.javaExpression(null, "Short"));
assertEquals("new Short((short)0)", CoerceUtil.javaExpression("", "Short"));
assertEquals("new Short((short)10)", CoerceUtil.javaExpression("10", "Short"));
assertEquals("new Short((short)32767)", CoerceUtil.javaExpression("32767", "Short"));
assertEquals("new Short((short)-32768)", CoerceUtil.javaExpression("-32768", "Short"));
try {
CoerceUtil.javaExpression("32768", "Short");
fail("Should throw NumberFormatException");
} catch (NumberFormatException e) {
// success
}
// Object
assertEquals("\"\"", CoerceUtil.javaExpression(null, "Object"));
assertEquals("\"\"", CoerceUtil.javaExpression("", "Object"));
assertEquals("\"x\\\"y\\\"z\"", CoerceUtil.javaExpression("x\"y\"z", "Object"));
assertEquals("\"x\\\"y\\\"z\"", CoerceUtil.javaExpression("x\"y\"z", "java.lang.Object"));
// unsupported type
try {
CoerceUtil.javaExpression("10", "badType");
fail("Should throw IllegalArgumentException");
} catch (IllegalArgumentException e) {
// success
}
}
}