/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.communication.protocol;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.junit.After;
import org.junit.Test;
import de.rcenvironment.core.communication.common.InstanceNodeSessionId;
import de.rcenvironment.core.communication.common.NodeIdentifierTestUtils;
import de.rcenvironment.core.communication.common.SerializationException;
import de.rcenvironment.core.communication.model.NetworkRequest;
import de.rcenvironment.core.communication.utils.MessageUtils;
/**
* Test case for {@link NetworkRequestFactory}.
*
* @author Robert Mischke
*/
public class NetworkRequestFactoryTest {
private InstanceNodeSessionId senderId = NodeIdentifierTestUtils.createTestInstanceNodeSessionIdWithDisplayName("senderId");
private InstanceNodeSessionId receiverId = NodeIdentifierTestUtils.createTestInstanceNodeSessionIdWithDisplayName("receiverId");;
/**
* Common teardown.
*/
@After
public void teardown() {
NodeIdentifierTestUtils.removeTestNodeIdentifierServiceFromCurrentThread();
}
/**
* Verifies {@link NetworkRequestFactory#createNetworkRequest()}.
*
* @throws SerializationException on unexpected errors
*/
@Test
public void createNetworkRequest() throws SerializationException {
NodeIdentifierTestUtils.attachTestNodeIdentifierServiceToCurrentThread();
validateMessageTypeMetadata(ProtocolConstants.VALUE_MESSAGE_TYPE_RPC);
// TODO test other types, too
}
private void validateMessageTypeMetadata(String messageType) throws SerializationException {
String testString = "test";
byte[] contentBytes = MessageUtils.serializeSafeObject(testString);
NetworkRequest request =
NetworkRequestFactory.createNetworkRequest(contentBytes, messageType, senderId, receiverId);
assertNotNull(request.getRequestId());
assertEquals(NetworkRequest.REQUEST_ID_LENGTH, request.getRequestId().length());
assertEquals(messageType, request.getMessageType());
assertEquals(senderId, request.accessMetaData().getSender());
assertEquals(receiverId, request.accessMetaData().getFinalRecipient());
assertEquals(testString, MessageUtils.deserializeObject(request.getContentBytes()));
}
}