diff --git a/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/AbstractTest.java b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/AbstractTest.java index 7a50084eca6451f32984c16de01d02f86ad02e80..828858b81ea50259496c6b07394cffe891ff2144 100644 --- a/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/AbstractTest.java +++ b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/AbstractTest.java @@ -10,8 +10,10 @@ public abstract class AbstractTest { @Before public void setUp() throws Exception { + BasicConfigurator.resetConfiguration(); BasicConfigurator.configure(); logger.info("Logger configured."); } + } diff --git a/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/util/DmmModelChangerTest.java b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/util/DmmModelChangerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..ff21eca11e4f9eae21ffb4eb5dbb29bae75ff3ef --- /dev/null +++ b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/util/DmmModelChangerTest.java @@ -0,0 +1,112 @@ +package edu.kit.ipd.descartes.adaptation.model.util; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import org.junit.Before; +import org.junit.Test; + +import edu.kit.ipd.descartes.adaptation.AbstractTest; +import edu.kit.ipd.descartes.adaptation.exceptions.OperationNotPerformedException; +import edu.kit.ipd.descartes.mm.adaptation.AdaptationOperation; +import edu.kit.ipd.descartes.mm.adaptationpoints.AdaptationpointsFactory; +import edu.kit.ipd.descartes.mm.adaptationpoints.ModelVariableConfigurationRange; +import edu.kit.ipd.descartes.mm.resourceconfiguration.ActiveResourceSpecification; +import edu.kit.ipd.descartes.mm.resourceconfiguration.NumberOfParallelProcessingUnits; +import edu.kit.ipd.descartes.mm.resourceconfiguration.ProcessingResourceSpecification; +import edu.kit.ipd.descartes.mm.resourceconfiguration.ResourceconfigurationFactory; +import edu.kit.ipd.descartes.mm.resourcelandscape.Container; +import edu.kit.ipd.descartes.mm.resourcelandscape.ResourcelandscapeFactory; +import edu.kit.ipd.descartes.mm.resourcelandscape.RuntimeEnvironment; + +public class DmmModelChangerTest extends AbstractTest { + + private static final String PARENT_CONTAINER = "PARENT_CONTAINER"; + private static final String TEST_RUNTIME_ENV = "TEST_RUNTIME_ENV"; + private static final int MIN = 1; + private static final int MAX = 4; + private static final int DEFAULT = 2; + + RuntimeEnvironment original = null; + NumberOfParallelProcessingUnits adaptableNumberOfCores = null; + ModelVariableConfigurationRange point = null; + + @Before + public void setUp() throws Exception { + super.setUp(); + original = ResourcelandscapeFactory.eINSTANCE.createRuntimeEnvironment(); + original.setName(TEST_RUNTIME_ENV); + + ActiveResourceSpecification spec = ResourceconfigurationFactory.eINSTANCE.createActiveResourceSpecification(); + ProcessingResourceSpecification procSpec = ResourceconfigurationFactory.eINSTANCE.createProcessingResourceSpecification(); + adaptableNumberOfCores = ResourceconfigurationFactory.eINSTANCE.createNumberOfParallelProcessingUnits(); + + adaptableNumberOfCores.setNumber(DEFAULT); + procSpec.setNrOfParProcUnits(adaptableNumberOfCores); + spec.getProcessingResourceSpecifications().add(procSpec); + + original.getConfigSpec().add(spec); + + point = AdaptationpointsFactory.eINSTANCE.createModelVariableConfigurationRange(); + + point.setMinValue(MIN); + point.setMaxValue(MAX); + point.setAdaptableEntity(adaptableNumberOfCores); + } + + @Test(expected=OperationNotPerformedException.class) + public void testScaleModelVariableException() throws OperationNotPerformedException { + assertTrue(adaptableNumberOfCores.getNumber() == DEFAULT); + DmmModelChanger.scaleModelVariable(point, AdaptationOperation.SCALE_UP); + DmmModelChanger.scaleModelVariable(point, AdaptationOperation.SCALE_UP); + DmmModelChanger.scaleModelVariable(point, AdaptationOperation.SCALE_UP); + } + + @Test + public void testScaleModelVariable() throws OperationNotPerformedException { + + DmmModelChanger.scaleModelVariable(point, AdaptationOperation.SCALE_OUT); + assertTrue(adaptableNumberOfCores.getNumber() == DEFAULT); + + DmmModelChanger.scaleModelVariable(point, AdaptationOperation.SCALE_UP); + assertTrue(adaptableNumberOfCores.getNumber() == DEFAULT + 1); + + DmmModelChanger.scaleModelVariable(point, AdaptationOperation.SCALE_UP); + assertTrue(adaptableNumberOfCores.getNumber() == DEFAULT + 2); + + DmmModelChanger.scaleModelVariable(point, AdaptationOperation.SCALE_DOWN); + DmmModelChanger.scaleModelVariable(point, AdaptationOperation.SCALE_DOWN); + DmmModelChanger.scaleModelVariable(point, AdaptationOperation.SCALE_DOWN); + assertTrue(adaptableNumberOfCores.getNumber() == DEFAULT - 1); + + + } + + @Test + public void testScaleInRuntimeEnvironmentInstance() { + fail("Not yet implemented"); + } + + @Test + public void testScaleOutRuntimeEnvironmentInstance() { + Container parent = ResourcelandscapeFactory.eINSTANCE.createComputingInfrastructure(); + + parent.setName(PARENT_CONTAINER); + parent.getContains().add(original); + + RuntimeEnvironment copy = DmmModelChanger.scaleOutRuntimeEnvironmentInstance(original); + + assertFalse(original.getId().equals(copy.getId())); + assertFalse(original.getName().equals(copy.getName())); + assertEquals(original.getName() + DmmModelChanger.COPY_MARK, copy.getName()); + assertEquals(original.getTemplate(), copy.getTemplate()); + + assertTrue(parent.getContains().size() == 2); + + assertEquals(original, parent.getContains().get(0)); + assertEquals(copy, parent.getContains().get(1)); + } + +} diff --git a/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/util/DmmModelActionHelperTest.java b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/util/DmmModelActionHelperTest.java index d8fc8c963a1077ad151d158aaf3f83dc4f7f5c2f..92fde894263f26affe036f675dc068d17523407e 100644 --- a/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/util/DmmModelActionHelperTest.java +++ b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/util/DmmModelActionHelperTest.java @@ -6,6 +6,7 @@ import org.eclipse.emf.ecore.EObject; import org.junit.Before; import org.junit.Test; +import edu.kit.ipd.descartes.adaptation.AbstractTest; import edu.kit.ipd.descartes.core.AdaptableEntity; import edu.kit.ipd.descartes.mm.containerrepository.ContainerTemplate; import edu.kit.ipd.descartes.mm.containerrepository.ContainerrepositoryFactory; @@ -21,7 +22,7 @@ import edu.kit.ipd.descartes.mm.resourcelandscape.ResourcelandscapeFactory; import edu.kit.ipd.descartes.mm.resourcelandscape.ResourcelandscapePackage; import edu.kit.ipd.descartes.mm.resourcelandscape.RuntimeEnvironment; -public class DmmModelActionHelperTest { +public class DmmModelActionHelperTest extends AbstractTest { AdaptableEntity aEntity = null; AdaptableEntity aEntity2 = null; diff --git a/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/weightingfunction/WeightedSumCalculatorTest.java b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/weightingfunction/WeightedSumCalculatorTest.java index 37545cb3d44386fd50ff8094f7e243e4acb68bf1..58bd3ed4b1318d40e3a9a63c8f92d462dcfc008b 100644 --- a/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/weightingfunction/WeightedSumCalculatorTest.java +++ b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/weightingfunction/WeightedSumCalculatorTest.java @@ -24,11 +24,9 @@ public class WeightedSumCalculatorTest extends AbstractTest { WeightedTactic wt = null; WeightingFunction fun = null; - @Before - @Override public void setUp() throws Exception { - super.setUp(); + super.setUp(); MetricType respTime = PerfdatarepoFactory.eINSTANCE.createMetricType(); respTime.setName("Response Time"); MetricType util = PerfdatarepoFactory.eINSTANCE.createMetricType();