diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/AvailabilityTimeLine.java b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/AvailabilityTimeLine.java index ad3d88f86..51f52253f 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/AvailabilityTimeLine.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/AvailabilityTimeLine.java @@ -222,6 +222,10 @@ public class AvailabilityTimeLine { end)); } + static Interval all() { + return new Interval(StartOfTime.create(), EndOfTime.create()); + } + static Interval from(LocalDate date) { return new Interval(new FixedPoint(date), EndOfTime.create()); } @@ -281,7 +285,6 @@ public class AvailabilityTimeLine { private DatePoint max(DatePoint... values) { return (DatePoint) Collections.max(Arrays.asList(values)); } - } public static AvailabilityTimeLine allValid() { @@ -313,6 +316,10 @@ public class AvailabilityTimeLine { } } + public void allInvalid() { + insert(Interval.all()); + } + public void invalidAt(LocalDate date) { Interval point = Interval.point(date); insert(point); diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/calendars/entities/AvailabilityTimeLineTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/calendars/entities/AvailabilityTimeLineTest.java index 084428440..59ea6e1d3 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/calendars/entities/AvailabilityTimeLineTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/calendars/entities/AvailabilityTimeLineTest.java @@ -160,6 +160,25 @@ public class AvailabilityTimeLineTest { assertTrue(timeLine.isValid(contemporaryExample.minusDays(1))); } + @Test + public void addingAllInvalidMakesAllInvalid() { + AvailabilityTimeLine timeLine = AvailabilityTimeLine.allValid(); + timeLine.invalidFrom(contemporaryExample); + timeLine.invalidUntil(contemporaryExample.minusDays(10)); + + assertFalse(timeLine.isValid(earlyExample)); + assertTrue(timeLine.isValid(contemporaryExample.minusDays(10))); + + assertFalse(timeLine.isValid(contemporaryExample)); + assertFalse(timeLine.isValid(lateExample)); + + timeLine.allInvalid(); + assertFalse(timeLine.isValid(earlyExample)); + assertFalse(timeLine.isValid(contemporaryExample.minusDays(10))); + assertFalse(timeLine.isValid(contemporaryExample)); + assertFalse(timeLine.isValid(lateExample)); + } + @Test public void addingSeveralTypesOfIntervals() { AvailabilityTimeLine timeLine = AvailabilityTimeLine.allValid(); @@ -202,5 +221,4 @@ public class AvailabilityTimeLineTest { current = current.plusDays(1); } } - }