/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.component.execution.internal;
import static org.junit.Assert.assertEquals;
import java.util.LinkedList;
import java.util.Queue;
import org.junit.Test;
import de.rcenvironment.core.component.execution.api.WorkflowGraphHop;
/**
* Tests serialization of {@link InternalTDImpl}.
*
* @author Doreen Seider
*/
public class InternalTDImplTest {
/**
* Test.
*/
@Test
public void testDeSerializationInternalTD() {
InternalTDImpl.InternalTDType type = InternalTDImpl.InternalTDType.WorkflowFinish;
InternalTDImpl internalTD = new InternalTDImpl(type);
InternalTDImpl deSerializedInternal = InternalTDImpl.fromString(internalTD.serialize());
assertEquals(internalTD.getType(), deSerializedInternal.getType());
assertEquals(internalTD.getIdentifier(), deSerializedInternal.getIdentifier());
assertEquals(internalTD.getHopsToTraverse(), deSerializedInternal.getHopsToTraverse());
type = InternalTDImpl.InternalTDType.NestedLoopReset;
WorkflowGraphHop graphHop1 = new WorkflowGraphHop("hopExeId1", "hopOutputName1", "targetExeId1", "targetInputName1");
WorkflowGraphHop graphHop2 = new WorkflowGraphHop("hopExeId2", "hopOutputName2", "targetExeId2", "targetInputName2");
Queue<WorkflowGraphHop> graphHops = new LinkedList<>();
graphHops.add(graphHop1);
graphHops.add(graphHop2);
internalTD = new InternalTDImpl(type, graphHops);
deSerializedInternal = InternalTDImpl.fromString(internalTD.serialize());
assertEquals(internalTD.getType(), deSerializedInternal.getType());
assertEquals(internalTD.getIdentifier(), deSerializedInternal.getIdentifier());
WorkflowGraphHop deSerializedGraphHop1 = deSerializedInternal.getHopsToTraverse().poll();
assertEquals(graphHop1.getHopExecutionIdentifier(), deSerializedGraphHop1.getHopExecutionIdentifier());
assertEquals(graphHop1.getHopOuputName(), deSerializedGraphHop1.getHopOuputName());
assertEquals(graphHop1.getTargetExecutionIdentifier(), deSerializedGraphHop1.getTargetExecutionIdentifier());
assertEquals(graphHop1.getTargetInputName(), deSerializedGraphHop1.getTargetInputName());
WorkflowGraphHop deSerializedGraphHop2 = deSerializedInternal.getHopsToTraverse().poll();
assertEquals(graphHop2.getHopExecutionIdentifier(), deSerializedGraphHop2.getHopExecutionIdentifier());
assertEquals(graphHop2.getHopOuputName(), deSerializedGraphHop2.getHopOuputName());
assertEquals(graphHop2.getTargetExecutionIdentifier(), deSerializedGraphHop2.getTargetExecutionIdentifier());
assertEquals(graphHop2.getTargetInputName(), deSerializedGraphHop2.getTargetInputName());
}
}