diff --git a/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/dmm/util/OclEvaluationHelperTest.java b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/dmm/util/OclEvaluationHelperTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..1ea176d9c0e9c46c023e07537923eb512ea1e312
--- /dev/null
+++ b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/dmm/util/OclEvaluationHelperTest.java
@@ -0,0 +1,49 @@
+package edu.kit.ipd.descartes.adaptation.model.dmm.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.adaptation.model.dmm.util.OclEvaluationHelper;
+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);
+    }
+}
diff --git a/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/dmm/util/PerfDataRepoHelperTest.java b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/dmm/util/PerfDataRepoHelperTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..29b5c85e7f945b9d2ad85c7a3d41d5f43fe1f982
--- /dev/null
+++ b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/dmm/util/PerfDataRepoHelperTest.java
@@ -0,0 +1,34 @@
+package edu.kit.ipd.descartes.adaptation.model.dmm.util;
+
+import static org.junit.Assert.*;
+
+import org.eclipse.emf.common.util.URI;
+import org.junit.Before;
+import org.junit.Test;
+
+import edu.kit.ipd.descartes.adaptation.model.dmm.PerformanceDataRepositoryModelManager;
+import edu.kit.ipd.descartes.adaptation.model.dmm.util.PerfDataRepoHelper;
+import edu.kit.ipd.descartes.perfdatarepo.Impact;
+import edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository;
+
+public class PerfDataRepoHelperTest {
+	
+	private static final String PERF_DATA_REPO_XMI_FILE = "./test_models/PerformanceDataRepositoryDummy.xmi";
+	PerformanceDataRepository perfDataRepo;
+	
+	@Before
+	public void setUp() throws Exception {
+		
+		PerformanceDataRepositoryModelManager repoManager = PerformanceDataRepositoryModelManager.getInstance();
+		perfDataRepo = (PerformanceDataRepository) repoManager.load(URI
+				.createFileURI(PERF_DATA_REPO_XMI_FILE));
+	}
+
+	@Test
+	public void testGetLatestImpact() {
+		int historySize = perfDataRepo.getImpactHistory().size();
+		Impact mostRecent = perfDataRepo.getImpactHistory().get(historySize - 1);
+		assertEquals(mostRecent, PerfDataRepoHelper.getLatestImpact(perfDataRepo));
+	}
+
+}
diff --git a/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/dmm/util/WeightingFunctionHelperTest.java b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/dmm/util/WeightingFunctionHelperTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..ff20d1cb824b0f59ef9c22ef08b0549ec57dd202
--- /dev/null
+++ b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/dmm/util/WeightingFunctionHelperTest.java
@@ -0,0 +1,87 @@
+package edu.kit.ipd.descartes.adaptation.model.dmm.util;
+
+import static org.junit.Assert.assertEquals;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.junit.Before;
+import org.junit.Test;
+
+import edu.kit.ipd.descartes.adaptation.model.dmm.PerformanceDataRepositoryModelManager;
+import edu.kit.ipd.descartes.adaptation.model.dmm.util.WeightingFunctionHelper;
+import edu.kit.ipd.descartes.mm.adaptation.AdaptationFactory;
+import edu.kit.ipd.descartes.mm.adaptation.WeightedMetric;
+import edu.kit.ipd.descartes.mm.adaptation.WeightingFunction;
+import edu.kit.ipd.descartes.perfdatarepo.Impact;
+import edu.kit.ipd.descartes.perfdatarepo.MetricType;
+import edu.kit.ipd.descartes.perfdatarepo.PerfdatarepoFactory;
+import edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository;
+import edu.kit.ipd.descartes.perfdatarepo.Result;
+
+public class WeightingFunctionHelperTest {
+
+    private static final String PERF_DATA_REPO_XMI_FILE = "./test_models/PerformanceDataRepositoryDummy.xmi";
+    private static final double UTIL_WEIGHT = 2.0d;
+
+    private PerformanceDataRepositoryModelManager perfDataModelManager = PerformanceDataRepositoryModelManager.getInstance();
+    private PerformanceDataRepository perfDataRepo = null;
+    private WeightingFunction function = null;
+
+    private enum METRIC_TYPES {
+        UTILIZATION, RESPONSE_TIME;
+    }
+
+    private MetricType getTypeHelper(METRIC_TYPES mType) {
+        EList<MetricType> types = perfDataRepo.getMetricTypes();
+        switch (mType) {
+        case UTILIZATION:
+            return types.get(0);
+        case RESPONSE_TIME:
+            return types.get(1);
+        default:
+            return null;
+        }
+    }
+
+    @Before
+    public void setUp() throws Exception {
+        perfDataRepo = (PerformanceDataRepository) perfDataModelManager.load(URI.createFileURI(PERF_DATA_REPO_XMI_FILE));
+        MetricType metricType = getTypeHelper(METRIC_TYPES.UTILIZATION);
+
+        function = AdaptationFactory.eINSTANCE.createWeightingFunction();
+        WeightedMetric wUtil = AdaptationFactory.eINSTANCE.createWeightedMetric();
+        wUtil.setId("1");
+        wUtil.setName("UtilizationMetricWeight");
+        wUtil.setWeight(UTIL_WEIGHT);
+        wUtil.setMetricType(metricType);
+        function.getWeightedMetrics().add(wUtil);
+    }
+
+    @Test
+    public void testGetWeightForMetricType() {
+        double weight = 0.0;
+        MetricType metricType = getTypeHelper(METRIC_TYPES.RESPONSE_TIME);
+        weight = WeightingFunctionHelper.getWeightForMetricType(function, metricType);
+        assertEquals(Double.NaN, weight, 0.0);
+
+        metricType = getTypeHelper(METRIC_TYPES.UTILIZATION);
+        weight = WeightingFunctionHelper.getWeightForMetricType(function, metricType);
+        assertEquals(UTIL_WEIGHT, weight, 0.0);
+    }
+
+    @Test
+    public void testGetValueForMetricType() {
+        double testValue = 0;
+        MetricType metricType = getTypeHelper(METRIC_TYPES.UTILIZATION);
+
+        Result emptyResult = PerfdatarepoFactory.eINSTANCE.createResult();
+        testValue = WeightingFunctionHelper.getValueForMetricType(metricType, emptyResult);
+        assertEquals(Double.NaN, testValue, 0);
+
+        Impact impact = perfDataRepo.getImpactHistory().get(0);
+        Result before = impact.getBefore();
+        testValue = WeightingFunctionHelper.getValueForMetricType(metricType, before);
+        assertEquals(0.4, testValue, 0);
+    }
+
+}