/* * Copyright 2001-2013 Geert Bevin (gbevin[remove] at uwyn dot com) * Licensed under the Apache License, Version 2.0 (the "License") */ package com.uwyn.rife.tools; import com.uwyn.rife.tools.exceptions.ConversionException; import junit.framework.TestCase; public class TestConvert extends TestCase { public TestConvert(String name) { super(name); } public void testToType() throws ConversionException { assertEquals(true, Convert.toType(1, boolean.class)); assertEquals(false, Convert.toType(0, boolean.class)); assertEquals(true, Convert.toType("1", boolean.class)); assertEquals(false, Convert.toType("0", boolean.class)); assertEquals(true, Convert.toType("t", boolean.class)); assertEquals((char)23, Convert.toType(23L, char.class)); assertEquals((char)89, Convert.toType(89.7d, char.class)); assertEquals('I', Convert.toType('I', char.class)); assertEquals('p', Convert.toType(new Character('p'), char.class)); assertEquals('A', Convert.toType("A", char.class)); assertEquals((byte)23, Convert.toType(23L, byte.class)); assertEquals((byte)89, Convert.toType(89.7d, byte.class)); assertEquals((byte)12, Convert.toType("12", byte.class)); assertEquals((short)23, Convert.toType(23L, short.class)); assertEquals((short)89, Convert.toType(89.7d, short.class)); assertEquals((short)1247, Convert.toType("1247", short.class)); assertEquals(23, Convert.toType(23L, int.class)); assertEquals(89, Convert.toType(89.7d, int.class)); assertEquals(239, Convert.toType("239", int.class)); assertEquals(23L, Convert.toType(23, long.class)); assertEquals(890L, Convert.toType(890.7d, long.class)); assertEquals(86980L, Convert.toType("86980", long.class)); assertEquals(23f, Convert.toType(23, float.class)); assertEquals(23.9f, Convert.toType(23.9f, float.class)); assertEquals(890.7f, Convert.toType(890.7d, float.class)); assertEquals(869.8f, Convert.toType("869.8", float.class)); assertEquals(23d, Convert.toType(23, double.class)); assertEquals(23.9d, (Double)Convert.toType(23.9f, double.class), 0.01d); assertEquals(869232.98792d, (Double)Convert.toType(869232.98792d, double.class), 0.000001d); assertEquals(2862324.2487d, (Double)Convert.toType("2862324.2487", double.class), 0.00001d); assertNull(Convert.toType(null, Boolean.class)); assertNull(Convert.toType(null, Character.class)); assertNull(Convert.toType(null, Byte.class)); assertNull(Convert.toType(null, Short.class)); assertNull(Convert.toType(null, Integer.class)); assertNull(Convert.toType(null, Long.class)); assertNull(Convert.toType(null, Float.class)); assertNull(Convert.toType(null, Double.class)); assertNull(Convert.toType(null, String.class)); assertEquals(true, Convert.toType(1, Boolean.class)); assertEquals(false, Convert.toType(0, Boolean.class)); assertEquals(true, Convert.toType("1", Boolean.class)); assertEquals(false, Convert.toType("0", Boolean.class)); assertEquals(true, Convert.toType("t", Boolean.class)); assertEquals((char)23, Convert.toType(23L, Character.class)); assertEquals((char)89, Convert.toType(89.7d, Character.class)); assertEquals('I', Convert.toType('I', char.class)); assertEquals('p', Convert.toType(new Character('p'), Character.class)); assertEquals('A', Convert.toType("A", Character.class)); assertEquals((byte)23, Convert.toType(23L, Byte.class)); assertEquals((byte)89, Convert.toType(89.7d, Byte.class)); assertEquals((byte)12, Convert.toType("12", Byte.class)); assertEquals((short)23, Convert.toType(23L, Short.class)); assertEquals((short)89, Convert.toType(89.7d, Short.class)); assertEquals((short)1247, Convert.toType("1247", Short.class)); assertEquals(23, Convert.toType(23L, Integer.class)); assertEquals(89, Convert.toType(89.7d, Integer.class)); assertEquals(239, Convert.toType("239", Integer.class)); assertEquals(23L, Convert.toType(23, Long.class)); assertEquals(890L, Convert.toType(890.7d, Long.class)); assertEquals(86980L, Convert.toType("86980", Long.class)); assertEquals(23f, Convert.toType(23, Float.class)); assertEquals(23.9f, Convert.toType(23.9f, Float.class)); assertEquals(890.7f, Convert.toType(890.7d, Float.class)); assertEquals(869.8f, Convert.toType("869.8", Float.class)); assertEquals(23d, Convert.toType(23, Double.class)); assertEquals(23.9d, (Double)Convert.toType(23.9f, Double.class), 0.01d); assertEquals(869232.98792d, (Double)Convert.toType(869232.98792d, Double.class), 0.000001d); assertEquals(2862324.2487d, (Double)Convert.toType("2862324.2487", Double.class), 0.00001d); assertEquals("1234", Convert.toType(1234, String.class)); assertEquals("IUOJKO", Convert.toType(new StringBuffer("IUOJKO"), CharSequence.class).toString()); } public void testToString() { assertNull(Convert.toString(null)); assertEquals("1234", Convert.toString(1234)); } public void testToBooleanErrors() { try { Convert.toBoolean(null); fail("exception not thrown"); } catch (ConversionException e) { assertNull(e.getFrom()); assertSame(boolean.class, e.getTo()); } Integer integer = 4; try { Convert.toBoolean(integer); fail("exception not thrown"); } catch (ConversionException e) { assertSame(integer, e.getFrom()); assertSame(boolean.class, e.getTo()); } Object object = new Object(); try { Convert.toBoolean(object); fail("exception not thrown"); } catch (ConversionException e) { assertSame(object, e.getFrom()); assertSame(boolean.class, e.getTo()); } } public void testToBoolean() throws ConversionException { assertEquals(true, Convert.toBoolean(1)); assertEquals(false, Convert.toBoolean(0)); assertEquals(true, Convert.toBoolean("1")); assertEquals(false, Convert.toBoolean("0")); assertEquals(true, Convert.toBoolean("t")); } public void testToBooleanDefaults() { assertEquals(true, Convert.toBoolean(null, true)); assertEquals(false, Convert.toBoolean(4, false)); assertEquals(true, Convert.toBoolean(new Object(), true)); } public void testToCharErrors() { try { Convert.toChar(null); fail("exception not thrown"); } catch (ConversionException e) { assertNull(e.getFrom()); assertSame(char.class, e.getTo()); } Object object = new Object(); try { Convert.toChar(object); fail("exception not thrown"); } catch (ConversionException e) { assertSame(object, e.getFrom()); assertSame(char.class, e.getTo()); } String string = "dfsdf"; try { Convert.toChar(string); fail("exception not thrown"); } catch (ConversionException e) { assertSame(string, e.getFrom()); assertSame(char.class, e.getTo()); } } public void testToChar() throws ConversionException { assertEquals((char)23, Convert.toChar(23L)); assertEquals((char)89, Convert.toChar(89.7d)); assertEquals('I', Convert.toChar('I')); assertEquals('p', Convert.toChar(new Character('p'))); assertEquals('A', Convert.toChar("A")); } public void testToCharDefaults() { assertEquals('c', Convert.toChar(null, 'c')); assertEquals('f', Convert.toChar(new Object(), 'f')); assertEquals('W', Convert.toChar("kjoiji", 'W')); } public void testToByteErrors() { try { Convert.toByte(null); fail("exception not thrown"); } catch (ConversionException e) { assertNull(e.getFrom()); assertSame(byte.class, e.getTo()); } Object object = new Object(); try { Convert.toByte(object); fail("exception not thrown"); } catch (ConversionException e) { assertSame(object, e.getFrom()); assertSame(byte.class, e.getTo()); } String string = "dfsdf"; try { Convert.toByte(string); fail("exception not thrown"); } catch (ConversionException e) { assertSame(string, e.getFrom()); assertSame(byte.class, e.getTo()); assertTrue(e.getCause() instanceof NumberFormatException); } } public void testToByte() throws ConversionException { assertEquals((byte)23, Convert.toByte(23L)); assertEquals((byte)89, Convert.toByte(89.7d)); assertEquals((byte)12, Convert.toByte("12")); } public void testToByteDefaults() { assertEquals((byte)87, Convert.toByte(null, (byte)87)); assertEquals((byte)3, Convert.toByte(new Object(), (byte)3)); assertEquals((byte)79, Convert.toByte("kjoiji", (byte)79)); } public void testToShortErrors() { try { Convert.toShort(null); fail("exception not thrown"); } catch (ConversionException e) { assertNull(e.getFrom()); assertSame(short.class, e.getTo()); } Object object = new Object(); try { Convert.toShort(object); fail("exception not thrown"); } catch (ConversionException e) { assertSame(object, e.getFrom()); assertSame(short.class, e.getTo()); } String string = "dfsdf"; try { Convert.toShort(string); fail("exception not thrown"); } catch (ConversionException e) { assertSame(string, e.getFrom()); assertSame(short.class, e.getTo()); assertTrue(e.getCause() instanceof NumberFormatException); } } public void testToShort() throws ConversionException { assertEquals((short)23, Convert.toShort(23L)); assertEquals((short)89, Convert.toShort(89.7d)); assertEquals((short)1247, Convert.toShort("1247")); } public void testToShortDefaults() { assertEquals((short)87, Convert.toShort(null, (short)87)); assertEquals((short)3, Convert.toShort(new Object(), (short)3)); assertEquals((short)79, Convert.toShort("kjoiji", (short)79)); } public void testToIntErrors() { try { Convert.toInt(null); fail("exception not thrown"); } catch (ConversionException e) { assertNull(e.getFrom()); assertSame(int.class, e.getTo()); } Object object = new Object(); try { Convert.toInt(object); fail("exception not thrown"); } catch (ConversionException e) { assertSame(object, e.getFrom()); assertSame(int.class, e.getTo()); } String string = "dfsdf"; try { Convert.toInt(string); fail("exception not thrown"); } catch (ConversionException e) { assertSame(string, e.getFrom()); assertSame(int.class, e.getTo()); assertTrue(e.getCause() instanceof NumberFormatException); } } public void testToInt() throws ConversionException { assertEquals(23, Convert.toInt(23L)); assertEquals(89, Convert.toInt(89.7d)); assertEquals(239, Convert.toInt("239")); } public void testToIntDefaults() { assertEquals(87, Convert.toInt(null, 87)); assertEquals(3, Convert.toInt(new Object(), 3)); assertEquals(79, Convert.toInt("kjoiji", 79)); } public void testToLongErrors() { try { Convert.toLong(null); fail("exception not thrown"); } catch (ConversionException e) { assertNull(e.getFrom()); assertSame(long.class, e.getTo()); } Object object = new Object(); try { Convert.toLong(object); fail("exception not thrown"); } catch (ConversionException e) { assertSame(object, e.getFrom()); assertSame(long.class, e.getTo()); } String string = "dfsdf"; try { Convert.toLong(string); fail("exception not thrown"); } catch (ConversionException e) { assertSame(string, e.getFrom()); assertSame(long.class, e.getTo()); assertTrue(e.getCause() instanceof NumberFormatException); } } public void testToLong() throws ConversionException { assertEquals(23L, Convert.toLong(23)); assertEquals(890L, Convert.toLong(890.7d)); assertEquals(86980L, Convert.toLong("86980")); } public void testToLongDefaults() { assertEquals(878069L, Convert.toLong(null, 878069L)); assertEquals(3L, Convert.toLong(new Object(), 3L)); assertEquals(24879L, Convert.toLong("dfjhoij", 24879L)); } public void testToFloatErrors() { try { Convert.toFloat(null); fail("exception not thrown"); } catch (ConversionException e) { assertNull(e.getFrom()); assertSame(float.class, e.getTo()); } Object object = new Object(); try { Convert.toFloat(object); fail("exception not thrown"); } catch (ConversionException e) { assertSame(object, e.getFrom()); assertSame(float.class, e.getTo()); } String string = "dfsdf"; try { Convert.toFloat(string); fail("exception not thrown"); } catch (ConversionException e) { assertSame(string, e.getFrom()); assertSame(float.class, e.getTo()); assertTrue(e.getCause() instanceof NumberFormatException); } } public void testToFloat() throws ConversionException { assertEquals(23f, Convert.toFloat(23)); assertEquals(23.9f, Convert.toFloat(23.9f)); assertEquals(890.7f, Convert.toFloat(890.7d)); assertEquals(869.8f, Convert.toFloat("869.8")); } public void testToFloatDefaults() { assertEquals(89.76f, Convert.toFloat(null, 89.76f)); assertEquals(3.98f, Convert.toFloat(new Object(), 3.98f)); assertEquals(28.43f, Convert.toFloat("dfjhoij", 28.43f)); } public void testToDoubleErrors() { try { Convert.toDouble(null); fail("exception not thrown"); } catch (ConversionException e) { assertNull(e.getFrom()); assertSame(double.class, e.getTo()); } Object object = new Object(); try { Convert.toDouble(object); fail("exception not thrown"); } catch (ConversionException e) { assertSame(object, e.getFrom()); assertSame(double.class, e.getTo()); } String string = "dfsdf"; try { Convert.toDouble(string); fail("exception not thrown"); } catch (ConversionException e) { assertSame(string, e.getFrom()); assertSame(double.class, e.getTo()); assertTrue(e.getCause() instanceof NumberFormatException); } } public void testToDouble() throws ConversionException { assertEquals(23d, Convert.toDouble(23)); assertEquals(23.9d, Convert.toDouble(23.9f), 0.01d); assertEquals(869232.98792d, Convert.toDouble(869232.98792d), 0.000001d); assertEquals(2862324.2487d, Convert.toDouble("2862324.2487"), 0.00001d); } public void testToDoubleDefaults() { assertEquals(89.76d, Convert.toDouble(null, 89.76d), 0.01d); assertEquals(869232.98792d, Convert.toDouble(new Object(), 869232.98792d), 0.000001d); assertEquals(2248682.24242d, Convert.toDouble("dfjhoij", 2248682.24242d), 0.000001d); } }