Now by default the order lines are scheduled

FEA: ItEr65S06BugFixing
This commit is contained in:
Óscar González Fernández 2010-12-15 13:52:42 +01:00
parent ec11dab825
commit 2f2ebb8f86
3 changed files with 20 additions and 9 deletions

View file

@ -48,12 +48,14 @@ public class SchedulingDataForVersion extends BaseEntity {
private TaskSource taskSource;
private SchedulingState.Type schedulingStateType = Type.NO_SCHEDULED;
private SchedulingState.Type schedulingStateType;
private final OrderVersion originOrderVersion;
private boolean hasPendingChanges = false;
private final Type initialSchedulingStateType;
private Data(OrderVersion orderVersion,
SchedulingDataForVersion version,
TaskSource taskSource,
@ -63,6 +65,7 @@ public class SchedulingDataForVersion extends BaseEntity {
this.originVersion = version;
this.taskSource = taskSource;
this.schedulingStateType = schedulingStateType;
this.initialSchedulingStateType = schedulingStateType;
}
public TaskSource getTaskSource() {
@ -85,7 +88,7 @@ public class SchedulingDataForVersion extends BaseEntity {
}
public void initializeType(Type type) {
if (getSchedulingStateType() != Type.NO_SCHEDULED) {
if (getSchedulingStateType() != initialSchedulingStateType) {
throw new IllegalStateException("already initialized");
}
this.setSchedulingStateType(type);
@ -153,11 +156,17 @@ public class SchedulingDataForVersion extends BaseEntity {
Validate.notNull(orderElement);
SchedulingDataForVersion schedulingDataForVersion = new SchedulingDataForVersion();
schedulingDataForVersion.orderElement = orderElement;
schedulingDataForVersion.schedulingStateType = defaultTypeFor(orderElement);
return create(schedulingDataForVersion);
}
private static Type defaultTypeFor(OrderElement orderElement) {
return orderElement.isLeaf() ? Type.SCHEDULING_POINT
: Type.NO_SCHEDULED;
}
@NotNull
private SchedulingState.Type schedulingStateType = Type.NO_SCHEDULED;
private SchedulingState.Type schedulingStateType;
@NotNull
private OrderElement orderElement;

View file

@ -147,7 +147,8 @@ public class ResourceAllocationDAOTest {
OrderVersion orderVersion = setupVersionUsing(scenarioManager,
order);
orderLine.useSchedulingDataFor(orderVersion);
orderLine.getSchedulingState().schedule();
assert orderLine.getSchedulingStateType().isSomewhatScheduled();
orderElementDAO.save(orderLine);
HoursGroup hoursGroup = HoursGroup.create(orderLine);

View file

@ -222,7 +222,7 @@ public class OrderModelTest {
order.add(line);
line.setName(UUID.randomUUID().toString());
line.setCode(UUID.randomUUID().toString());
line.getSchedulingState().schedule();
assert line.getSchedulingState().isSomewhatScheduled();
orderModel.save();
assertTrue(orderDAO.exists(order.getId()));
TaskSource lineTaskSource = line.getTaskSource();
@ -230,14 +230,15 @@ public class OrderModelTest {
}
@Test
public void itKnowsIfSchedulingDataHasBeenModified() {
public void ifAnOrderLineIsScheduledItsTypeChanges() {
Order order = givenOrderFromPrepareForCreate();
assertFalse(order.hasSchedulingDataBeingModified());
OrderElement line = OrderLine.createOrderLineWithUnfixedPercentage(20);
line.useSchedulingDataFor(order.getCurrentOrderVersion());
line.getSchedulingState().unschedule();
order.add(line);
assertFalse(order.hasSchedulingDataBeingModified());
assertFalse(order.getSchedulingState().isSomewhatScheduled());
line.getSchedulingState().schedule();
assertTrue(order.hasSchedulingDataBeingModified());
assertTrue(order.getSchedulingState().isSomewhatScheduled());
}
@Ignore("Test ignored until having the possibility to have a user " +