/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.components.evaluationmemory.execution.validator; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.HashMap; import java.util.List; import org.junit.Before; import org.junit.Test; import de.rcenvironment.components.evaluationmemory.common.EvaluationMemoryComponentConstants; import de.rcenvironment.core.component.model.endpoint.api.EndpointDefinition; import de.rcenvironment.core.component.model.testutils.ComponentDescriptionMockCreater; import de.rcenvironment.core.component.validation.api.ComponentValidationMessage; import de.rcenvironment.core.datamodel.api.DataType; /** * * Tests the validator of the {@link EvaluationMemoryComponent}. Validator: {@link EvaluationMemoryComponentValidator}. * * @author Jascha Riedel */ public class EvaluationMemoryComponentValidatorTest { private ComponentDescriptionMockCreater componentDescriptionMockCreater; private EvaluationMemoryComponentValidator validator; private List<ComponentValidationMessage> messages; /** Basic setup for the tests. */ @Before public void setUp() { componentDescriptionMockCreater = new ComponentDescriptionMockCreater(); validator = new EvaluationMemoryComponentValidator(); } /** Test validation if file is given before wf start but not set. */ @Test public void testValidationIfFileIsGivenButNotSet() { componentDescriptionMockCreater.addConfigurationValue(EvaluationMemoryComponentConstants.CONFIG_SELECT_AT_WF_START, "false"); addSimulatedInput(); messages = validator.validateComponentSpecific(componentDescriptionMockCreater.createComponentDescriptionMock()); assertEquals(messages.size(), 1); assertEquals(ComponentValidationMessage.Type.ERROR, messages.get(0).getType()); } /** Test validation if file is given before wf start and set. */ @Test public void testValidationIfFileIsGivenAndSet() { componentDescriptionMockCreater.addConfigurationValue(EvaluationMemoryComponentConstants.CONFIG_SELECT_AT_WF_START, "false"); componentDescriptionMockCreater.addConfigurationValue(EvaluationMemoryComponentConstants.CONFIG_MEMORY_FILE, "testFile"); addSimulatedInput(); messages = validator.validateComponentSpecific(componentDescriptionMockCreater.createComponentDescriptionMock()); assertTrue(messages.isEmpty()); } /** Test if no inputs or outputs are defined. */ @Test public void testValidationNoInputsOrOutputs() { componentDescriptionMockCreater.addConfigurationValue(EvaluationMemoryComponentConstants.CONFIG_SELECT_AT_WF_START, "true"); messages = validator.validateComponentSpecific(componentDescriptionMockCreater.createComponentDescriptionMock()); assertEquals(1, messages.size()); assertEquals(ComponentValidationMessage.Type.WARNING, messages.get(0).getType()); } private void addSimulatedInput() { componentDescriptionMockCreater.addSimulatedInput("test", DataType.Float, new HashMap<String, String>(), EndpointDefinition.InputExecutionContraint.Required, false); } }