diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml
index a27071af8..0ee81b8c6 100644
--- a/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml
+++ b/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml
@@ -31,7 +31,7 @@
-
+
@@ -77,4 +77,4 @@
-
\ No newline at end of file
+
diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/orders/services/OrderServiceTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/orders/services/OrderServiceTest.java
index 35a8182e7..9b466a99d 100644
--- a/navalplanner-business/src/test/java/org/navalplanner/business/test/orders/services/OrderServiceTest.java
+++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/orders/services/OrderServiceTest.java
@@ -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 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 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 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);