package com.b2msolutions.reyna; import com.b2msolutions.reyna.system.Header; import com.b2msolutions.reyna.system.Message; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import java.io.*; import java.net.URI; import java.net.URISyntaxException; import static org.junit.Assert.*; @RunWith(RobolectricTestRunner.class) public class SerializationTest { @Test public void whenSerializingMessagesShouldDeSerializeCorrectly() throws IOException, ClassNotFoundException, URISyntaxException { Message message = new Message(new URI("https://google.com"), "body", new Header[] { new Header("h1", "v1"), new Header("h2", "v2") }); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(baos); oos.writeObject(message); oos.close(); ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bais); Object outputObj = ois.readObject(); assertNotNull(outputObj); Message message2 = (Message)outputObj; assertNull(message2.getId()); assertEquals("https://google.com", message2.getUrl()); assertEquals("body", message2.getBody()); assertEquals(2, message2.getHeaders().length); assertEquals("h1", message2.getHeaders()[0].getKey()); assertEquals("v1", message2.getHeaders()[0].getValue()); assertEquals("h2", message2.getHeaders()[1].getKey()); assertEquals("v2", message2.getHeaders()[1].getValue()); } }