ItEr16S12CreacionProxectoPlanificacion: When an Order is removed, all the associated task elements are removed.
Database schema might need to be recreated.
This commit is contained in:
parent
cbf7cccd21
commit
bbf9af0978
2 changed files with 32 additions and 11 deletions
|
|
@ -31,7 +31,7 @@
|
|||
<property name="mandatoryInit" access="field" />
|
||||
<property name="mandatoryEnd" access="field" />
|
||||
<property name="description" access="field" />
|
||||
<set name="taskElements" access="field">
|
||||
<set name="taskElements" access="field" cascade="delete">
|
||||
<key column="ORDER_ELEMENT_ID"/>
|
||||
<one-to-many class="org.navalplanner.business.planner.entities.TaskElement"></one-to-many>
|
||||
</set>
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ import org.navalplanner.business.orders.entities.OrderElement;
|
|||
import org.navalplanner.business.orders.entities.OrderLine;
|
||||
import org.navalplanner.business.orders.entities.OrderLineGroup;
|
||||
import org.navalplanner.business.orders.services.IOrderService;
|
||||
import org.navalplanner.business.planner.services.ITaskElementService;
|
||||
import org.navalplanner.business.resources.entities.Criterion;
|
||||
import org.navalplanner.business.resources.entities.CriterionType;
|
||||
import org.navalplanner.business.resources.services.CriterionService;
|
||||
|
|
@ -58,6 +59,9 @@ public class OrderServiceTest {
|
|||
@Autowired
|
||||
private IOrderService orderService;
|
||||
|
||||
@Autowired
|
||||
private ITaskElementService taskElementService;
|
||||
|
||||
@Autowired
|
||||
private CriterionService criterionService;
|
||||
|
||||
|
|
@ -79,8 +83,7 @@ public class OrderServiceTest {
|
|||
public void testListing() throws Exception {
|
||||
List<Order> list = orderService.getOrders();
|
||||
orderService.save(createValidOrder());
|
||||
assertThat(orderService.getOrders().size(), equalTo(list
|
||||
.size() + 1));
|
||||
assertThat(orderService.getOrders().size(), equalTo(list.size() + 1));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -92,6 +95,25 @@ public class OrderServiceTest {
|
|||
assertFalse(orderService.exists(order));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void removingOrderWithAssociatedTasksDeletesThem()
|
||||
throws ValidationException, InstanceNotFoundException {
|
||||
Order order = createValidOrder();
|
||||
OrderLine orderLine = new OrderLine();
|
||||
orderLine.setName("bla");
|
||||
orderLine.setWorkHours(10);
|
||||
order.add(orderLine);
|
||||
orderService.save(order);
|
||||
taskElementService.convertToScheduleAndSave(order);
|
||||
getSession().flush();
|
||||
getSession().evict(order);
|
||||
Order reloaded = orderService.find(order.getId());
|
||||
OrderElement e = reloaded.getOrderElements().iterator().next();
|
||||
assertThat(e.getTaskElements().size(), equalTo(1));
|
||||
orderService.remove(reloaded);
|
||||
assertFalse(orderService.exists(reloaded));
|
||||
}
|
||||
|
||||
@Test(expected = ValidationException.class)
|
||||
public void shouldSendValidationExceptionIfEndDateIsBeforeThanStartingDate()
|
||||
throws ValidationException {
|
||||
|
|
@ -132,8 +154,7 @@ public class OrderServiceTest {
|
|||
@Override
|
||||
public Void execute() {
|
||||
try {
|
||||
Order reloaded = orderService.find(order
|
||||
.getId());
|
||||
Order reloaded = orderService.find(order.getId());
|
||||
List<OrderElement> elements = reloaded.getOrderElements();
|
||||
for (int i = 0; i < containers.length; i++) {
|
||||
assertThat(elements.get(i).getId(),
|
||||
|
|
@ -143,8 +164,8 @@ public class OrderServiceTest {
|
|||
.getOrderElements().iterator().next();
|
||||
List<OrderElement> children = container.getChildren();
|
||||
for (int i = 0; i < orderElements.length; i++) {
|
||||
assertThat(children.get(i).getId(), equalTo(orderElements[i]
|
||||
.getId()));
|
||||
assertThat(children.get(i).getId(),
|
||||
equalTo(orderElements[i].getId()));
|
||||
}
|
||||
return null;
|
||||
} catch (Exception e) {
|
||||
|
|
@ -181,8 +202,7 @@ public class OrderServiceTest {
|
|||
@Override
|
||||
public Void execute() {
|
||||
try {
|
||||
Order reloaded = orderService.find(order
|
||||
.getId());
|
||||
Order reloaded = orderService.find(order.getId());
|
||||
assertFalse(order == reloaded);
|
||||
assertThat(reloaded.getOrderElements().size(), equalTo(1));
|
||||
OrderLineGroup containerReloaded = (OrderLineGroup) reloaded
|
||||
|
|
@ -220,7 +240,8 @@ public class OrderServiceTest {
|
|||
orderLine.addHoursGroup(hoursGroup2);
|
||||
|
||||
CriterionType criterionType = new CriterionType("test");
|
||||
Criterion criterion = new Criterion("Test" + UUID.randomUUID(), criterionType);
|
||||
Criterion criterion = new Criterion("Test" + UUID.randomUUID(),
|
||||
criterionType);
|
||||
criterionService.save(criterion);
|
||||
|
||||
hoursGroup.addCriterion(criterion);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue