diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/DaysToWorkingDaysConverter.java b/lib/taskana-core/src/main/java/pro/taskana/impl/DaysToWorkingDaysConverter.java index cf259583a..c352fd316 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/DaysToWorkingDaysConverter.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/DaysToWorkingDaysConverter.java @@ -182,7 +182,7 @@ public final class DaysToWorkingDaysConverter { } public long convertWorkingDaysToDays(Instant startTime, long numberOfDays) { - int direction = numberOfDays > 0 ? 1 : -1; + int direction = numberOfDays >= 0 ? 1 : -1; long limit = Math.abs(numberOfDays); return LongStream.iterate(0, i -> i + direction) .filter(day -> isWorkingDay(day, startTime)) @@ -293,12 +293,12 @@ public final class DaysToWorkingDaysConverter { @Override public String toString() { - return "DaysToWorkingDaysConverter [instance= " + instance - + ", positiveDaysToWorkingDays= " + positiveDaysToWorkingDays - + ", negativeDaysToWorkingDays= " + negativeDaysToWorkingDays - + ", dateCreated= " + dateCreated + ", easterSunday= " + easterSunday - + ", germanHolidaysEnabled= " + germanHolidaysEnabled - + ", customHolidays= " + LoggerUtils.setToString(customHolidays) + "]"; + return "DaysToWorkingDaysConverter{" + + "positiveDaysToWorkingDays=" + positiveDaysToWorkingDays + + ", negativeDaysToWorkingDays=" + negativeDaysToWorkingDays + + ", dateCreated=" + dateCreated + + ", easterSunday=" + easterSunday + + '}'; } /** diff --git a/lib/taskana-core/src/test/java/acceptance/task/CreateTaskAccTest.java b/lib/taskana-core/src/test/java/acceptance/task/CreateTaskAccTest.java index 4a1b05709..0e2fe172d 100644 --- a/lib/taskana-core/src/test/java/acceptance/task/CreateTaskAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/task/CreateTaskAccTest.java @@ -162,10 +162,13 @@ class CreateTaskAccTest extends AbstractAccTest { newTask.setPrimaryObjRef(createObjectReference("COMPANY_A", "SYSTEM_A", "INSTANCE_A", "VNR", "1234567")); newTask.setOwner("user_1_1"); - newTask.setPlanned(instantPlanned); + Optional converter = DaysToWorkingDaysConverter.getLastCreatedInstance(); + //TODO: this is a temporal bug fix because we did not define what happens when a task is planned on the weekend. + long i = converter.get().convertWorkingDaysToDays(instantPlanned, 0); + newTask.setPlanned(instantPlanned.plus(Duration.ofDays(i))); //due date according to service level - Instant shouldBeDueDate = DaysToWorkingDaysConverter.getLastCreatedInstance() - .map(converter -> converter.convertWorkingDaysToDays(newTask.getPlanned(), serviceLevelDays)) + Instant shouldBeDueDate = converter + .map(c -> c.convertWorkingDaysToDays(newTask.getPlanned(), serviceLevelDays)) .map( calendarDays -> newTask.getPlanned().plus(Duration.ofDays(calendarDays))).orElseThrow( RuntimeException::new);