Create easier to read methods for specifying overassingment
FEA: ItEr74S04BugFixing
This commit is contained in:
parent
a7ac7512f0
commit
c88e7e177d
10 changed files with 38 additions and 31 deletions
|
|
@ -46,8 +46,8 @@ import org.navalplanner.business.common.entities.EntitySequence;
|
|||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.resources.entities.VirtualWorker;
|
||||
import org.navalplanner.business.workingday.EffortDuration;
|
||||
import org.navalplanner.business.workingday.ResourcesPerDay;
|
||||
import org.navalplanner.business.workingday.IntraDayDate.PartialDay;
|
||||
import org.navalplanner.business.workingday.ResourcesPerDay;
|
||||
|
||||
/**
|
||||
* Represents a calendar with some exception days. A calendar is valid till the
|
||||
|
|
@ -59,7 +59,7 @@ import org.navalplanner.business.workingday.IntraDayDate.PartialDay;
|
|||
public class BaseCalendar extends IntegrationEntity implements ICalendar {
|
||||
|
||||
private static final Capacity DEFAULT_VALUE = Capacity.zero()
|
||||
.overAssignableWithoutLimit(true);
|
||||
.overAssignableWithoutLimit();
|
||||
|
||||
public static BaseCalendar create() {
|
||||
return create(new BaseCalendar(CalendarData.create()));
|
||||
|
|
@ -72,7 +72,7 @@ public class BaseCalendar extends IntegrationEntity implements ICalendar {
|
|||
public static BaseCalendar createBasicCalendar() {
|
||||
BaseCalendar calendar = create();
|
||||
Capacity eightHours = Capacity.create(hours(8))
|
||||
.overAssignableWithoutLimit(true);
|
||||
.overAssignableWithoutLimit();
|
||||
calendar.setCapacityAt(Days.MONDAY, eightHours);
|
||||
calendar.setCapacityAt(Days.TUESDAY, eightHours);
|
||||
calendar.setCapacityAt(Days.WEDNESDAY, eightHours);
|
||||
|
|
|
|||
|
|
@ -118,6 +118,14 @@ public class Capacity {
|
|||
return new Capacity(standardEffort, allowedExtraEffort);
|
||||
}
|
||||
|
||||
public Capacity overAssignableWithoutLimit() {
|
||||
return overAssignableWithoutLimit(true);
|
||||
}
|
||||
|
||||
public Capacity notOverAssignableWithoutLimit() {
|
||||
return overAssignableWithoutLimit(false);
|
||||
}
|
||||
|
||||
public Capacity overAssignableWithoutLimit(
|
||||
boolean overAssignableWithoutLimit) {
|
||||
if (overAssignableWithoutLimit) {
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ public class SameWorkHoursEveryDay implements ICalendar {
|
|||
@Override
|
||||
public Capacity getCapacityWithOvertime(LocalDate day) {
|
||||
return Capacity.create(EffortDuration.hours(hours))
|
||||
.overAssignableWithoutLimit(true);
|
||||
.overAssignableWithoutLimit();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -114,9 +114,8 @@ public class ConfigurationBootstrap implements IConfigurationBootstrap {
|
|||
calendar.setCodeAutogenerated(true);
|
||||
|
||||
Capacity eightHours = Capacity.create(EffortDuration.hours(8))
|
||||
.overAssignableWithoutLimit(true);
|
||||
Capacity zeroCapacity = Capacity.zero().overAssignableWithoutLimit(
|
||||
false);
|
||||
.overAssignableWithoutLimit();
|
||||
Capacity zeroCapacity = Capacity.zero().notOverAssignableWithoutLimit();
|
||||
calendar.setCapacityAt(Days.MONDAY, eightHours);
|
||||
calendar.setCapacityAt(Days.TUESDAY, eightHours);
|
||||
calendar.setCapacityAt(Days.WEDNESDAY, eightHours);
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ public class BaseCalendarTest {
|
|||
* @return
|
||||
*/
|
||||
private static Capacity withNormalDuration(EffortDuration effort) {
|
||||
return Capacity.create(effort).overAssignableWithoutLimit(true);
|
||||
return Capacity.create(effort).overAssignableWithoutLimit();
|
||||
}
|
||||
|
||||
private BaseCalendar calendarFixture;
|
||||
|
|
@ -791,7 +791,7 @@ public class BaseCalendarTest {
|
|||
public void asDurationOnRespectsTheOverAssignablePropertyOfCalendarData() {
|
||||
BaseCalendar calendar = createBasicCalendar();
|
||||
calendar.setCapacityAt(Days.MONDAY, Capacity.create(hours(8))
|
||||
.overAssignableWithoutLimit(true));
|
||||
.overAssignableWithoutLimit());
|
||||
|
||||
assertThat(calendar.asDurationOn(
|
||||
PartialDay.wholeDay(MONDAY_LOCAL_DATE),
|
||||
|
|
@ -811,7 +811,7 @@ public class BaseCalendarTest {
|
|||
public void getCapacityWithOvertimeOnReturnsTheCapacityForThatDay() {
|
||||
BaseCalendar calendar = createBasicCalendar();
|
||||
Capacity capacitySet = Capacity.create(hours(8))
|
||||
.overAssignableWithoutLimit(true);
|
||||
.overAssignableWithoutLimit();
|
||||
|
||||
calendar.setCapacityAt(Days.MONDAY, capacitySet);
|
||||
assertThat(calendar.getCapacityWithOvertime(MONDAY_LOCAL_DATE),
|
||||
|
|
@ -822,7 +822,7 @@ public class BaseCalendarTest {
|
|||
public void asDurationOnRespectsTheNotOverAssignablePropertyOfCalendarData() {
|
||||
BaseCalendar calendar = createBasicCalendar();
|
||||
calendar.setCapacityAt(Days.MONDAY, Capacity.create(hours(8))
|
||||
.overAssignableWithoutLimit(false));
|
||||
.notOverAssignableWithoutLimit());
|
||||
|
||||
assertThat(calendar.asDurationOn(
|
||||
PartialDay.wholeDay(MONDAY_LOCAL_DATE),
|
||||
|
|
@ -857,7 +857,7 @@ public class BaseCalendarTest {
|
|||
public void asDurationOnRespectsAnOverAssignableCalendarException() {
|
||||
BaseCalendar calendar = createBasicCalendar();
|
||||
addExceptionOn(calendar, MONDAY_LOCAL_DATE, Capacity.create(hours(1))
|
||||
.overAssignableWithoutLimit(true));
|
||||
.overAssignableWithoutLimit());
|
||||
|
||||
assertThat(calendar.asDurationOn(
|
||||
PartialDay.wholeDay(MONDAY_LOCAL_DATE),
|
||||
|
|
@ -871,7 +871,7 @@ public class BaseCalendarTest {
|
|||
public void asDurationOnRespectsANotOverAssignableCalendarException() {
|
||||
BaseCalendar calendar = createBasicCalendar();
|
||||
addExceptionOn(calendar, MONDAY_LOCAL_DATE, Capacity.create(hours(1))
|
||||
.overAssignableWithoutLimit(false));
|
||||
.notOverAssignableWithoutLimit());
|
||||
assertThat(calendar.asDurationOn(
|
||||
PartialDay.wholeDay(MONDAY_LOCAL_DATE),
|
||||
ResourcesPerDay.amount(1)), equalTo(hours(1)));
|
||||
|
|
@ -909,7 +909,7 @@ public class BaseCalendarTest {
|
|||
public void canWorkOnRespectsIsOverAssignable() {
|
||||
BaseCalendar calendar = createBasicCalendar();
|
||||
addExceptionOn(calendar, MONDAY_LOCAL_DATE, Capacity.create(hours(0))
|
||||
.overAssignableWithoutLimit(true));
|
||||
.overAssignableWithoutLimit());
|
||||
|
||||
assertTrue(calendar.canWorkOn(MONDAY_LOCAL_DATE));
|
||||
}
|
||||
|
|
@ -918,12 +918,12 @@ public class BaseCalendarTest {
|
|||
public void canWorkOnRespectsCalendarData() {
|
||||
BaseCalendar calendar = createBasicCalendar();
|
||||
calendar.setCapacityAt(Days.MONDAY, Capacity.create(hours(0))
|
||||
.overAssignableWithoutLimit(true));
|
||||
.overAssignableWithoutLimit());
|
||||
|
||||
assertTrue(calendar.canWorkOn(MONDAY_LOCAL_DATE));
|
||||
|
||||
calendar.setCapacityAt(Days.MONDAY, Capacity.create(hours(0))
|
||||
.overAssignableWithoutLimit(false));
|
||||
.notOverAssignableWithoutLimit());
|
||||
assertFalse(calendar.canWorkOn(MONDAY_LOCAL_DATE));
|
||||
}
|
||||
|
||||
|
|
@ -931,7 +931,7 @@ public class BaseCalendarTest {
|
|||
public void theAvailabilityTimeLineTakesIntoAccountTheDaysItCannotWorkDueToCalendarData() {
|
||||
BaseCalendar calendar = createBasicCalendar();
|
||||
calendar.setCapacityAt(Days.MONDAY, Capacity.create(hours(0))
|
||||
.overAssignableWithoutLimit(false));
|
||||
.notOverAssignableWithoutLimit());
|
||||
|
||||
AvailabilityTimeLine availability = calendar.getAvailability();
|
||||
assertFalse(availability.isValid(MONDAY_LOCAL_DATE));
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ public class CapacityTest {
|
|||
|
||||
@Test
|
||||
public void aCapacityWithZeroHoursAndOverAssignableWithoutLimitAllowsWorking() {
|
||||
Capacity capacity = Capacity.zero().overAssignableWithoutLimit(true);
|
||||
Capacity capacity = Capacity.zero().overAssignableWithoutLimit();
|
||||
assertTrue(capacity.allowsWorking());
|
||||
}
|
||||
|
||||
|
|
@ -120,8 +120,8 @@ public class CapacityTest {
|
|||
@Test
|
||||
public void aCapacityMultipliedByZero() {
|
||||
Capacity[] originals = {
|
||||
Capacity.create(hours(8)).overAssignableWithoutLimit(true),
|
||||
Capacity.create(hours(8)).overAssignableWithoutLimit(false) };
|
||||
Capacity.create(hours(8)).overAssignableWithoutLimit(),
|
||||
Capacity.create(hours(8)).notOverAssignableWithoutLimit() };
|
||||
for (Capacity original : originals) {
|
||||
Capacity multipliedByZero = original.multiplyBy(0);
|
||||
assertThat(multipliedByZero.getStandardEffort(), equalTo(zero()));
|
||||
|
|
@ -161,7 +161,7 @@ public class CapacityTest {
|
|||
public void theExtraEffortIsAlsoMinimized() {
|
||||
assertThat(
|
||||
Capacity.min(a.withAllowedExtraEffort(hours(2)),
|
||||
b.overAssignableWithoutLimit(true))
|
||||
b.overAssignableWithoutLimit())
|
||||
.getAllowedExtraEffort(), equalTo(hours(2)));
|
||||
|
||||
assertThat(
|
||||
|
|
@ -174,7 +174,7 @@ public class CapacityTest {
|
|||
public void theExtraEffortIsMaximized() {
|
||||
assertThat(
|
||||
Capacity.max(a.withAllowedExtraEffort(hours(2)),
|
||||
b.overAssignableWithoutLimit(true))
|
||||
b.overAssignableWithoutLimit())
|
||||
.getAllowedExtraEffort(), nullValue());
|
||||
|
||||
assertThat(
|
||||
|
|
@ -185,11 +185,11 @@ public class CapacityTest {
|
|||
|
||||
@Test
|
||||
public void testThereIsCapacityForMoreAllocations() {
|
||||
assertThat(Capacity.create(hours(8)).overAssignableWithoutLimit(true)
|
||||
assertThat(Capacity.create(hours(8)).overAssignableWithoutLimit()
|
||||
.hasSpareSpaceForMoreAllocations(hours(10)), is(true));
|
||||
|
||||
Capacity notOverassignable = Capacity.create(hours(8))
|
||||
.overAssignableWithoutLimit(false);
|
||||
.notOverAssignableWithoutLimit();
|
||||
|
||||
assertFalse(notOverassignable
|
||||
.hasSpareSpaceForMoreAllocations(hours(10)));
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ import org.navalplanner.business.workingday.ResourcesPerDay;
|
|||
public class ResourceCalendarTest {
|
||||
|
||||
private static final Capacity capacityForEveryDay = Capacity.create(
|
||||
EffortDuration.hours(8)).overAssignableWithoutLimit(true);
|
||||
EffortDuration.hours(8)).overAssignableWithoutLimit();
|
||||
|
||||
public static ResourceCalendar createBasicResourceCalendar(int capacity) {
|
||||
ResourceCalendar calendar = ResourceCalendar.create();
|
||||
|
|
|
|||
|
|
@ -263,7 +263,7 @@ public class GenericResourceAllocationTest {
|
|||
}
|
||||
|
||||
private Capacity fromHours(int hours) {
|
||||
return Capacity.create(hours(hours)).overAssignableWithoutLimit(true);
|
||||
return Capacity.create(hours(hours)).overAssignableWithoutLimit();
|
||||
}
|
||||
|
||||
private void givenCalendarsForResources(Capacity capacity1,
|
||||
|
|
@ -296,7 +296,7 @@ public class GenericResourceAllocationTest {
|
|||
|
||||
private void givenBaseCalendarWithoutExceptions(int hoursPerDay) {
|
||||
BaseCalendar baseCalendar = createCalendar(BaseCalendar.class, Capacity
|
||||
.create(hours(hoursPerDay)).overAssignableWithoutLimit(true));
|
||||
.create(hours(hoursPerDay)).overAssignableWithoutLimit());
|
||||
this.baseCalendar = baseCalendar;
|
||||
}
|
||||
|
||||
|
|
@ -669,7 +669,7 @@ public class GenericResourceAllocationTest {
|
|||
Capacity with2ExtraHours = workingDay
|
||||
.withAllowedExtraEffort(hours(2));
|
||||
givenCalendarsForResources(with2ExtraHours, with2ExtraHours,
|
||||
workingDay.overAssignableWithoutLimit(true));
|
||||
workingDay.overAssignableWithoutLimit());
|
||||
givenWorkersWithLoads(0, 0, 0);
|
||||
|
||||
genericResourceAllocation.forResources(workers).allocate(
|
||||
|
|
@ -718,7 +718,7 @@ public class GenericResourceAllocationTest {
|
|||
givenGenericResourceAllocationForTask(task);
|
||||
givenWorkersWithLoads(8, 8, 8);
|
||||
givenVirtualWorkerWithCapacityAndLoad(Capacity.create(hours(8))
|
||||
.overAssignableWithoutLimit(true), 5, hours(40));
|
||||
.overAssignableWithoutLimit(), 5, hours(40));
|
||||
|
||||
genericResourceAllocation.forResources(workers).allocate(
|
||||
ResourcesPerDay.amount(1));
|
||||
|
|
|
|||
|
|
@ -301,7 +301,7 @@ public final class CalendarConverter {
|
|||
.ordinal();
|
||||
Capacity capacity = Capacity.create(
|
||||
EffortDuration.hours(hoursPerDayDTO.hours))
|
||||
.overAssignableWithoutLimit(true);
|
||||
.overAssignableWithoutLimit();
|
||||
result.put(day, capacity);
|
||||
} catch (IllegalArgumentException e) {
|
||||
throw new ValidationException(_("a day is not valid"));
|
||||
|
|
|
|||
|
|
@ -223,7 +223,7 @@ public class BaseCalendarServiceTest {
|
|||
|
||||
CalendarData data = baseCalendar.getCalendarDataByCode("codeData");
|
||||
assertEquals(Capacity.create(EffortDuration.hours(4))
|
||||
.overAssignableWithoutLimit(true),
|
||||
.overAssignableWithoutLimit(),
|
||||
data.getCapacityOn(CalendarData.Days.FRIDAY));
|
||||
assertEquals(Capacity.create(EffortDuration.hours(4))
|
||||
.overAssignableWithoutLimit(true),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue