/** * Copyright (c) 2006-2011 Floggy Open Source Group. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.sourceforge.floggy.persistence.impl; import java.io.ByteArrayInputStream; import java.io.DataInput; import java.io.DataInputStream; import java.io.IOException; import java.util.Calendar; import java.util.Date; import java.util.Hashtable; import java.util.Stack; import java.util.TimeZone; import java.util.Vector; import org.jmock.Mockery; import org.microemu.MIDletBridge; import junit.framework.TestCase; import net.sourceforge.floggy.persistence.FloggyException; import net.sourceforge.floggy.persistence.RMSMemoryMicroEmulator; /** * DOCUMENT ME! * * @author <a href="mailto:thiago.moreira@floggy.org">Thiago Moreira</a> * @version $Revision$ */ public class SerializationManagerTest extends TestCase { private static final int NOT_NULL = 0; private static final int NULL = 1; /** * DOCUMENT ME! */ protected Mockery context = new Mockery(); /** * Creates a new SerializationManagerTest object. */ public SerializationManagerTest() { MIDletBridge.setMicroEmulator(new RMSMemoryMicroEmulator("target/rms")); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadBooleanNotNull() throws IOException { Boolean value = new Boolean(true); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeBoolean(value.booleanValue()); DataInput in = getDataInput(fos); Object result = SerializationManager.readBoolean(in); assertEquals(value, result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadBooleanNull() throws IOException { DataInput in = getDataInputToNullTestMethods(); Object result = SerializationManager.readBoolean(in); assertNull(result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadByteNotNull() throws IOException { Byte value = new Byte((byte) 255); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeByte(value.byteValue()); DataInput in = getDataInput(fos); Object result = SerializationManager.readByte(in); assertEquals(value, result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadByteNull() throws IOException { DataInput in = getDataInputToNullTestMethods(); Object result = SerializationManager.readByte(in); assertNull(result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadCalendarNotNull() throws IOException { Calendar value = Calendar.getInstance(); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeUTF(value.getTimeZone().getID()); fos.writeLong(value.getTimeInMillis()); DataInput in = getDataInput(fos); Object result = SerializationManager.readCalendar(in); assertEquals(value, result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadCalendarNull() throws IOException { DataInput in = getDataInputToNullTestMethods(); Object result = SerializationManager.readCalendar(in); assertNull(result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadCharNotNull() throws IOException { Character value = new Character('e'); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeChar(value.charValue()); DataInput in = getDataInput(fos); Object result = SerializationManager.readChar(in); assertEquals(value, result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadCharNull() throws IOException { DataInput in = getDataInputToNullTestMethods(); Object result = SerializationManager.readChar(in); assertNull(result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadDateNotNull() throws IOException { Date value = new Date(); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeLong(value.getTime()); DataInput in = getDataInput(fos); Object result = SerializationManager.readDate(in); assertEquals(value, result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadDateNull() throws IOException { DataInput in = getDataInputToNullTestMethods(); Object result = SerializationManager.readDate(in); assertNull(result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadDoubleNotNull() throws IOException { Double value = new Double(234.65); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeDouble(value.doubleValue()); DataInput in = getDataInput(fos); Object result = SerializationManager.readDouble(in); assertEquals(value, result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadDoubleNull() throws IOException { DataInput in = getDataInputToNullTestMethods(); Object result = SerializationManager.readDouble(in); assertNull(result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadFloatNotNull() throws IOException { Float value = new Float(234.65); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeFloat(value.floatValue()); DataInput in = getDataInput(fos); Object result = SerializationManager.readFloat(in); assertEquals(value, result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadFloatNull() throws IOException { DataInput in = getDataInputToNullTestMethods(); Object result = SerializationManager.readFloat(in); assertNull(result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testReadHashtableNotNull() throws Exception { Hashtable expected = new Hashtable(); expected.put(Boolean.TRUE, Boolean.TRUE); expected.put(new Byte((byte) 23), new Byte((byte) 23)); expected.put(new Character('1'), new Character('1')); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeInt(3); fos.writeUTF("java.lang.Boolean"); fos.writeBoolean(true); fos.writeUTF("java.lang.Boolean"); fos.writeBoolean(true); fos.writeUTF("java.lang.Byte"); fos.writeByte((byte) 23); fos.writeUTF("java.lang.Byte"); fos.writeByte((byte) 23); fos.writeUTF("java.lang.Character"); fos.writeChar('1'); fos.writeUTF("java.lang.Character"); fos.writeChar('1'); DataInput in = getDataInput(fos); Hashtable actual = SerializationManager.readHashtable(in); assertEquals(expected, actual); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testReadHashtableNull() throws Exception { DataInput in = getDataInputToNullTestMethods(); Object result = SerializationManager.readHashtable(in); assertNull(result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadIntNotNull() throws IOException { Integer value = new Integer(2345); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeInt(value.intValue()); DataInput in = getDataInput(fos); Object result = SerializationManager.readInt(in); assertEquals(value, result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadIntNull() throws IOException { DataInput in = getDataInputToNullTestMethods(); Object result = SerializationManager.readInt(in); assertNull(result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadLongNotNull() throws IOException { Long value = new Long(2345); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeLong(value.longValue()); DataInput in = getDataInput(fos); Object result = SerializationManager.readLong(in); assertEquals(value, result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadLongNull() throws IOException { DataInput in = getDataInputToNullTestMethods(); Object result = SerializationManager.readLong(in); assertNull(result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testReadObjectCLDC10NotNull() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); Boolean expectedBoolean = Boolean.TRUE; fos.writeUTF(expectedBoolean.getClass().getName()); fos.writeBoolean(expectedBoolean.booleanValue()); Byte expectedByte = new Byte((byte) 34); fos.writeUTF(expectedByte.getClass().getName()); fos.writeByte(expectedByte.byteValue()); Character expectedCharacter = new Character('d'); fos.writeUTF(expectedCharacter.getClass().getName()); fos.writeChar(expectedCharacter.charValue()); Integer expectedInteger = new Integer(99); fos.writeUTF(expectedInteger.getClass().getName()); fos.writeInt(expectedInteger.intValue()); Long expectedLong = new Long(898798798); fos.writeUTF(expectedLong.getClass().getName()); fos.writeLong(expectedLong.longValue()); Short expectedShort = new Short((short) 234); fos.writeUTF(expectedShort.getClass().getName()); fos.writeShort(expectedShort.shortValue()); String expectedString = "flogggy"; fos.writeUTF(expectedString.getClass().getName()); fos.writeUTF(expectedString); StringBuffer expectedStringBuffer = new StringBuffer("floggy"); fos.writeUTF(expectedStringBuffer.getClass().getName()); fos.writeUTF(expectedStringBuffer.toString()); Calendar expectedCalendar = Calendar.getInstance(); fos.writeUTF("java.util.Calendar"); fos.writeUTF(expectedCalendar.getTimeZone().getID()); fos.writeLong(expectedCalendar.getTimeInMillis()); Date expectedDate = new Date(); fos.writeUTF(expectedDate.getClass().getName()); fos.writeLong(expectedDate.getTime()); TimeZone expectedTimeZone = TimeZone.getDefault(); fos.writeUTF("java.util.TimeZone"); fos.writeUTF(expectedTimeZone.getID()); DataInput in = getDataInput(fos); Object actual = SerializationManager.readObjectCLDC10(in, false); assertEquals(expectedBoolean, actual); actual = SerializationManager.readObjectCLDC10(in, false); assertEquals(expectedByte, actual); actual = SerializationManager.readObjectCLDC10(in, false); assertEquals(expectedCharacter, actual); actual = SerializationManager.readObjectCLDC10(in, false); assertEquals(expectedInteger, actual); actual = SerializationManager.readObjectCLDC10(in, false); assertEquals(expectedLong, actual); actual = SerializationManager.readObjectCLDC10(in, false); assertEquals(expectedShort, actual); actual = SerializationManager.readObjectCLDC10(in, false); assertEquals(expectedString, actual); actual = SerializationManager.readObjectCLDC10(in, false); assertEquals(expectedStringBuffer.toString(), actual.toString()); actual = SerializationManager.readObjectCLDC10(in, false); assertEquals(expectedCalendar, actual); actual = SerializationManager.readObjectCLDC10(in, false); assertEquals(expectedDate, actual); actual = SerializationManager.readObjectCLDC10(in, false); assertEquals(expectedTimeZone, actual); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testReadObjectNotNull() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); Boolean expectedBoolean = Boolean.TRUE; fos.writeUTF(expectedBoolean.getClass().getName()); fos.writeBoolean(expectedBoolean.booleanValue()); Byte expectedByte = new Byte((byte) 34); fos.writeUTF(expectedByte.getClass().getName()); fos.writeByte(expectedByte.byteValue()); Character expectedCharacter = new Character('d'); fos.writeUTF(expectedCharacter.getClass().getName()); fos.writeChar(expectedCharacter.charValue()); Double expectedDouble = new Double(23d); fos.writeUTF(expectedDouble.getClass().getName()); fos.writeDouble(expectedDouble.doubleValue()); Float expectedFloat = new Float(2343f); fos.writeUTF(expectedFloat.getClass().getName()); fos.writeFloat(expectedFloat.floatValue()); Integer expectedInteger = new Integer(99); fos.writeUTF(expectedInteger.getClass().getName()); fos.writeInt(expectedInteger.intValue()); Long expectedLong = new Long(898798798); fos.writeUTF(expectedLong.getClass().getName()); fos.writeLong(expectedLong.longValue()); Short expectedShort = new Short((short) 234); fos.writeUTF(expectedShort.getClass().getName()); fos.writeShort(expectedShort.shortValue()); String expectedString = "flogggy"; fos.writeUTF(expectedString.getClass().getName()); fos.writeUTF(expectedString); StringBuffer expectedStringBuffer = new StringBuffer("floggy"); fos.writeUTF(expectedStringBuffer.getClass().getName()); fos.writeUTF(expectedStringBuffer.toString()); Calendar expectedCalendar = Calendar.getInstance(); fos.writeUTF("java.util.Calendar"); fos.writeUTF(expectedCalendar.getTimeZone().getID()); fos.writeLong(expectedCalendar.getTimeInMillis()); Date expectedDate = new Date(); fos.writeUTF(expectedDate.getClass().getName()); fos.writeLong(expectedDate.getTime()); TimeZone expectedTimeZone = TimeZone.getDefault(); fos.writeUTF("java.util.TimeZone"); fos.writeUTF(expectedTimeZone.getID()); DataInput in = getDataInput(fos); Object actual = SerializationManager.readObject(in, false); assertEquals(expectedBoolean, actual); actual = SerializationManager.readObject(in, false); assertEquals(expectedByte, actual); actual = SerializationManager.readObject(in, false); assertEquals(expectedCharacter, actual); actual = SerializationManager.readObject(in, false); assertEquals(expectedDouble, actual); actual = SerializationManager.readObject(in, false); assertEquals(expectedFloat, actual); actual = SerializationManager.readObject(in, false); assertEquals(expectedInteger, actual); actual = SerializationManager.readObject(in, false); assertEquals(expectedLong, actual); actual = SerializationManager.readObject(in, false); assertEquals(expectedShort, actual); actual = SerializationManager.readObject(in, false); assertEquals(expectedString, actual); actual = SerializationManager.readObject(in, false); assertEquals(expectedStringBuffer.toString(), actual.toString()); actual = SerializationManager.readObject(in, false); assertEquals(expectedCalendar, actual); actual = SerializationManager.readObject(in, false); assertEquals(expectedDate, actual); actual = SerializationManager.readObject(in, false); assertEquals(expectedTimeZone, actual); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testReadPersistableNotNull() throws Exception { } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testReadPersistableNull() throws Exception { DataInput in = getDataInputToNullTestMethods(); Object result = SerializationManager.readPersistable(in, null, false); assertNull(result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadShortNotNull() throws IOException { Short value = new Short((short) 345); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeShort(value.shortValue()); DataInput in = getDataInput(fos); Object result = SerializationManager.readShort(in); assertEquals(value, result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadShortNull() throws IOException { DataInput in = getDataInputToNullTestMethods(); Object result = SerializationManager.readShort(in); assertNull(result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadStackNotNull() throws IOException { } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testReadStackNotNullEmpty() throws Exception { Stack value = new Stack(); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeInt(0); DataInput in = getDataInput(fos); Object result = SerializationManager.readStack(in, false); assertEquals(value, result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testReadStackNotNullNotEmptyNullObjects() throws Exception { Stack value = new Stack(); value.add(null); value.add(null); value.add(null); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeInt(3); fos.writeByte(NULL); fos.writeByte(NULL); fos.writeByte(NULL); DataInput in = getDataInput(fos); Object result = SerializationManager.readStack(in, false); assertEquals(value, result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testReadStackNull() throws Exception { DataInput in = getDataInputToNullTestMethods(); Object result = SerializationManager.readStack(in, false); assertNull(result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadStringBufferNotNull() throws IOException { StringBuffer value = new StringBuffer("floggy"); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeUTF(value.toString()); DataInput in = getDataInput(fos); Object result = SerializationManager.readStringBuffer(in); assertEquals(value.toString(), result.toString()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadStringBufferNull() throws IOException { DataInput in = getDataInputToNullTestMethods(); Object result = SerializationManager.readStringBuffer(in); assertNull(result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadStringNotNull() throws IOException { String value = "floggy"; FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeUTF(value); DataInput in = getDataInput(fos); Object result = SerializationManager.readString(in); assertEquals(value, result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadStringNull() throws IOException { DataInput in = getDataInputToNullTestMethods(); Object result = SerializationManager.readString(in); assertNull(result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadTimeZoneBufferNull() throws IOException { DataInput in = getDataInputToNullTestMethods(); Object result = SerializationManager.readTimeZone(in); assertNull(result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testReadTimeZoneNotNull() throws IOException { TimeZone value = TimeZone.getDefault(); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeUTF(value.getID()); DataInput in = getDataInput(fos); Object result = SerializationManager.readTimeZone(in); assertEquals(value, result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testReadVectorCLDC10NotNullNotEmptyThrowException() throws Exception { } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testReadVectorNotNullEmpty() throws Exception { Vector value = new Vector(); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeInt(0); DataInput in = getDataInput(fos); Object result = SerializationManager.readVector(in, false); assertEquals(value, result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testReadVectorNotNullNotEmptyNotNullObjects() throws Exception { Vector value = new Vector(); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeInt(13); fos.writeByte(NOT_NULL); fos.writeUTF("java.lang.Boolean"); fos.writeBoolean(true); value.add(Boolean.TRUE); fos.writeByte(NOT_NULL); fos.writeUTF("java.lang.Byte"); fos.writeByte(255); value.add(new Byte((byte) 255)); fos.writeByte(NOT_NULL); fos.writeUTF("java.lang.Character"); fos.writeChar('q'); value.add(new Character('q')); fos.writeByte(NOT_NULL); fos.writeUTF("java.lang.Double"); fos.writeDouble(3434.56); value.add(new Double(3434.56)); fos.writeByte(NOT_NULL); fos.writeUTF("java.lang.Float"); fos.writeFloat(2323.45f); value.add(new Float(2323.45f)); fos.writeByte(NOT_NULL); fos.writeUTF("java.lang.Integer"); fos.writeInt(2323); value.add(new Integer(2323)); fos.writeByte(NOT_NULL); fos.writeUTF("java.lang.Long"); fos.writeLong(2342343); value.add(new Long(2342343)); fos.writeByte(NOT_NULL); fos.writeUTF("java.lang.Short"); fos.writeShort(23); value.add(new Short((short) 23)); fos.writeByte(NOT_NULL); fos.writeUTF("java.lang.String"); fos.writeUTF("floggy"); value.add("floggy"); Calendar calendar = Calendar.getInstance(); fos.writeByte(NOT_NULL); fos.writeUTF("java.util.Calendar"); fos.writeUTF(calendar.getTimeZone().getID()); fos.writeLong(calendar.getTimeInMillis()); value.add(calendar); Date date = new Date(); fos.writeByte(NOT_NULL); fos.writeUTF("java.util.Date"); fos.writeLong(date.getTime()); value.add(date); TimeZone timeZone = TimeZone.getDefault(); fos.writeByte(NOT_NULL); fos.writeUTF("java.util.TimeZone"); fos.writeUTF(timeZone.getID()); value.add(timeZone); fos.writeByte(NULL); value.add(null); DataInput in = getDataInput(fos); Object result = SerializationManager.readVector(in, false); assertEquals(value, result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testReadVectorNotNullNotEmptyNullObjects() throws Exception { Vector value = new Vector(); value.add(null); value.add(null); value.add(null); FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NOT_NULL); fos.writeInt(3); fos.writeByte(NULL); fos.writeByte(NULL); fos.writeByte(NULL); DataInput in = getDataInput(fos); Object result = SerializationManager.readVector(in, false); assertEquals(value, result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testReadVectorNull() throws Exception { DataInput in = getDataInputToNullTestMethods(); Object result = SerializationManager.readVector(in, false); assertNull(result); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteBooleanNotNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); Boolean value = Boolean.TRUE; SerializationManager.writeBoolean(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.booleanValue(), dis.readBoolean()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteBooleanNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); SerializationManager.writeBoolean(fos, null); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteByteNotNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); Byte value = new Byte((byte) 235); SerializationManager.writeByte(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.byteValue(), dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteByteNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); SerializationManager.writeByte(fos, null); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteCalendarNotNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); Calendar value = Calendar.getInstance(); SerializationManager.writeCalendar(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.getTimeZone().getID(), dis.readUTF()); assertEquals(value.getTimeInMillis(), dis.readLong()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteCalendarNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); SerializationManager.writeCalendar(fos, null); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteCharNotNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); Character value = new Character('q'); SerializationManager.writeChar(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.charValue(), dis.readChar()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteCharNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); SerializationManager.writeChar(fos, null); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteDateNotNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); Date value = new Date(); SerializationManager.writeDate(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.getTime(), dis.readLong()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteDateNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); SerializationManager.writeDate(fos, null); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteDoubleNotNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); Double value = new Double(1212.32); SerializationManager.writeDouble(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.doubleValue(), dis.readDouble(), 0.0); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteDoubleNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); SerializationManager.writeDouble(fos, null); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteFloatNotNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); Float value = new Float(1212.32); SerializationManager.writeFloat(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.floatValue(), dis.readFloat(), 0.0); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteFloatNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); SerializationManager.writeFloat(fos, null); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testWriteHashtableEmptyNotNull() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); Hashtable value = new Hashtable(); SerializationManager.writeHashtable(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testWriteHashtableNotEmptyNotNull() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); Hashtable value = new Hashtable(); value.put("1", Boolean.TRUE); SerializationManager.writeHashtable(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.size(), dis.readInt()); assertEquals("java.lang.String", dis.readUTF()); assertEquals("1", dis.readUTF()); assertEquals("java.lang.Boolean", dis.readUTF()); assertEquals(Boolean.TRUE, new Boolean(dis.readBoolean())); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testWriteHashtableNull() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); SerializationManager.writeHashtable(fos, null); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteIntNotNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); Integer value = new Integer(23165465); SerializationManager.writeInt(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.intValue(), dis.readInt()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteIntNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); SerializationManager.writeInt(fos, null); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteLongNotNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); Long value = new Long(23165465); SerializationManager.writeLong(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.longValue(), dis.readLong()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteLongNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); SerializationManager.writeLong(fos, null); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testWriteObjectCLDC10NotNull() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); Boolean expectedBoolean = Boolean.FALSE; SerializationManager.writeObjectCLDC10(fos, expectedBoolean); Byte expectedByte = new Byte((byte) 34); SerializationManager.writeObjectCLDC10(fos, expectedByte); Character expectedCharacter = new Character('w'); SerializationManager.writeObjectCLDC10(fos, expectedCharacter); Integer expectedInteger = new Integer(987); SerializationManager.writeObjectCLDC10(fos, expectedInteger); Long expectedLong = new Long(34563457); SerializationManager.writeObjectCLDC10(fos, expectedLong); Short expectedShort = new Short((short) 34); SerializationManager.writeObjectCLDC10(fos, expectedShort); String expectedString = "asdkljf"; SerializationManager.writeObjectCLDC10(fos, expectedString); StringBuffer expectedStringBuffer = new StringBuffer("flogggyter"); SerializationManager.writeObjectCLDC10(fos, expectedStringBuffer); Calendar expectedCalendar = Calendar.getInstance(); SerializationManager.writeObjectCLDC10(fos, expectedCalendar); Date expectedDate = new Date(); SerializationManager.writeObjectCLDC10(fos, expectedDate); TimeZone expectedTimeZone = TimeZone.getDefault(); SerializationManager.writeObjectCLDC10(fos, expectedTimeZone); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals("java.lang.Boolean", dis.readUTF()); assertEquals(expectedBoolean, new Boolean(dis.readBoolean())); assertEquals("java.lang.Byte", dis.readUTF()); assertEquals(expectedByte, new Byte(dis.readByte())); assertEquals("java.lang.Character", dis.readUTF()); assertEquals(expectedCharacter, new Character(dis.readChar())); assertEquals("java.lang.Integer", dis.readUTF()); assertEquals(expectedInteger, new Integer(dis.readInt())); assertEquals("java.lang.Long", dis.readUTF()); assertEquals(expectedLong, new Long(dis.readLong())); assertEquals("java.lang.Short", dis.readUTF()); assertEquals(expectedShort, new Short(dis.readShort())); assertEquals("java.lang.String", dis.readUTF()); assertEquals(expectedString, dis.readUTF()); assertEquals("java.lang.StringBuffer", dis.readUTF()); assertEquals(expectedStringBuffer.toString(), new StringBuffer(dis.readUTF()).toString()); assertEquals("java.util.Calendar", dis.readUTF()); Calendar actual = Calendar.getInstance(TimeZone.getTimeZone(dis.readUTF())); actual.setTimeInMillis(dis.readLong()); assertEquals(expectedCalendar, actual); assertEquals("java.util.Date", dis.readUTF()); assertEquals(expectedDate, new Date(dis.readLong())); assertEquals("java.util.TimeZone", dis.readUTF()); assertEquals(expectedTimeZone, TimeZone.getTimeZone(dis.readUTF())); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testWriteObjectCLDC10ThrowingException() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); try { SerializationManager.writeObjectCLDC10(fos, new Object()); fail("Must throw a FloggyException"); } catch (Exception e) { assertEquals(FloggyException.class, e.getClass()); } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testWriteObjectNotNull() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); Boolean expectedBoolean = Boolean.FALSE; SerializationManager.writeObject(fos, expectedBoolean); Byte expectedByte = new Byte((byte) 34); SerializationManager.writeObject(fos, expectedByte); Character expectedCharacter = new Character('w'); SerializationManager.writeObject(fos, expectedCharacter); Double expectedDouble = new Double(23465d); SerializationManager.writeObject(fos, expectedDouble); Float expectedFloat = new Float(654887f); SerializationManager.writeObject(fos, expectedFloat); Integer expectedInteger = new Integer(987); SerializationManager.writeObject(fos, expectedInteger); Long expectedLong = new Long(34563457); SerializationManager.writeObject(fos, expectedLong); Short expectedShort = new Short((short) 34); SerializationManager.writeObject(fos, expectedShort); String expectedString = "asdkljf"; SerializationManager.writeObject(fos, expectedString); StringBuffer expectedStringBuffer = new StringBuffer("flogggyter"); SerializationManager.writeObject(fos, expectedStringBuffer); Calendar expectedCalendar = Calendar.getInstance(); SerializationManager.writeObject(fos, expectedCalendar); Date expectedDate = new Date(); SerializationManager.writeObject(fos, expectedDate); TimeZone expectedTimeZone = TimeZone.getDefault(); SerializationManager.writeObject(fos, expectedTimeZone); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals("java.lang.Boolean", dis.readUTF()); assertEquals(expectedBoolean, new Boolean(dis.readBoolean())); assertEquals("java.lang.Byte", dis.readUTF()); assertEquals(expectedByte, new Byte(dis.readByte())); assertEquals("java.lang.Character", dis.readUTF()); assertEquals(expectedCharacter, new Character(dis.readChar())); assertEquals("java.lang.Double", dis.readUTF()); assertEquals(expectedDouble, new Double(dis.readDouble())); assertEquals("java.lang.Float", dis.readUTF()); assertEquals(expectedFloat, new Float(dis.readFloat())); assertEquals("java.lang.Integer", dis.readUTF()); assertEquals(expectedInteger, new Integer(dis.readInt())); assertEquals("java.lang.Long", dis.readUTF()); assertEquals(expectedLong, new Long(dis.readLong())); assertEquals("java.lang.Short", dis.readUTF()); assertEquals(expectedShort, new Short(dis.readShort())); assertEquals("java.lang.String", dis.readUTF()); assertEquals(expectedString, dis.readUTF()); assertEquals("java.lang.StringBuffer", dis.readUTF()); assertEquals(expectedStringBuffer.toString(), new StringBuffer(dis.readUTF()).toString()); assertEquals("java.util.Calendar", dis.readUTF()); Calendar actual = Calendar.getInstance(TimeZone.getTimeZone(dis.readUTF())); actual.setTimeInMillis(dis.readLong()); assertEquals(expectedCalendar, actual); assertEquals("java.util.Date", dis.readUTF()); assertEquals(expectedDate, new Date(dis.readLong())); assertEquals("java.util.TimeZone", dis.readUTF()); assertEquals(expectedTimeZone, TimeZone.getTimeZone(dis.readUTF())); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testWriteObjectThrowingException() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); try { SerializationManager.writeObject(fos, new Object()); fail("Must throw a FloggyException"); } catch (Exception e) { assertEquals(FloggyException.class, e.getClass()); } } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWritePersistableNotNull() throws IOException { } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testWritePersistableNull() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); SerializationManager.writePersistable(fos, null, null); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteShortNotNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); Short value = new Short((short) 465); SerializationManager.writeShort(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.shortValue(), dis.readShort()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteShortNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); SerializationManager.writeShort(fos, null); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testWriteStackEmpty() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); Stack value = new Stack(); SerializationManager.writeStack(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.size(), dis.readInt()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testWriteStackNotEmptyNullObjects() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); Stack value = new Stack(); value.push(null); value.push(null); value.push(null); SerializationManager.writeStack(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.size(), dis.readInt()); assertEquals(NULL, dis.readByte()); assertEquals(NULL, dis.readByte()); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteStackNotNull() throws IOException { } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testWriteStackNotNullNotEmptyNotNullObjects() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); Stack value = new Stack(); value.push(null); value.push(null); value.push(null); SerializationManager.writeStack(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.size(), dis.readInt()); assertEquals(NULL, dis.readByte()); assertEquals(NULL, dis.readByte()); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testWriteStackNull() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); SerializationManager.writeStack(fos, null); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteStringBufferNotNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); StringBuffer value = new StringBuffer("floggy"); SerializationManager.writeStringBuffer(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.toString(), dis.readUTF()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteStringBufferNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); SerializationManager.writeStringBuffer(fos, null); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteStringNotNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); String value = "floggy"; SerializationManager.writeString(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value, dis.readUTF()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteStringNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); SerializationManager.writeString(fos, null); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteTimeZoneNotNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); TimeZone value = TimeZone.getDefault(); SerializationManager.writeTimeZone(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.getID(), dis.readUTF()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ public void testWriteTimeZoneNull() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); SerializationManager.writeTimeZone(fos, null); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testWriteVectorEmpty() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); Vector value = new Vector(); SerializationManager.writeVector(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.size(), dis.readInt()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testWriteVectorNotEmptyNullObjects() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); Vector value = new Vector(); value.add(null); value.add(null); value.add(null); SerializationManager.writeVector(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.size(), dis.readInt()); assertEquals(NULL, dis.readByte()); assertEquals(NULL, dis.readByte()); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testWriteVectorNotNullNotEmptyNotNullObjects() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); Vector value = new Vector(); value.add(Boolean.TRUE); value.add(new Byte((byte) 3)); value.add(new Character('q')); SerializationManager.writeVector(fos, value); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NOT_NULL, dis.readByte()); assertEquals(value.size(), dis.readInt()); assertEquals(NOT_NULL, dis.readByte()); assertEquals("java.lang.Boolean", dis.readUTF()); assertEquals(Boolean.TRUE, new Boolean(dis.readBoolean())); assertEquals(NOT_NULL, dis.readByte()); assertEquals("java.lang.Byte", dis.readUTF()); assertEquals(new Byte((byte) 3), new Byte(dis.readByte())); assertEquals(NOT_NULL, dis.readByte()); assertEquals("java.lang.Character", dis.readUTF()); assertEquals(new Character('q'), new Character(dis.readChar())); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public void testWriteVectorNull() throws Exception { FloggyOutputStream fos = new FloggyOutputStream(); SerializationManager.writeVector(fos, null); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); assertEquals(NULL, dis.readByte()); assertEquals(0, dis.available()); } /** * DOCUMENT ME! * * @param fos DOCUMENT ME! * * @return DOCUMENT ME! */ protected DataInput getDataInput(FloggyOutputStream fos) { return new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); } /** * DOCUMENT ME! * * @return DOCUMENT ME! * * @throws IOException DOCUMENT ME! */ protected DataInput getDataInputToNullTestMethods() throws IOException { FloggyOutputStream fos = new FloggyOutputStream(); fos.writeByte(NULL); return new DataInputStream(new ByteArrayInputStream(fos.toByteArray())); } }