From edf4960325ab1c0dd6f38991243a9822337afd12 Mon Sep 17 00:00:00 2001 From: Nikolaus Huber <nikolaus.huber@uni-wuerzburg.de> Date: Mon, 4 Feb 2013 11:45:30 +0000 Subject: [PATCH] git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@10111 9e42b895-fcda-4063-8a3b-11be15eb1bbd --- .../descartes/adaptation/AbstractTest.java | 2 + .../model/util/DmmModelChangerTest.java | 112 ++++++++++++++++++ .../util/DmmModelActionHelperTest.java | 3 +- .../WeightedSumCalculatorTest.java | 4 +- 4 files changed, 117 insertions(+), 4 deletions(-) create mode 100644 edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/util/DmmModelChangerTest.java 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 7a50084e..828858b8 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 00000000..ff21eca1 --- /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 d8fc8c96..92fde894 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 37545cb3..58bd3ed4 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(); -- GitLab