package org.ow2.choreos.ee.services.update; import static org.junit.Assert.assertEquals; import java.util.List; import org.junit.Before; import org.junit.Test; import org.ow2.choreos.ee.services.update.DecreaseNumberOfReplicas; import org.ow2.choreos.ee.services.update.IncreaseNumberOfReplicas; import org.ow2.choreos.ee.services.update.Migrate; import org.ow2.choreos.ee.services.update.UpdateAction; import org.ow2.choreos.ee.services.update.UpdateActionFactory; import org.ow2.choreos.nodes.datamodel.MemoryType; import org.ow2.choreos.nodes.datamodel.ResourceImpact; 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 UpdateActionFactoryTest { private ModelsForTest models1 = new ModelsForTest(ServiceType.SOAP, PackageType.COMMAND_LINE, 2); private ModelsForTest models2 = new ModelsForTest(ServiceType.SOAP, PackageType.COMMAND_LINE, 2); @Before public void setUp() throws Exception { } @Test public void shouldReturnIncreaseReplicas() { DeployableService airlineService = models1.getAirlineService(); DeployableServiceSpec newAirlineSpec = models2.getAirlineSpec(); newAirlineSpec.setNumberOfInstances(3); UpdateActionFactory fac = new UpdateActionFactory(); List<UpdateAction> actions = fac.getActions(airlineService, newAirlineSpec); assertEquals(1, actions.size()); UpdateAction action = actions.get(0); assertEquals(IncreaseNumberOfReplicas.class, action.getClass()); } @Test public void shouldReturnDecreaseReplicas() { DeployableService airlineService = models1.getAirlineService(); DeployableServiceSpec newAirlineSpec = models2.getAirlineSpec(); newAirlineSpec.setNumberOfInstances(1); UpdateActionFactory fac = new UpdateActionFactory(); List<UpdateAction> actions = fac.getActions(airlineService, newAirlineSpec); assertEquals(1, actions.size()); UpdateAction action = actions.get(0); assertEquals(DecreaseNumberOfReplicas.class, action.getClass()); } @Test public void shouldReturnMigrate() { DeployableService airlineService = models1.getAirlineService(); DeployableServiceSpec currentAirlineSpec = models1.getAirlineSpec(); ResourceImpact currentImpact = new ResourceImpact(); currentImpact.setMemory(MemoryType.SMALL); currentAirlineSpec.setResourceImpact(currentImpact); DeployableServiceSpec newAirlineSpec = models2.getAirlineSpec(); ResourceImpact newImpact = new ResourceImpact(); newImpact.setMemory(MemoryType.LARGE); newAirlineSpec.setResourceImpact(newImpact); UpdateActionFactory fac = new UpdateActionFactory(); List<UpdateAction> actions = fac.getActions(airlineService, newAirlineSpec); assertEquals(1, actions.size()); UpdateAction action = actions.get(0); assertEquals(Migrate.class, action.getClass()); } }