/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.component.workflow.model.api;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import org.easymock.EasyMock;
import de.rcenvironment.core.communication.api.PlatformService;
import de.rcenvironment.core.communication.common.InstanceNodeSessionId;
import de.rcenvironment.core.communication.common.NodeIdentifierTestUtils;
import de.rcenvironment.core.component.api.ComponentUtils;
import de.rcenvironment.core.component.api.DistributedComponentKnowledge;
import de.rcenvironment.core.component.api.DistributedComponentKnowledgeService;
import de.rcenvironment.core.component.model.api.ComponentInstallation;
import de.rcenvironment.core.component.testutils.ComponentDescriptionFactoryServiceDefaultStub;
import de.rcenvironment.core.component.testutils.DistributedComponentKnowledgeServiceDefaultStub;
import de.rcenvironment.core.component.workflow.execution.api.WorkflowFileException;
import junit.framework.Assert;
/**
* Utils class for the workflow tests.
*
* @author Sascha Zur
* @author Robert Mischke (8.0.0 id adaptations)
*/
public final class WorkflowTestUtils {
/** Constant. */
public static final String WFID = "Charles M.";
/** Constant. */
public static final String KEY = "Key";
/** Constant. */
public static final String CD_IDENTIFIER = ComponentUtils.MISSING_COMPONENT_PREFIX + "Dummy";
/** Constant. */
public static final String OUTPUT_NAME = "ah";
/** Constant. */
public static final String NODE2_NAME = "Noch krassere Component";
/** Constant. */
public static final String INPUT_NAME = "86";
/** Constant. */
public static final String PROP_MAP_ID = "trallaaa";
/** Constant. */
public static final String PLACEHOLDERNAME = "${testPlaceholder}";
/** Constant. */
public static final String GLOBAL_PLACEHOLDERNAME = "${global.testPlaceholder2}";
/** Constant. */
public static final String ENCRYPTED_PLACEHOLDERNAME = "${*.testPlaceholder3}";
/**
* Satisfy checkstyle.
*/
@Deprecated
private WorkflowTestUtils() {
}
/**
* Creates a workflow description for testing.
*
* @return dummy wf description
*/
public static WorkflowDescription createWorkflowDescription() {
WorkflowDescription wd = null;
WorkflowDescriptionPersistenceHandlerTestUtils.initializeStaticFieldsOfWorkflowDescriptionPersistenceHandler();
DummyWorkflowDescriptionPersistenceHandler dwph = new DummyWorkflowDescriptionPersistenceHandler();
dwph.bindDistributedComponentKnowledgeService(new DistributedComponentKnowledgeServiceDefaultStub());
dwph.bindComponentDescriptionFactoryService(new ComponentDescriptionFactoryServiceDefaultStub());
try (InputStream is = WorkflowDescription.class.getResourceAsStream("/workflows_unit_test/DummyUnitTest.wf")) {
wd = dwph.readWorkflowDescriptionFromStream(is);
} catch (IOException | WorkflowFileException e) {
Assert.fail(e.toString());
}
return wd;
}
/**
* Dummy class to prevent the persistence handle calling getallComponentDescriptions.
*
* @author Sascha Zur
* @author Robert Mischke (8.0.0 id adaptations)
*/
private static final class DummyWorkflowDescriptionPersistenceHandler extends WorkflowDescriptionPersistenceHandler {
private final InstanceNodeSessionId virtualInstanceId = NodeIdentifierTestUtils
.createTestInstanceNodeSessionIdWithDisplayName("local-node-id");
@Override
protected void bindDistributedComponentKnowledgeService(DistributedComponentKnowledgeService newService) {
DistributedComponentKnowledge knowledge = EasyMock.createNiceMock(DistributedComponentKnowledge.class);
EasyMock.expect(knowledge.getAllInstallations()).andReturn(new ArrayList<ComponentInstallation>()).anyTimes();
EasyMock.replay(knowledge);
componentKnowledgeService = EasyMock.createNiceMock(DistributedComponentKnowledgeService.class);
EasyMock.expect(componentKnowledgeService.getCurrentComponentKnowledge()).andReturn(knowledge).anyTimes();
EasyMock.replay(componentKnowledgeService);
}
@Override
protected void bindPlatformService(PlatformService newService) {
platformService = EasyMock.createNiceMock(PlatformService.class);
EasyMock.expect(platformService.getLocalInstanceNodeSessionId()).andReturn(virtualInstanceId).anyTimes();
EasyMock.replay(platformService);
}
}
}