blob: 77cb2b0b84c8e990ef49340a364d5cc69338b888 [file] [log] [blame]
package org.apache.ode.bpel.o;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.reflect.Field;
import static org.junit.Assert.*;
import org.junit.Test;
public class SerializerTest {
@Test
public void testOnMessageBackwardCompatibility() throws Exception {
OPickReceive.OnMessage onMessage = new OPickReceive.OnMessage(null);
// had a value in matchCorrelation variable
OScope.CorrelationSet cset1 = new OScope.CorrelationSet(null);
cset1.name = "cset1";
Field matchCorrelationField = OPickReceive.OnMessage.class.getDeclaredField("matchCorrelation");
matchCorrelationField.setAccessible(true);
matchCorrelationField.set(onMessage, cset1);
// joinCorrelations variable was not defined
Field joinCorrelationsField = OPickReceive.OnMessage.class.getDeclaredField("joinCorrelations");
joinCorrelationsField.setAccessible(true);
joinCorrelationsField.set(onMessage, null);
// had a value in joinCorrelation variable
OScope.CorrelationSet cset2 = new OScope.CorrelationSet(null);
cset2.name = "cset2";
Field joinCorrelationField = OPickReceive.OnMessage.class.getDeclaredField("joinCorrelation");
joinCorrelationField.setAccessible(true);
joinCorrelationField.set(onMessage, cset2);
ObjectOutputStream os = null;
ObjectInputStream is = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
os = new ObjectOutputStream(baos);
os.writeObject(onMessage);
is = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
onMessage = (OPickReceive.OnMessage)is.readObject();
assertEquals("The value in 'matchCorrelation' member should've been transferred to 'matchCorrelations'",
"cset1", onMessage.matchCorrelations.get(0).name);
assertNotNull("'joinCorrelations' member cannot be null", onMessage.joinCorrelations);
assertEquals("The value in 'joinCorrelation' member should've been transferred to 'joinCorrelations'",
"cset2", onMessage.joinCorrelations.get(0).name);
} finally {
if( os != null ) os.close();
if( is != null ) is.close();
}
}
@Test
public void testOEventBackwardCompatibility() throws Exception {
OEventHandler.OEvent oEvent = new OEventHandler.OEvent(null, null);
OScope.CorrelationSet cset1 = new OScope.CorrelationSet(null);
cset1.name = "cset1";
Field matchCorrelationField = OEventHandler.OEvent.class.getDeclaredField("matchCorrelation");
matchCorrelationField.setAccessible(true);
matchCorrelationField.set(oEvent, cset1);
Field joinCorrelationsField = OEventHandler.OEvent.class.getDeclaredField("joinCorrelations");
joinCorrelationsField.setAccessible(true);
joinCorrelationsField.set(oEvent, null);
OScope.CorrelationSet cset2 = new OScope.CorrelationSet(null);
cset2.name = "cset2";
Field joinCorrelationField = OEventHandler.OEvent.class.getDeclaredField("joinCorrelation");
joinCorrelationField.setAccessible(true);
joinCorrelationField.set(oEvent, cset2);
ObjectOutputStream os = null;
ObjectInputStream is = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
os = new ObjectOutputStream(baos);
os.writeObject(oEvent);
is = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
oEvent = (OEventHandler.OEvent)is.readObject();
assertEquals("The value in 'matchCorrelation' member should've been transferred to 'matchCorrelations'",
"cset1", oEvent.matchCorrelations.get(0).name);
assertNotNull("'joinCorrelations' member cannot be null", oEvent.joinCorrelations);
assertEquals("The value in 'joinCorrelation' member should've been transferred to 'joinCorrelations'",
"cset2", oEvent.joinCorrelations.get(0).name);
} finally {
if( os != null ) os.close();
if( is != null ) is.close();
}
}
@Test
public void testOReplyBackwardCompatibility() throws Exception {
OReply reply = new OReply(null, null);
Field joinCorrelationsField = OReply.class.getDeclaredField("joinCorrelations");
joinCorrelationsField.setAccessible(true);
joinCorrelationsField.set(reply, null);
ObjectOutputStream os = null;
ObjectInputStream is = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
os = new ObjectOutputStream(baos);
os.writeObject(reply);
is = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
reply = (OReply)is.readObject();
assertNotNull("'joinCorrelations' member cannot be null", reply.joinCorrelations);
} finally {
if( os != null ) os.close();
if( is != null ) is.close();
}
}
@Test
public void testOInvokeBackwardCompatibility() throws Exception {
OInvoke invoke = new OInvoke(null, null);
Field joinCorrelationsField = OInvoke.class.getDeclaredField("joinCorrelationsInput");
joinCorrelationsField.setAccessible(true);
joinCorrelationsField.set(invoke, null);
joinCorrelationsField = OInvoke.class.getDeclaredField("joinCorrelationsOutput");
joinCorrelationsField.setAccessible(true);
joinCorrelationsField.set(invoke, null);
ObjectOutputStream os = null;
ObjectInputStream is = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
os = new ObjectOutputStream(baos);
os.writeObject(invoke);
is = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
invoke = (OInvoke)is.readObject();
assertNotNull("'joinCorrelationsInput' member cannot be null", invoke.joinCorrelationsInput);
assertNotNull("'joinCorrelationsOutput' member cannot be null", invoke.joinCorrelationsOutput);
} finally {
if( os != null ) os.close();
if( is != null ) is.close();
}
}
}