From ce74fda7187828ad0f2b3ccb873c5d2bb40e50e0 Mon Sep 17 00:00:00 2001
From: Nikolaus Huber <nikolaus.huber@uni-wuerzburg.de>
Date: Mon, 11 Feb 2013 13:51:28 +0000
Subject: [PATCH] refactorings new tests for querying model instances

git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@10220 9e42b895-fcda-4063-8a3b-11be15eb1bbd
---
 .../default.properties                        |  4 ++
 .../adaptation/model/DmmModelManagerTest.java | 28 +++++++++++
 .../util/DmmModelActionHelperTest.java        | 42 ++++++++++++++++
 .../util/OclEvaluationHelperTest.java         | 48 +++++++++++++++++++
 4 files changed, 122 insertions(+)
 create mode 100644 edu.kit.ipd.descartes.adaptation.test/default.properties
 create mode 100644 edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/DmmModelManagerTest.java
 create mode 100644 edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/util/OclEvaluationHelperTest.java

diff --git a/edu.kit.ipd.descartes.adaptation.test/default.properties b/edu.kit.ipd.descartes.adaptation.test/default.properties
new file mode 100644
index 00000000..67e156c6
--- /dev/null
+++ b/edu.kit.ipd.descartes.adaptation.test/default.properties
@@ -0,0 +1,4 @@
+processName=MODELS_FOR_TESTING_PURPOSES
+adaptationProcessModel=/Users/nhuber/Documents/workspace/descartes/metamodel/edu.kit.ipd.descartes.adaptation.test/test_models/StaRepository.xmi
+performanceDataRepositoryModel=/Users/nhuber/Documents/workspace/descartes/metamodel/edu.kit.ipd.descartes.adaptation.test/test_models/PerformanceDataRepositoryDummy.xmi
+maxIterations=2
diff --git a/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/DmmModelManagerTest.java b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/DmmModelManagerTest.java
new file mode 100644
index 00000000..aee525e4
--- /dev/null
+++ b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/DmmModelManagerTest.java
@@ -0,0 +1,28 @@
+package edu.kit.ipd.descartes.adaptation.model;
+
+import static org.junit.Assert.*;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import edu.kit.ipd.descartes.adaptation.AbstractTest;
+import edu.kit.ipd.descartes.adaptation.AdaptationControl;
+import edu.kit.ipd.descartes.mm.resourcelandscape.DistributedDataCenter;
+
+public class DmmModelManagerTest extends AbstractTest {
+
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+        AdaptationControl control = new AdaptationControl();
+        control.init();
+    }
+
+    @Test
+    public void testGetDistributedDataCenter() {
+        DistributedDataCenter ddc = DmmModelManager.getDistributedDataCenter();
+        assertTrue(!ddc.equals(null));
+        assertTrue(ddc.getConsistsOf().size() > 0);
+    }
+
+}
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 d83493f0..69ddc386 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
@@ -1,6 +1,7 @@
 package edu.kit.ipd.descartes.adaptation.util;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import org.eclipse.emf.common.util.BasicEList;
 import org.eclipse.emf.common.util.EList;
@@ -22,6 +23,8 @@ import edu.kit.ipd.descartes.mm.resourceconfiguration.PassiveResourceSpecificati
 import edu.kit.ipd.descartes.mm.resourceconfiguration.ProcessingResourceSpecification;
 import edu.kit.ipd.descartes.mm.resourceconfiguration.ResourceconfigurationFactory;
 import edu.kit.ipd.descartes.mm.resourcelandscape.ComputingInfrastructure;
+import edu.kit.ipd.descartes.mm.resourcelandscape.DataCenter;
+import edu.kit.ipd.descartes.mm.resourcelandscape.DistributedDataCenter;
 import edu.kit.ipd.descartes.mm.resourcelandscape.ResourcelandscapeFactory;
 import edu.kit.ipd.descartes.mm.resourcelandscape.ResourcelandscapePackage;
 import edu.kit.ipd.descartes.mm.resourcelandscape.RuntimeEnvironment;
@@ -39,6 +42,7 @@ public class DmmModelActionHelperTest extends AbstractTest {
     
     @Before
     public void setUp() throws Exception {
+        super.setUp();
         NumberOfParallelProcessingUnits parProcUnits = ResourceconfigurationFactory.eINSTANCE.createNumberOfParallelProcessingUnits();
         ProcessingResourceSpecification cpu = ResourceconfigurationFactory.eINSTANCE.createProcessingResourceSpecification();
         cpu.setNrOfParProcUnits(parProcUnits);
@@ -100,4 +104,42 @@ public class DmmModelActionHelperTest extends AbstractTest {
         assertEquals(null, DmmModelActionHelper.filterCandidates(entityList, comparator));
     }
 
+    @Test
+    public void testQueryUnfilledRuntimeEnvironment() {
+        DistributedDataCenter testDdc = ResourcelandscapeFactory.eINSTANCE.createDistributedDataCenter();
+        DataCenter dc1 = ResourcelandscapeFactory.eINSTANCE.createDataCenter();
+        testDdc.getConsistsOf().add(dc1);
+        ComputingInfrastructure ci1 = ResourcelandscapeFactory.eINSTANCE.createComputingInfrastructure();
+        dc1.getContains().add(ci1);
+        ContainerTemplate template = ContainerrepositoryFactory.eINSTANCE.createContainerTemplate();
+        RuntimeEnvironment re1 = ResourcelandscapeFactory.eINSTANCE.createRuntimeEnvironment();
+        RuntimeEnvironment re2 = ResourcelandscapeFactory.eINSTANCE.createRuntimeEnvironment();
+        ci1.getContains().add(re1);
+        ci1.getContains().add(re2);
+        re1.setTemplate(template);
+        re2.setTemplate(template);
+        re1.setName("RE1");
+        re2.setName("RE2");
+        
+        ActiveResourceSpecification active1 = ResourceconfigurationFactory.eINSTANCE.createActiveResourceSpecification();
+        re1.getConfigSpec().add(active1);
+        ActiveResourceSpecification active2 = ResourceconfigurationFactory.eINSTANCE.createActiveResourceSpecification();
+        re2.getConfigSpec().add(active2);
+        
+        ProcessingResourceSpecification procSpec1 = ResourceconfigurationFactory.eINSTANCE.createProcessingResourceSpecification();
+        NumberOfParallelProcessingUnits nr1 = ResourceconfigurationFactory.eINSTANCE.createNumberOfParallelProcessingUnits();
+        nr1.setNumber(4);
+        procSpec1.setNrOfParProcUnits(nr1);
+        active1.getProcessingResourceSpecifications().add(procSpec1);
+        
+        ProcessingResourceSpecification procSpec2 = ResourceconfigurationFactory.eINSTANCE.createProcessingResourceSpecification();
+        NumberOfParallelProcessingUnits nr2 = ResourceconfigurationFactory.eINSTANCE.createNumberOfParallelProcessingUnits();
+        nr2.setNumber(2);
+        procSpec2.setNrOfParProcUnits(nr2);
+        active2.getProcessingResourceSpecifications().add(procSpec2);
+        
+        RuntimeEnvironment res = DmmModelActionHelper.queryUnfilledRuntimeEnvironment(re1);
+        assertTrue(EcoreUtil.equals(re2, res));
+    }
+
 }
diff --git a/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/util/OclEvaluationHelperTest.java b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/util/OclEvaluationHelperTest.java
new file mode 100644
index 00000000..eaa610be
--- /dev/null
+++ b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/util/OclEvaluationHelperTest.java
@@ -0,0 +1,48 @@
+package edu.kit.ipd.descartes.adaptation.util;
+
+import static org.junit.Assert.assertTrue;
+
+import java.util.Set;
+
+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.mm.resourcelandscape.ComputingInfrastructure;
+import edu.kit.ipd.descartes.mm.resourcelandscape.DataCenter;
+import edu.kit.ipd.descartes.mm.resourcelandscape.DistributedDataCenter;
+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 OclEvaluationHelperTest extends AbstractTest {
+
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+    }
+
+    @Test
+    public void testQueryForRuntimeEnvironments() {
+        DistributedDataCenter testDdc = ResourcelandscapeFactory.eINSTANCE.createDistributedDataCenter();
+        
+        String queryExpression = "RuntimeEnvironment.allInstances()";
+        Set<EObject> res = OclEvaluationHelper.query(testDdc, queryExpression, testDdc.eClass());
+        assertTrue(res.size() == 0);
+        
+        DataCenter dc1 = ResourcelandscapeFactory.eINSTANCE.createDataCenter();
+        testDdc.getConsistsOf().add(dc1);
+        
+        ComputingInfrastructure ci1 = ResourcelandscapeFactory.eINSTANCE.createComputingInfrastructure();
+        dc1.getContains().add(ci1);
+        
+        RuntimeEnvironment re1 = ResourcelandscapeFactory.eINSTANCE.createRuntimeEnvironment();
+        RuntimeEnvironment re2 = ResourcelandscapeFactory.eINSTANCE.createRuntimeEnvironment();
+        ci1.getContains().add(re1);
+        ci1.getContains().add(re2);
+        
+        res = OclEvaluationHelper.query(testDdc, queryExpression, ResourcelandscapePackage.eINSTANCE.getDistributedDataCenter());
+        assertTrue(res.size() == 2);
+    }
+}
-- 
GitLab