From 54a99fce3c96fac72e21268cfaa2ea98c03ae1d2 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Fri, 21 Aug 2009 11:21:03 +0200 Subject: [PATCH] ItEr22S08CUAltaCalendarioLaboralItEr21S10: Making public the method to create a copy of a calendar. --- .../calendars/entities/BaseCalendar.java | 11 ++++++----- .../calendars/entities/BaseCalendarTest.java | 16 +++++++++++++++- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/BaseCalendar.java b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/BaseCalendar.java index ef95ef547..a9a5ba91a 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/BaseCalendar.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/BaseCalendar.java @@ -440,7 +440,7 @@ public class BaseCalendar extends BaseEntity implements IValidable { nextCalendar.newVersion(date); } - BaseCalendar nextCalendar = copy(); + BaseCalendar nextCalendar = newCopy(); this.expiringDate = date; @@ -450,15 +450,16 @@ public class BaseCalendar extends BaseEntity implements IValidable { return nextCalendar; } - private BaseCalendar copy() { + public BaseCalendar newCopy() { + if (nextCalendar != null) { + nextCalendar.newCopy(); + } + BaseCalendar copy = create(); copy.name = this.name; - copy.hoursPerDay = new HashMap(this.hoursPerDay); - copy.exceptions = new HashSet(this.exceptions); - copy.parent = this.parent; return copy; diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/calendars/entities/BaseCalendarTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/calendars/entities/BaseCalendarTest.java index ac0f5a6e9..825bb383d 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/calendars/entities/BaseCalendarTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/calendars/entities/BaseCalendarTest.java @@ -503,11 +503,25 @@ public class BaseCalendarTest { @Test public void testSetParentInACalendarWithoutParent() { BaseCalendar calendar = createBasicCalendar(); - BaseCalendar parent = createBasicCalendar(); + BaseCalendar parent = createChristmasCalendar(); calendar.setParent(parent); assertThat(calendar.getParent(), equalTo(parent)); + assertThat(calendar.getWorkableHours(CHRISTMAS_DAY_LOCAL_DATE), + equalTo(0)); + } + + @Test + public void testNewCopy() { + BaseCalendar calendar = createChristmasCalendar(); + BaseCalendar derived = calendar.newDerivedCalendar(); + BaseCalendar copy = derived.newCopy(); + + assertThat(copy.getWorkableHours(CHRISTMAS_DAY_LOCAL_DATE), equalTo(0)); + assertThat(copy.getParent(), equalTo(calendar)); + assertThat(copy.getNextCalendar(), nullValue()); + assertThat(copy.getPreviousCalendar(), nullValue()); } }