/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.communication.utils;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.io.Serializable;
import org.junit.Test;
import de.rcenvironment.core.communication.common.SerializationException;
import de.rcenvironment.core.communication.model.InitialNodeInformation;
import de.rcenvironment.core.communication.model.impl.InitialNodeInformationImpl;
/**
* {@link MessageUtils} test case.
*
* @author Robert Mischke
*/
public class MessageUtilsTest {
/**
* Tests basic serialization/deserialization.
*
* @throws SerializationException on unexpected errors
*/
@Test
public void basicRoundTrip() throws SerializationException {
// create arbitrary serializable object
InitialNodeInformationImpl testObject = new InitialNodeInformationImpl();
String testValue = "test value";
testObject.setDisplayName(testValue);
// perform round-trip
byte[] serialized = MessageUtils.serializeObject(testObject);
Serializable restored1 = MessageUtils.deserializeObject(serialized);
InitialNodeInformationImpl restored2 = MessageUtils.deserializeObject(serialized, InitialNodeInformationImpl.class);
// verify
assertTrue(restored1 instanceof InitialNodeInformationImpl);
assertEquals(testValue, ((InitialNodeInformation) restored1).getDisplayName());
assertEquals(testValue, restored2.getDisplayName());
}
/**
* Tests proper serialization/deserialization of 'null'.
*
* @throws SerializationException on unexpected errors
*/
@Test
public void nullRoundTrip() throws SerializationException {
byte[] serialized = MessageUtils.serializeObject(null);
Serializable restored1 = MessageUtils.deserializeObject(serialized);
InitialNodeInformationImpl restored2 = MessageUtils.deserializeObject(serialized, InitialNodeInformationImpl.class);
// verify
assertNotNull(serialized);
assertNull(restored1);
assertNull(restored2);
}
/**
* Verifies that null is not accepted as a serialized form. but causes an exception on
* deserialization instead.
*
* @throws SerializationException on unexpected errors
*/
@Test(expected = SerializationException.class)
public void exceptionOnNullDeserialization() throws SerializationException {
MessageUtils.deserializeObject(null);
}
}