From a926da8688997a58dade28da1ccb02a1d2049e21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Mon, 11 Jan 2010 21:33:15 +0100 Subject: [PATCH] ItEr43S09ImplantacionAplicacionItEr42S13: [Bug #230] Fixing bug. Returning at least one hours if the result is any bigger than zero --- .../planner/entities/ResourcesPerDay.java | 10 ++++++++-- .../planner/entities/ResourcesPerDayTest.java | 15 +++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourcesPerDay.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourcesPerDay.java index bc90912ab..8642d046c 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourcesPerDay.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourcesPerDay.java @@ -101,8 +101,14 @@ public class ResourcesPerDay { public int asHoursGivenResourceWorkingDayOf( Integer resourceWorkingDayHours) { - return getAmount().multiply(new BigDecimal(resourceWorkingDayHours)) - .setScale(0, RoundingMode.HALF_UP).intValue(); + BigDecimal multiply = getAmount().multiply( + new BigDecimal(resourceWorkingDayHours)); + if(multiply.compareTo(BigDecimal.ZERO)>0){ + return Math.max(1, multiply.setScale(0, RoundingMode.HALF_UP) + .intValue()); + } else { + return 0; + } } @Override diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/entities/ResourcesPerDayTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/entities/ResourcesPerDayTest.java index 9c0987c39..f9de3fbc3 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/entities/ResourcesPerDayTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/entities/ResourcesPerDayTest.java @@ -128,6 +128,21 @@ public class ResourcesPerDayTest { assertEquals(a, b); } + @Test + public void asHoursMustReturnOneIfAmountIsGreaterThanZero() { + ResourcesPerDay amount = ResourcesPerDay.amount(new BigDecimal(0.05)); + int hours = amount + .asHoursGivenResourceWorkingDayOf(8); + assertThat(hours, equalTo(1)); + } + + @Test + public void ifTheAmountIsZeroMustReturnZero() { + ResourcesPerDay amount = ResourcesPerDay.amount(BigDecimal.ZERO); + int hours = amount.asHoursGivenResourceWorkingDayOf(8); + assertThat(hours, equalTo(0)); + } + @Test public void isZeroIfHaveZeroValue() { BigDecimal[] examples = { new BigDecimal(0.0001), new BigDecimal(0),