package org.simpleframework.xml.transform; import org.simpleframework.xml.transform.Transformer; import junit.framework.TestCase; public class TransformerTest extends TestCase { private static class BlankMatcher implements Matcher { public Transform match(Class type) throws Exception { return null; } } private Transformer transformer; public void setUp() { this.transformer = new Transformer(new BlankMatcher()); } public void testInteger() throws Exception { Object value = transformer.read("1", Integer.class); String text = transformer.write(value, Integer.class); assertEquals(value, new Integer(1)); assertEquals(text, "1"); } public void testString() throws Exception { Object value = transformer.read("some text", String.class); String text = transformer.write(value, String.class); assertEquals("some text", value); assertEquals("some text", text); } public void testCharacter() throws Exception { Object value = transformer.read("c", Character.class); String text = transformer.write(value, Character.class); assertEquals(value, new Character('c')); assertEquals(text, "c"); } public void testInvalidCharacter() throws Exception { boolean success = false; try { transformer.read("too long", Character.class); }catch(InvalidFormatException e) { e.printStackTrace(); success = true; } assertTrue(success); } public void testFloat() throws Exception { Object value = transformer.read("1.12", Float.class); String text = transformer.write(value, Float.class); assertEquals(value, new Float(1.12)); assertEquals(text, "1.12"); } public void testDouble() throws Exception { Object value = transformer.read("12.33", Double.class); String text = transformer.write(value, Double.class); assertEquals(value, new Double(12.33)); assertEquals(text, "12.33"); } public void testBoolean() throws Exception { Object value = transformer.read("true", Boolean.class); String text = transformer.write(value, Boolean.class); assertEquals(value, Boolean.TRUE); assertEquals(text, "true"); } public void testLong() throws Exception { Object value = transformer.read("1234567", Long.class); String text = transformer.write(value, Long.class); assertEquals(value, new Long(1234567)); assertEquals(text, "1234567"); } public void testShort() throws Exception { Object value = transformer.read("12", Short.class); String text = transformer.write(value, Short.class); assertEquals(value, new Short((short)12)); assertEquals(text, "12"); } public void testPrimitiveIntegerArray() throws Exception { Object value = transformer.read("1, 2, 3, 4, 5", int[].class); String text = transformer.write(value, int[].class); assertTrue(value instanceof int[]); int[] array = (int[])value; assertEquals(array.length, 5); assertEquals(array[0], 1); assertEquals(array[1], 2); assertEquals(array[2], 3); assertEquals(array[3], 4); assertEquals(array[4], 5); assertEquals(text, "1, 2, 3, 4, 5"); } public void testPrimitiveLongArray() throws Exception { Object value = transformer.read("1, 2, 3, 4, 5", long[].class); String text = transformer.write(value, long[].class); assertTrue(value instanceof long[]); long[] array = (long[])value; assertEquals(array.length, 5); assertEquals(array[0], 1); assertEquals(array[1], 2); assertEquals(array[2], 3); assertEquals(array[3], 4); assertEquals(array[4], 5); assertEquals(text, "1, 2, 3, 4, 5"); } public void testPrimitiveShortArray() throws Exception { Object value = transformer.read("1, 2, 3, 4, 5", short[].class); String text = transformer.write(value, short[].class); assertTrue(value instanceof short[]); short[] array = (short[])value; assertEquals(array.length, 5); assertEquals(array[0], 1); assertEquals(array[1], 2); assertEquals(array[2], 3); assertEquals(array[3], 4); assertEquals(array[4], 5); assertEquals(text, "1, 2, 3, 4, 5"); } public void testPrimitiveByteArray() throws Exception { Object value = transformer.read("1, 2, 3, 4, 5", byte[].class); String text = transformer.write(value, byte[].class); assertTrue(value instanceof byte[]); byte[] array = (byte[])value; assertEquals(array.length, 5); assertEquals(array[0], 1); assertEquals(array[1], 2); assertEquals(array[2], 3); assertEquals(array[3], 4); assertEquals(array[4], 5); assertEquals(text, "1, 2, 3, 4, 5"); } public void testPrimitiveFloatArray() throws Exception { Object value = transformer.read("1.0, 2.0, 3.0, 4.0, 5.0", float[].class); String text = transformer.write(value, float[].class); assertTrue(value instanceof float[]); float[] array = (float[])value; assertEquals(array.length, 5); assertEquals(array[0], 1.0f); assertEquals(array[1], 2.0f); assertEquals(array[2], 3.0f); assertEquals(array[3], 4.0f); assertEquals(array[4], 5.0f); assertEquals(text, "1.0, 2.0, 3.0, 4.0, 5.0"); } public void testPrimitiveDoubleArray() throws Exception { Object value = transformer.read("1, 2, 3, 4, 5", double[].class); String text = transformer.write(value, double[].class); assertTrue(value instanceof double[]); double[] array = (double[])value; assertEquals(array.length, 5); assertEquals(array[0], 1.0d); assertEquals(array[1], 2.0d); assertEquals(array[2], 3.0d); assertEquals(array[3], 4.0d); assertEquals(array[4], 5.0d); assertEquals(text, "1.0, 2.0, 3.0, 4.0, 5.0"); } public void testPrimitiveCharacterArray() throws Exception { Object value = transformer.read("hello world", char[].class); String text = transformer.write(value, char[].class); assertTrue(value instanceof char[]); char[] array = (char[])value; assertEquals(array.length, 11); assertEquals(array[0], 'h'); assertEquals(array[1], 'e'); assertEquals(array[2], 'l'); assertEquals(array[3], 'l'); assertEquals(array[4], 'o'); assertEquals(array[5], ' '); assertEquals(array[6], 'w'); assertEquals(array[7], 'o'); assertEquals(array[8], 'r'); assertEquals(array[9], 'l'); assertEquals(array[10], 'd'); assertEquals(text, "hello world"); } // Java Language types public void testIntegerArray() throws Exception { Object value = transformer.read("1, 2, 3, 4, 5", Integer[].class); String text = transformer.write(value, Integer[].class); assertTrue(value instanceof Integer[]); Integer[] array = (Integer[])value; assertEquals(array.length, 5); assertEquals(array[0], new Integer(1)); assertEquals(array[1], new Integer(2)); assertEquals(array[2], new Integer(3)); assertEquals(array[3], new Integer(4)); assertEquals(array[4], new Integer(5)); assertEquals(text, "1, 2, 3, 4, 5"); } public void testBooleanArray() throws Exception { Object value = transformer.read("true, false, false, false, true", Boolean[].class); String text = transformer.write(value, Boolean[].class); assertTrue(value instanceof Boolean[]); Boolean[] array = (Boolean[])value; assertEquals(array.length, 5); assertEquals(array[0], Boolean.TRUE); assertEquals(array[1], Boolean.FALSE); assertEquals(array[2], Boolean.FALSE); assertEquals(array[3], Boolean.FALSE); assertEquals(array[4], Boolean.TRUE); assertEquals(text, "true, false, false, false, true"); } public void testLongArray() throws Exception { Object value = transformer.read("1, 2, 3, 4, 5", Long[].class); String text = transformer.write(value, Long[].class); assertTrue(value instanceof Long[]); Long[] array = (Long[])value; assertEquals(array.length, 5); assertEquals(array[0], new Long(1)); assertEquals(array[1], new Long(2)); assertEquals(array[2], new Long(3)); assertEquals(array[3], new Long(4)); assertEquals(array[4], new Long(5)); assertEquals(text, "1, 2, 3, 4, 5"); } public void testShortArray() throws Exception { Object value = transformer.read("1, 2, 3, 4, 5", Short[].class); String text = transformer.write(value, Short[].class); assertTrue(value instanceof Short[]); Short[] array = (Short[])value; assertEquals(array.length, 5); assertEquals(array[0], new Short((short)1)); assertEquals(array[1], new Short((short)2)); assertEquals(array[2], new Short((short)3)); assertEquals(array[3], new Short((short)4)); assertEquals(array[4], new Short((short)5)); assertEquals(text, "1, 2, 3, 4, 5"); } public void testByteArray() throws Exception { Object value = transformer.read("1, 2, 3, 4, 5", Byte[].class); String text = transformer.write(value, Byte[].class); assertTrue(value instanceof Byte[]); Byte[] array = (Byte[])value; assertEquals(array.length, 5); assertEquals(array[0], new Byte((byte)1)); assertEquals(array[1], new Byte((byte)2)); assertEquals(array[2], new Byte((byte)3)); assertEquals(array[3], new Byte((byte)4)); assertEquals(array[4], new Byte((byte)5)); assertEquals(text, "1, 2, 3, 4, 5"); } public void testFloatArray() throws Exception { Object value = transformer.read("1.0, 2.0, 3.0, 4.0, 5.0", Float[].class); String text = transformer.write(value, Float[].class); assertTrue(value instanceof Float[]); Float[] array = (Float[])value; assertEquals(array.length, 5); assertEquals(array[0], new Float(1.0f)); assertEquals(array[1], new Float(2.0f)); assertEquals(array[2], new Float(3.0f)); assertEquals(array[3], new Float(4.0f)); assertEquals(array[4], new Float(5.0f)); assertEquals(text, "1.0, 2.0, 3.0, 4.0, 5.0"); } public void testDoubleArray() throws Exception { Object value = transformer.read("1, 2, 3, 4, 5", Double[].class); String text = transformer.write(value, Double[].class); assertTrue(value instanceof Double[]); Double[] array = (Double[])value; assertEquals(array.length, 5); assertEquals(array[0], new Double(1.0d)); assertEquals(array[1], new Double(2.0d)); assertEquals(array[2], new Double(3.0d)); assertEquals(array[3], new Double(4.0d)); assertEquals(array[4], new Double(5.0d)); assertEquals(text, "1.0, 2.0, 3.0, 4.0, 5.0"); } public void testCharacterArray() throws Exception { Object value = transformer.read("hello world", Character[].class); String text = transformer.write(value, Character[].class); assertTrue(value instanceof Character[]); Character[] array = (Character[])value; assertEquals(array.length, 11); assertEquals(array[0], new Character('h')); assertEquals(array[1], new Character('e')); assertEquals(array[2], new Character('l')); assertEquals(array[3], new Character('l')); assertEquals(array[4], new Character('o')); assertEquals(array[5], new Character(' ')); assertEquals(array[6], new Character('w')); assertEquals(array[7], new Character('o')); assertEquals(array[8], new Character('r')); assertEquals(array[9], new Character('l')); assertEquals(array[10], new Character('d')); assertEquals(text, "hello world"); } }