diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/workingday/EffortDuration.java b/navalplanner-business/src/main/java/org/navalplanner/business/workingday/EffortDuration.java index e1dee8f27..258bc68d2 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/workingday/EffortDuration.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/workingday/EffortDuration.java @@ -133,6 +133,18 @@ public class EffortDuration implements Comparable { return EffortDuration.seconds(this.seconds * integer); } + /** + * Pluses two {@link EffortDuration}.
+ * Warning: This method can cause an integer overflow and the result + * would be incorrect. + * @param other + * @return a duration that is the sum of this + * {@link EffortDuration} and the other duration + */ + public EffortDuration plus(EffortDuration other) { + return new EffortDuration(seconds + other.seconds); + } + public boolean isZero() { return seconds == 0; } diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/workingday/EffortDurationTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/workingday/EffortDurationTest.java index 831d720b6..b964a916c 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/workingday/EffortDurationTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/workingday/EffortDurationTest.java @@ -134,4 +134,11 @@ public class EffortDurationTest { assertThat(min, equalTo(seconds(10))); } + @Test + public void effortDurationsCanBePlused() { + EffortDuration a = EffortDuration.hours(1).and(30, Granularity.MINUTES); + EffortDuration b = EffortDuration.minutes(30); + assertThat(a.plus(b), equalTo(EffortDuration.hours(2))); + } + }