From d53a64f2bcfa48c205c78c0450f352c1ed7b175f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Mon, 28 Dec 2009 17:19:45 +0100 Subject: [PATCH] ItEr41S09RFSoporteRecursosVirtuaisItEr40S12: Using toHours method --- .../planner/entities/ResourceAllocation.java | 11 ++--- .../SpecificResourceAllocationTest.java | 46 +++++++++++++------ 2 files changed, 38 insertions(+), 19 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourceAllocation.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourceAllocation.java index 876d0423c..4af9f1dab 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourceAllocation.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourceAllocation.java @@ -450,8 +450,7 @@ public abstract class ResourceAllocation extends final int calculateTotalToDistribute(LocalDate day, ResourcesPerDay resourcesPerDay) { - Integer workableHours = getWorkHoursPerDay().getCapacityAt(day); - return resourcesPerDay.asHoursGivenResourceWorkingDayOf(workableHours); + return getWorkHoursPerDay().toHours(day, resourcesPerDay); } private ResourcesPerDay calculateResourcesPerDayFromAssignments() { @@ -459,16 +458,16 @@ public abstract class ResourceAllocation extends .byDay(getAssignments()); int sumTotalHours = 0; int sumWorkableHours = 0; + final ResourcesPerDay one = ResourcesPerDay.amount(1); for (Entry> entry : byDay.entrySet()) { - sumWorkableHours += getWorkHoursPerDay().getCapacityAt( - entry.getKey()); + sumWorkableHours += getWorkHoursPerDay().toHours(entry.getKey(), + one); sumTotalHours += getAssignedHours(entry.getValue()); } if (sumWorkableHours == 0) { return ResourcesPerDay.amount(0); } - return ResourcesPerDay.calculateFrom( - sumTotalHours, sumWorkableHours); + return ResourcesPerDay.calculateFrom(sumTotalHours, sumWorkableHours); } private IWorkHours getWorkHoursPerDay() { diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/entities/SpecificResourceAllocationTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/entities/SpecificResourceAllocationTest.java index c60f6ebfa..b10026c84 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/entities/SpecificResourceAllocationTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/entities/SpecificResourceAllocationTest.java @@ -65,15 +65,30 @@ public class SpecificResourceAllocationTest { this.assignedHours = assignedHours; } - private void givenResourceCalendarAlwaysReturning(int hours) { + private void givenResourceCalendarAlwaysReturning(final int hours) { this.calendar = createNiceMock(ResourceCalendar.class); expect(this.calendar.getCapacityAt(isA(LocalDate.class))).andReturn( hours).anyTimes(); expect(this.calendar.getWorkableHours(isA(Date.class))) .andReturn(hours).anyTimes(); + expect(this.calendar.toHours(isA(LocalDate.class), + isA(ResourcesPerDay.class))).andAnswer( + toHoursAnswer(hours)).anyTimes(); replay(this.calendar); } + private IAnswer toHoursAnswer(final int hours) { + return new IAnswer() { + + @Override + public Integer answer() throws Throwable { + ResourcesPerDay perDay = (ResourcesPerDay) EasyMock + .getCurrentArguments()[1]; + return perDay.asHoursGivenResourceWorkingDayOf(hours); + } + }; + } + private void givenResourceCalendar(final int defaultAnswer, final Map answersForDates){ this.calendar = createNiceMock(ResourceCalendar.class); expect(this.calendar.getCapacityAt(isA(LocalDate.class))).andAnswer(new IAnswer() { @@ -87,19 +102,24 @@ public class SpecificResourceAllocationTest { return defaultAnswer; } }).anyTimes(); - expect(this.calendar.getWorkableHours(isA(Date.class))) - .andAnswer(new IAnswer() { + expect( + this.calendar.toHours(isA(LocalDate.class), + isA(ResourcesPerDay.class))).andAnswer( + new IAnswer() { - @Override - public Integer answer() throws Throwable { - Date date = (Date) EasyMock.getCurrentArguments()[0]; - LocalDate localDate = new LocalDate(date.getTime()); - if(answersForDates.containsKey(localDate)){ - return answersForDates.get(localDate); - } - return defaultAnswer; - } - }).anyTimes(); + @Override + public Integer answer() throws Throwable { + LocalDate date = (LocalDate) EasyMock + .getCurrentArguments()[0]; + int hours; + if (answersForDates.containsKey(date)) { + hours = answersForDates.get(date); + } else { + hours = defaultAnswer; + } + return toHoursAnswer(hours).answer(); + } + }).anyTimes(); replay(this.calendar); }