package org.exolab.castor.xml; import java.math.BigDecimal; import java.math.BigInteger; import junit.framework.TestCase; import org.exolab.castor.xml.parsing.primitive.objects.PrimitiveObjectFactory; import org.junit.Assert; /** * This class tests the functionality of PrimitiveObject. * * @author <a href="mailto:philipp DOT erlacher AT gmail DOT com">Philipp * Erlacher</a> * */ public class PrimitiveObjectTest extends TestCase { public void testPrimitiveBigDecimal() { BigDecimal decimal = (BigDecimal) PrimitiveObjectFactory.getObject(BigDecimal.class, "-1.23E-12"); Assert.assertEquals(decimal.unscaledValue(), new BigInteger("-123")); Assert.assertEquals(decimal.scale(), 14); } public void testPrimitiveBigDecimalNull() { BigDecimal decimal = (BigDecimal) PrimitiveObjectFactory.getObject(BigDecimal.class, null); Assert.assertEquals(decimal.unscaledValue(), new BigInteger("0")); Assert.assertEquals(decimal.scale(), 0); } public void testPrimitiveBigDecimalEmptyString() { BigDecimal decimal = (BigDecimal) PrimitiveObjectFactory.getObject(BigDecimal.class, ""); Assert.assertEquals(decimal.unscaledValue(), new BigInteger("0")); Assert.assertEquals(decimal.scale(), 0); } public void testPrimitiveBigInteger() { BigInteger bigInt = (BigInteger) PrimitiveObjectFactory.getObject(BigInteger.class, "-123"); Assert.assertEquals(bigInt, new BigInteger("-123")); } public void testPrimitiveBigIntegerNull() { BigInteger bigInt = (BigInteger) PrimitiveObjectFactory.getObject(BigInteger.class, ""); Assert.assertEquals(bigInt, new BigInteger("0")); bigInt = (BigInteger) PrimitiveObjectFactory.getObject(BigInteger.class, null); Assert.assertEquals(bigInt, new BigInteger("0")); } public void testPrimitiveBoolean() { Boolean bool = (Boolean) PrimitiveObjectFactory.getObject(Boolean.class, "1"); Assert.assertEquals(bool, true); bool = (Boolean) PrimitiveObjectFactory.getObject(Boolean.class, "true"); Assert.assertEquals(bool, true); bool = (Boolean) PrimitiveObjectFactory.getObject(Boolean.class, "TRUE"); Assert.assertEquals(bool, true); bool = (Boolean) PrimitiveObjectFactory.getObject(Boolean.class, "0"); Assert.assertEquals(bool, false); bool = (Boolean) PrimitiveObjectFactory.getObject(Boolean.class, "false"); Assert.assertEquals(bool, false); bool = (Boolean) PrimitiveObjectFactory.getObject(Boolean.class, "FALSE"); Assert.assertEquals(bool, false); bool = (Boolean) PrimitiveObjectFactory.getObject(Boolean.TYPE, "1"); Assert.assertEquals(bool, true); bool = (Boolean) PrimitiveObjectFactory.getObject(Boolean.TYPE, "true"); Assert.assertEquals(bool, true); bool = (Boolean) PrimitiveObjectFactory.getObject(Boolean.TYPE, "TRUE"); Assert.assertEquals(bool, true); bool = (Boolean) PrimitiveObjectFactory.getObject(Boolean.TYPE, "0"); Assert.assertEquals(bool, false); bool = (Boolean) PrimitiveObjectFactory.getObject(Boolean.TYPE, "false"); Assert.assertEquals(bool, false); bool = (Boolean) PrimitiveObjectFactory.getObject(Boolean.TYPE, "FALSE"); Assert.assertEquals(bool, false); } public void testPrimitiveBooleanNull() { Boolean bool = (Boolean) PrimitiveObjectFactory.getObject(Boolean.class, ""); Assert.assertEquals(bool, false); bool = (Boolean) PrimitiveObjectFactory.getObject(Boolean.class, null); Assert.assertEquals(bool, false); } public void testPrimitiveByte() { Byte byt = (Byte) PrimitiveObjectFactory.getObject(Byte.class, "8"); Assert.assertEquals(byt, new Byte("8")); byt = (Byte) PrimitiveObjectFactory.getObject(Byte.TYPE, "8"); Assert.assertEquals(byt, new Byte("8")); } public void testPrimitiveByteNull() { Byte byt = (Byte) PrimitiveObjectFactory.getObject(Byte.class, ""); Assert.assertEquals(byt, new Byte("0")); byt = (Byte) PrimitiveObjectFactory.getObject(Byte.class, null); Assert.assertEquals(byt, new Byte("0")); } public void testPrimitiveChar() { Character chars = (Character) PrimitiveObjectFactory.getObject(Character.class, "I don't finish anythi"); Assert.assertEquals(chars, new Character('I')); } public void testPrimitiveCharNull() { Character chars = (Character) PrimitiveObjectFactory.getObject(Character.class, ""); Assert.assertEquals(chars, new Character('\0')); chars = (Character) PrimitiveObjectFactory.getObject(Character.class, null); Assert.assertEquals(chars, new Character('\0')); } public void testPrimitiveDefault() { String value = "I don't finish anythi"; String string = (String) PrimitiveObjectFactory.getObject(UnknownError.class, value); Assert.assertEquals(string, value); } public void testPrimitiveDefaultNull() { Object retObject = PrimitiveObjectFactory.getObject(UnknownError.class, null); Assert.assertEquals(retObject, null); } public void testPrimitiveDouble() { Double value = (Double) PrimitiveObjectFactory.getObject(Double.class, "4.2"); Assert.assertEquals(value, new Double("4.2")); value = (Double) PrimitiveObjectFactory.getObject(Double.TYPE, "4.2"); Assert.assertEquals(value, new Double("4.2")); } public void testPrimitiveDoubleNull() { Double value = (Double) PrimitiveObjectFactory.getObject(Double.class, null); Assert.assertEquals(value, new Double("0.0")); value = (Double) PrimitiveObjectFactory.getObject(Double.TYPE, null); Assert.assertEquals(value, new Double("0.0")); } public void testPrimitiveEnum() { // TODO PE enum test } public void testPrimitiveFloat() { Float floatObject = (Float) PrimitiveObjectFactory.getObject(Float.TYPE, "42"); Assert.assertEquals(floatObject, new Float("42")); floatObject = (Float) PrimitiveObjectFactory.getObject(Float.TYPE, " 43 "); Assert.assertEquals(floatObject, new Float("43")); floatObject = (Float) PrimitiveObjectFactory.getObject(Float.class, "44"); Assert.assertEquals(floatObject, new Float("44")); floatObject = (Float) PrimitiveObjectFactory.getObject(Float.class, " 45 "); Assert.assertEquals(floatObject, new Float("45")); } public void testPrimitiveObject() { Integer integer = (Integer) PrimitiveObjectFactory.getObject(Integer.TYPE, " 42 "); Assert.assertTrue(integer == 42); String string = (String) PrimitiveObjectFactory.getObject(String.class, "Hallo"); Assert.assertEquals(string, "Hallo"); } public void testPrimitiveInteger() { Integer integer = (Integer) PrimitiveObjectFactory.getObject(Integer.TYPE, "42"); Assert.assertTrue(integer == 42); integer = (Integer) PrimitiveObjectFactory.getObject(Integer.TYPE, " 43 "); Assert.assertTrue(integer == 43); integer = (Integer) PrimitiveObjectFactory.getObject(Integer.class, "44"); Assert.assertTrue(integer == 44); integer = (Integer) PrimitiveObjectFactory.getObject(Integer.class, " 45 "); Assert.assertTrue(integer == 45); } public void testPrimitiveLong() { Long longObject = (Long) PrimitiveObjectFactory.getObject(Long.TYPE, "42"); Assert.assertEquals(longObject, new Long("42")); longObject = (Long) PrimitiveObjectFactory.getObject(Long.TYPE, " 43 "); Assert.assertEquals(longObject, new Long("43")); longObject = (Long) PrimitiveObjectFactory.getObject(Long.class, "44"); Assert.assertEquals(longObject, new Long("44")); longObject = (Long) PrimitiveObjectFactory.getObject(Long.class, " 45 "); Assert.assertEquals(longObject, new Long("45")); } public void testPrimitiveShort() { Short shortObject = (Short) PrimitiveObjectFactory.getObject(Short.TYPE, "42"); Assert.assertEquals(shortObject, new Short("42")); shortObject = (Short) PrimitiveObjectFactory.getObject(Short.TYPE, " 43 "); Assert.assertEquals(shortObject, new Short("43")); shortObject = (Short) PrimitiveObjectFactory.getObject(Short.class, "44"); Assert.assertEquals(shortObject, new Short("44")); shortObject = (Short) PrimitiveObjectFactory.getObject(Short.class, " 45 "); Assert.assertEquals(shortObject, new Short("45")); } public void testPrimitiveString() { String value = "I don't finish anythi"; String string = (String) PrimitiveObjectFactory.getObject(UnknownError.class, value); Assert.assertEquals(string, value); } }