From b0b0d662dce9de30c12299f5a5d2a610502f6889 Mon Sep 17 00:00:00 2001 From: Oscar Gonzalez Fernandez Date: Tue, 28 May 2013 19:14:55 +0200 Subject: [PATCH] Fix failing test when running mvn install Some test cases in DerivedAllocationGeneratorTest were failing during a mvn install. It might not happen in all systems since it depends on the order the tests are executed. It's also failing if run individually. The problem is that ScenarioBootstrap must be executed before executing these tests. When distributing the resources, the DayAssignments of the resource for the current scenario are queried. An IScenarioManager must have been registered in Registry plus the main scenario initialized. The stack trace is: java.lang.IllegalStateException: loadRequiredData should have been called on org.libreplan.business.scenar ios.bootstrap.ScenariosBootstrap at org.libreplan.business.scenarios.bootstrap.ScenariosBootstrap.getMain(ScenariosBootstrap.java:81) ... at com.sun.proxy.$Proxy42.getMain(Unknown Source) at org.libreplan.business.scenarios.OnlyMainScenarioAwareManager.getCurrent(OnlyMainScenarioAwareManager.java:38) at org.libreplan.business.resources.entities.Resource$UsingScenarioManager.calculateAssignments(Resource.java:185) at org.libreplan.business.resources.entities.Resource$DayAssignmentsState.getAssignments(Resource.java:172) at org.libreplan.business.resources.entities.Resource.getAssignments(Resource.java:886) at org.libreplan.business.resources.entities.Resource.getAssignmentsForDay(Resource.java:153) at org.libreplan.business.resources.entities.Resource.getAssignedDurationDiscounting(Resource.java:861) at org.libreplan.business.planner.entities.AssignedEffortForResource$AssignedEffortDiscounting.getAssignedDurationAt(AssignedEff ortForResource.java:169) at org.libreplan.business.planner.entities.EffortDistributor$ResourceWithDerivedData.withAvailableCapacityOn(EffortDistributor.j ava:232) at org.libreplan.business.planner.entities.EffortDistributor.resourcesFromMoreDesirableToLess(EffortDistributor.java:408) at org.libreplan.business.planner.entities.EffortDistributor.assignAllPossibleWithoutOvertime(EffortDistributor.java:387) at org.libreplan.business.planner.entities.EffortDistributor.distributeForDay_(EffortDistributor.java:356) at org.libreplan.business.planner.entities.EffortDistributor.distributeForDay(EffortDistributor.java:341) at org.libreplan.business.planner.entities.DerivedAllocationGenerator.createAssignments(DerivedAllocationGenerator.java:114) at org.libreplan.business.planner.entities.DerivedAllocationGenerator.generate(DerivedAllocationGenerator.java:68) at org.libreplan.business.test.planner.entities.DerivedAllocationGeneratorTest.forOneResourceTheHoursGeneratedAreGotFromAlpha(De rivedAllocationGeneratorTest.java:205) --- .../DerivedAllocationGeneratorTest.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/libreplan-business/src/test/java/org/libreplan/business/test/planner/entities/DerivedAllocationGeneratorTest.java b/libreplan-business/src/test/java/org/libreplan/business/test/planner/entities/DerivedAllocationGeneratorTest.java index 14a78398f..eb770009c 100644 --- a/libreplan-business/src/test/java/org/libreplan/business/test/planner/entities/DerivedAllocationGeneratorTest.java +++ b/libreplan-business/src/test/java/org/libreplan/business/test/planner/entities/DerivedAllocationGeneratorTest.java @@ -27,6 +27,8 @@ import static org.easymock.classextension.EasyMock.createNiceMock; import static org.easymock.classextension.EasyMock.replay; import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assert.assertThat; +import static org.libreplan.business.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_FILE; +import static org.libreplan.business.test.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_TEST_FILE; import static org.libreplan.business.test.planner.entities.DayAssignmentMatchers.haveHours; import static org.libreplan.business.workingday.EffortDuration.hours; @@ -41,7 +43,9 @@ import java.util.Map; import java.util.Set; import org.joda.time.LocalDate; +import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import org.libreplan.business.planner.entities.DayAssignment; import org.libreplan.business.planner.entities.DerivedAllocation; import org.libreplan.business.planner.entities.DerivedAllocationGenerator; @@ -54,13 +58,28 @@ import org.libreplan.business.resources.entities.MachineWorkerAssignment; import org.libreplan.business.resources.entities.MachineWorkersConfigurationUnit; import org.libreplan.business.resources.entities.Resource; import org.libreplan.business.resources.entities.Worker; +import org.libreplan.business.scenarios.bootstrap.IScenariosBootstrap; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * @author Óscar González Fernández */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(locations = { BUSINESS_SPRING_CONFIG_FILE, + BUSINESS_SPRING_CONFIG_TEST_FILE }) public class DerivedAllocationGeneratorTest { - private Machine machine = null; + @Autowired + private IScenariosBootstrap scenariosBootstrap; + + @Before + public void loadRequiredData() { + scenariosBootstrap.loadRequiredData(); + } + + private final Machine machine = null; private ResourceAllocation derivedFrom; private IWorkerFinder finder;