From 8ce8917b31d81cea5cdb10d3cb9969dee96a2098 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Thu, 8 Oct 2009 12:40:00 +0200 Subject: [PATCH] ItEr29S10ClasificacionTraballoItEr28S12: Fixing problem checking overlapping when the tasks are included one into the other. --- .../business/resources/entities/Interval.java | 9 +++++---- .../test/resources/entities/IntervalTest.java | 18 +++++++++++++----- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Interval.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Interval.java index fc3871329..8ad32c822 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Interval.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Interval.java @@ -129,10 +129,11 @@ class Range extends Interval { Point point = (Point) interval; return point.overlapsWith(this); } - return contains(interval.start) - || (interval.end != null ? contains(interval.end) - && !interval.end.equals(start) : end - .compareTo(interval.start) > 0); + if (interval instanceof OpenEndedInterval) { + return interval.overlapsWith(this); + } + return interval.start.compareTo(this.end) < 0 + && this.start.compareTo(interval.end) < 0; } @Override diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/entities/IntervalTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/entities/IntervalTest.java index a6e95c002..3b8d5a194 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/entities/IntervalTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/entities/IntervalTest.java @@ -20,17 +20,17 @@ package org.navalplanner.business.test.resources.entities; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.navalplanner.business.test.resources.daos.CriterionSatisfactionDAOTest.year; + import java.util.Date; import org.junit.Test; import org.navalplanner.business.resources.entities.Interval; import org.navalplanner.business.test.resources.daos.CriterionSatisfactionDAOTest; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.navalplanner.business.test.resources.daos.CriterionSatisfactionDAOTest.year; - public class IntervalTest { @Test(expected = IllegalArgumentException.class) @@ -166,4 +166,12 @@ public class IntervalTest { Interval range = Interval.range(year(1990), year(1990)); assertEquals(point, range); } + + @Test + public void testOverlappingWhenContained() { + Interval range = Interval.range(year(1990), year(2000)); + Interval contained = Interval.range(year(1995), year(1997)); + assertTrue(range.overlapsWith(contained)); + assertTrue(contained.overlapsWith(range)); + } }