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 69ddc38661c2db974a195745237bf1168732771a..ccd7f694a4dc76ac0a3695cfe6f69963653fc4dc 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 @@ -3,6 +3,8 @@ package edu.kit.ipd.descartes.adaptation.util; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import java.util.List; + import org.eclipse.emf.common.util.BasicEList; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; @@ -23,6 +25,7 @@ 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.Container; import edu.kit.ipd.descartes.mm.resourcelandscape.DataCenter; import edu.kit.ipd.descartes.mm.resourcelandscape.DistributedDataCenter; import edu.kit.ipd.descartes.mm.resourcelandscape.ResourcelandscapeFactory; @@ -75,6 +78,10 @@ public class DmmModelActionHelperTest extends AbstractTest { @Test public void testFilterEntities() { + Container c1 = ResourcelandscapeFactory.eINSTANCE.createComputingInfrastructure(); + Container c2 = ResourcelandscapeFactory.eINSTANCE.createComputingInfrastructure(); + + RuntimeEnvironment re1 = ResourcelandscapeFactory.eINSTANCE.createRuntimeEnvironment(); re1.setName(CANDIDATE + DmmModelChanger.COPY_MARK); re1.setId(EcoreUtil.generateUUID()); @@ -86,6 +93,10 @@ public class DmmModelActionHelperTest extends AbstractTest { re3.setId(EcoreUtil.generateUUID()); re3.setTemplate(template); + re1.setContainedIn(c1); + re2.setContainedIn(c1); + re3.setContainedIn(c2); + EList<RuntimeEnvironment> entityList = new BasicEList<RuntimeEnvironment>(); entityList.add(re1); entityList.add(re2); @@ -96,12 +107,13 @@ public class DmmModelActionHelperTest extends AbstractTest { comparator.setId(EcoreUtil.generateUUID()); comparator.getConfigSpec().add(aSpec); comparator.setTemplate(template); + comparator.setContainedIn(c2); - RuntimeEnvironment result = DmmModelActionHelper.filterCandidates(entityList, comparator); + RuntimeEnvironment result = DmmModelActionHelper.filterCopiedRuntimeEnvironment(entityList, comparator); assertEquals(re3, result); entityList.remove(re3); - assertEquals(null, DmmModelActionHelper.filterCandidates(entityList, comparator)); + assertEquals(null, DmmModelActionHelper.filterCopiedRuntimeEnvironment(entityList, comparator)); } @Test @@ -141,5 +153,52 @@ public class DmmModelActionHelperTest extends AbstractTest { RuntimeEnvironment res = DmmModelActionHelper.queryUnfilledRuntimeEnvironment(re1); assertTrue(EcoreUtil.equals(re2, res)); } + + @Test + public void testQueryContainersWithSimilarSpecs() { + DistributedDataCenter testDdc = ResourcelandscapeFactory.eINSTANCE.createDistributedDataCenter(); + DataCenter dc1 = ResourcelandscapeFactory.eINSTANCE.createDataCenter(); + testDdc.getConsistsOf().add(dc1); + ComputingInfrastructure ci1 = ResourcelandscapeFactory.eINSTANCE.createComputingInfrastructure(); + ComputingInfrastructure ci2 = ResourcelandscapeFactory.eINSTANCE.createComputingInfrastructure(); + dc1.getContains().add(ci1); + dc1.getContains().add(ci2); + ContainerTemplate template = ContainerrepositoryFactory.eINSTANCE.createContainerTemplate(); + RuntimeEnvironment re1 = ResourcelandscapeFactory.eINSTANCE.createRuntimeEnvironment(); + RuntimeEnvironment re2 = ResourcelandscapeFactory.eINSTANCE.createRuntimeEnvironment(); + RuntimeEnvironment re3 = ResourcelandscapeFactory.eINSTANCE.createRuntimeEnvironment(); + ci1.getContains().add(re1); + ci1.getContains().add(re2); + ci2.getContains().add(re3); + re1.setTemplate(template); + re2.setTemplate(template); + re3.setTemplate(template); + re1.setName("RE1"); + re2.setName("RE2"); + re3.setName("RE3" + DmmModelChanger.COPY_MARK); + + ActiveResourceSpecification active1 = ResourceconfigurationFactory.eINSTANCE.createActiveResourceSpecification(); + ActiveResourceSpecification active2 = ResourceconfigurationFactory.eINSTANCE.createActiveResourceSpecification(); + + 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); + + re1.getConfigSpec().add(active1); + re2.getConfigSpec().add(active2); + re3.getConfigSpec().add(EcoreUtil.copy(active1)); + + List<Container> result = DmmModelActionHelper.queryContainersWithSimilarSpecs(re1); + assertEquals(1, result.size()); + assertTrue( ! result.contains(re2)); + } }