From f3e582a32d3c9fceb494b676e32539b86c9946bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Thu, 8 Oct 2009 23:19:05 +0200 Subject: [PATCH] ItEr29S06CUAsignacionGrupoRecursosAPlanificacionItEr28S06: Can allocate hours on interval using previous resources --- .../entities/GenericResourceAllocation.java | 4 ++++ .../planner/entities/ShareDivision.java | 2 +- .../GenericResourceAllocationTest.java | 24 +++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/GenericResourceAllocation.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/GenericResourceAllocation.java index a5d30a664..5614c6631 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/GenericResourceAllocation.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/GenericResourceAllocation.java @@ -257,4 +257,8 @@ public class GenericResourceAllocation extends return new ArrayList(resources); } + public IAllocatable withPreviousAssociatedResources() { + return forResources(getAssociatedResources()); + } + } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ShareDivision.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ShareDivision.java index ef8a9a51a..e14d439e6 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ShareDivision.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ShareDivision.java @@ -113,7 +113,7 @@ public class ShareDivision { remainderIncrease = remainderIncrease - bucket.getIncreaseDone(); assert remainderIncrease >= 0; } - assert remainderIncrease == 0 : "all is assigned"; + assert remainderIncrease == 0 || shares.isEmpty() : "all is assigned"; return ShareDivision.create(fromWrappers(wrapped)); } diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/entities/GenericResourceAllocationTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/entities/GenericResourceAllocationTest.java index 8b734ee04..a96ca2111 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/entities/GenericResourceAllocationTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/entities/GenericResourceAllocationTest.java @@ -359,4 +359,28 @@ public class GenericResourceAllocationTest { return new HashSet(associatedResources); } + @Test + public void canAllocateHoursOnIntervalUsingPreviousResources() { + final int workableHoursDay = 8; + givenBaseCalendarWithoutExceptions(workableHoursDay); + LocalDate start = new LocalDate(2006, 10, 5); + final int days = 4; + givenTaskWithStartAndEnd(toInterval(start, Period.days(days))); + givenGenericResourceAllocationForTask(task); + givenWorkersWithLoads(3, 12, 1); + + genericResourceAllocation.forResources(workers).allocate( + ResourcesPerDay.amount(1)); + + final int hoursOnSubinterval = 3; + int daysSubinterval = 2; + genericResourceAllocation.withPreviousAssociatedResources().onInterval( + start, + start.plusDays(daysSubinterval)).allocateHours( + hoursOnSubinterval); + assertThat(genericResourceAllocation.getAssignedHours(), + equalTo(hoursOnSubinterval + (days - daysSubinterval) + * workableHoursDay)); + } + }