/**************************************************************************
* Copyright (c) 2001 by Acunia N.V. All rights reserved. *
* *
* This software is copyrighted by and is the sole property of Acunia N.V. *
* and its licensors, if any. All rights, title, ownership, or other *
* interests in the software remain the property of Acunia N.V. and its *
* licensors, if any. *
* *
* This software may only be used in accordance with the corresponding *
* license agreement. Any unauthorized use, duplication, transmission, *
* distribution or disclosure of this software is expressly forbidden. *
* *
* This Copyright notice may not be removed or modified without prior *
* written consent of Acunia N.V. *
* *
* Acunia N.V. reserves the right to modify this software without notice. *
* *
* Acunia N.V. *
* Vanden Tymplestraat 35 info@acunia.com *
* 3000 Leuven http://www.acunia.com *
* Belgium - EUROPE *
**************************************************************************/
package gnu.testlet.Junittests.io;
import java.io.*;
import gnu.testlet.*;
import java.io.*;
public class TEST_ObjectOutputStream_Instanceof extends Mv_Assert {
private SAMPLE_ObjectStream_B root, b;
private Object object;
private byte[] output;
private ObjectInputStream ois;
private ByteArrayInputStream bais;
private ByteArrayOutputStream baos;
private ObjectOutputStream oos;
public TEST_ObjectOutputStream_Instanceof() {
super();
root=SAMPLE_SerialObject.getRootObject();
openOutputStream();
try {
oos.writeObject(root);
oos.flush();
}catch(IOException ioe) {
closeOutputStream();
fail(ioe.toString());
}
output = baos.toByteArray();
closeOutputStream();
openInputStream(output);
try {
object = ois.readObject();
}catch(Exception e) {
fail(e.toString());
}
closeInputStream();
}
public void setUp() {
b=(SAMPLE_ObjectStream_B)object;
}
public void tearDown() {
}
private void closeOutputStream() {
try {
baos.close();
} catch(IOException ioe) {
fail(ioe.toString());
}
}
private void openOutputStream() {
try {
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);
}catch(IOException ioe) {
ioe.printStackTrace();
fail("unexpected io exception occurred while setting up");
}
}
public void closeInputStream() {
try {
bais.close();
}catch(IOException ioe) {
fail("IO Exception while closing input stream");
}
}
private void openInputStream(byte [] data) {
try {
bais=new ByteArrayInputStream(data);
ois=new ObjectInputStream(bais);
}catch(IOException ioe) {
fail("openStream> "+ioe.toString());
return;
}
}
protected void runTest() {
assertTrue("read object not an instance of original",
object instanceof SAMPLE_ObjectStream_B);
assertTrue("read object not an instance of SAMPLE_ObjectStream_B",
b.getLeft() instanceof SAMPLE_ObjectStream_B);
assertTrue("read object not an instance of SAMPLE_ObjectStream_C",
b.getRight() instanceof SAMPLE_ObjectStream_C);
assertTrue("read object not an instance of SAMPLE_ObjectStream_A",
b.getLeft().getLeft() instanceof SAMPLE_ObjectStream_A);
assertTrue("read object not an instance of SAMPLE_ObjectStream_C",
b.getLeft().getRight() instanceof SAMPLE_ObjectStream_C);
}
}