ItEr16S12CreacionProxectoPlanificacion: Adding OrderElement many to one relationship to TaskElement.

This commit is contained in:
Óscar González Fernández 2009-07-08 14:51:43 +02:00 committed by Javier Moran Rua
parent e34ea18aa2
commit 20d7906a0c
3 changed files with 43 additions and 5 deletions

View file

@ -6,6 +6,7 @@ import java.util.HashSet;
import java.util.Set;
import org.apache.commons.lang.Validate;
import org.hibernate.validator.NotNull;
import org.navalplanner.business.orders.entities.OrderElement;
/**
@ -21,6 +22,7 @@ public abstract class TaskElement {
private Date endDate;
@NotNull
private OrderElement orderElement;
private Set<Dependency> dependenciesWithThisOrigin = new HashSet<Dependency>();

View file

@ -11,6 +11,8 @@
<property name="startDate" type="timestamp" />
<property name="endDate" type="timestamp" />
<many-to-one name="orderElement" cascade="none"/>
<set name="dependenciesWithThisOrigin">
<key column="ORIGIN"></key>
<one-to-many class="Dependency" />
@ -50,4 +52,4 @@
</property>
</class>
</hibernate-mapping>
</hibernate-mapping>

View file

@ -9,12 +9,17 @@ import static org.junit.Assert.assertTrue;
import static org.navalplanner.business.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_FILE;
import static org.navalplanner.business.test.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_TEST_FILE;
import java.util.Date;
import java.util.List;
import org.hibernate.SessionFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.navalplanner.business.common.exceptions.ValidationException;
import org.navalplanner.business.orders.entities.HoursGroup;
import org.navalplanner.business.orders.entities.Order;
import org.navalplanner.business.orders.entities.OrderLine;
import org.navalplanner.business.orders.services.IOrderService;
import org.navalplanner.business.planner.entities.Dependency;
import org.navalplanner.business.planner.entities.Task;
import org.navalplanner.business.planner.entities.TaskElement;
@ -41,6 +46,9 @@ public class TaskElementServiceTest {
@Autowired
private SessionFactory sessionFactory;
@Autowired
private IOrderService orderService;
@Test
public void canSaveTask() {
Task task = createValidTask();
@ -53,7 +61,26 @@ public class TaskElementServiceTest {
}
private Task createValidTask() {
return Task.createTask(new HoursGroup());
Task task = Task.createTask(new HoursGroup());
OrderLine orderLine = createOrderLine();
task.setOrderElement(orderLine);
return task;
}
private OrderLine createOrderLine() {
OrderLine orderLine = new OrderLine();
orderLine.setName("bla");
Order order = new Order();
order.setName("bla");
order.setInitDate(new Date());
order.add(orderLine);
try {
orderService.save(order);
sessionFactory.getCurrentSession().flush();
} catch (ValidationException e) {
throw new RuntimeException(e);
}
return orderLine;
}
@Test
@ -66,7 +93,7 @@ public class TaskElementServiceTest {
@Test
public void canSaveTaskGroup() {
TaskGroup taskGroup = new TaskGroup();
TaskGroup taskGroup = createValidTaskGroup();
taskElementService.save(taskGroup);
flushAndEvict(taskGroup);
TaskElement reloaded = taskElementService.findById(taskGroup.getId());
@ -75,6 +102,13 @@ public class TaskElementServiceTest {
checkProperties(taskGroup, reloaded);
}
private TaskGroup createValidTaskGroup() {
TaskGroup result = new TaskGroup();
OrderLine orderLine = createOrderLine();
result.setOrderElement(orderLine);
return result;
}
private void checkProperties(TaskElement inMemory, TaskElement fromDB) {
assertThat(fromDB.getStartDate(), equalTo(inMemory.getStartDate()));
assertThat(fromDB.getEndDate(), equalTo(inMemory.getEndDate()));
@ -89,7 +123,7 @@ public class TaskElementServiceTest {
public void savingGroupSavesAssociatedTaskElements() {
Task child1 = createValidTask();
Task child2 = createValidTask();
TaskGroup taskGroup = new TaskGroup();
TaskGroup taskGroup = createValidTaskGroup();
taskGroup.addTaskElement(child1);
taskGroup.addTaskElement(child2);
taskElementService.save(taskGroup);
@ -107,7 +141,7 @@ public class TaskElementServiceTest {
public void savingTaskElementSavesAssociatedDependencies() {
Task child1 = createValidTask();
Task child2 = createValidTask();
TaskGroup taskGroup = new TaskGroup();
TaskGroup taskGroup = createValidTaskGroup();
taskGroup.addTaskElement(child1);
taskGroup.addTaskElement(child2);
Dependency dependency = Dependency.createDependency(child1, child2,