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