package org.ow2.choreos.ee.services.update; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; import org.junit.Before; import org.junit.Test; import org.ow2.choreos.ee.services.preparer.PrepareDeploymentFailedException; import org.ow2.choreos.ee.services.preparer.ServiceUndeploymentPreparer; import org.ow2.choreos.ee.services.preparer.ServiceUndeploymentPreparerFactory; import org.ow2.choreos.ee.services.update.DecreaseNumberOfReplicas; import org.ow2.choreos.ee.services.update.UpdateActionFailedException; import org.ow2.choreos.nodes.datamodel.CloudNode; import org.ow2.choreos.services.datamodel.DeployableService; import org.ow2.choreos.services.datamodel.DeployableServiceSpec; import org.ow2.choreos.services.datamodel.PackageType; import org.ow2.choreos.services.datamodel.ServiceType; import org.ow2.choreos.tests.ModelsForTest; public class DecreaseNumberOfReplicasTest { private ServiceUndeploymentPreparer undeploymentPreparer; private CloudNode node; private DeployableService airlineService; @Before public void setUp() throws Exception { setNode(); setPreparer(); setModels(); } private void setNode() { node = new CloudNode(); node.setId("unik"); node.setIp("192.168.56.101"); node.setUser("ubuntu"); node.setPrivateKey("ubuntu.pem"); } private void setPreparer() throws PrepareDeploymentFailedException { undeploymentPreparer = mock(ServiceUndeploymentPreparer.class); ServiceUndeploymentPreparerFactory.preparerForTest = undeploymentPreparer; ServiceUndeploymentPreparerFactory.testing = true; } private void setModels() { ModelsForTest models = new ModelsForTest(ServiceType.SOAP, PackageType.COMMAND_LINE, 3); airlineService = models.getAirlineService(); } @Test public void test() throws UpdateActionFailedException { DeployableServiceSpec newSpec = airlineService.getSpec().clone(); newSpec.setNumberOfInstances(2); DecreaseNumberOfReplicas action = new DecreaseNumberOfReplicas(airlineService, newSpec); action.applyUpdate(); assertEquals(newSpec, airlineService.getSpec()); ServiceUndeploymentPreparerFactory.testing = false; } }