ItEr21S04ArquitecturaServidorItEr20S04: Removing basic methods of TaskElementService.
This commit is contained in:
parent
05db78783b
commit
c3a8edeb6d
4 changed files with 77 additions and 65 deletions
|
|
@ -9,16 +9,8 @@ import org.navalplanner.business.planner.entities.TaskElement;
|
|||
*/
|
||||
public interface ITaskElementService {
|
||||
|
||||
void save(TaskElement task);
|
||||
|
||||
TaskElement findById(Long id);
|
||||
|
||||
TaskElement convertToInitialSchedule(OrderElement order);
|
||||
|
||||
void convertToScheduleAndSave(Order order);
|
||||
|
||||
void remove(TaskElement taskElement);
|
||||
|
||||
boolean exists(TaskElement taskElement);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package org.navalplanner.business.planner.services;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.orders.entities.HoursGroup;
|
||||
import org.navalplanner.business.orders.entities.Order;
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
|
|
@ -29,20 +28,6 @@ public class TaskElementService implements ITaskElementService {
|
|||
@Autowired
|
||||
private ITaskElementDAO taskElementDao;
|
||||
|
||||
@Override
|
||||
public void save(TaskElement task) {
|
||||
taskElementDao.save(task);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskElement findById(Long id) {
|
||||
try {
|
||||
return taskElementDao.find(id);
|
||||
} catch (InstanceNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskElement convertToInitialSchedule(OrderElement order) {
|
||||
if (order instanceof OrderLineGroup) {
|
||||
|
|
@ -93,23 +78,8 @@ public class TaskElementService implements ITaskElementService {
|
|||
public void convertToScheduleAndSave(Order order) {
|
||||
List<OrderElement> orderElements = order.getOrderElements();
|
||||
for (OrderElement orderElement : orderElements) {
|
||||
save(convertToInitialSchedule(orderElement));
|
||||
taskElementDao.save(convertToInitialSchedule(orderElement));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void remove(TaskElement taskElement) {
|
||||
try {
|
||||
taskElementDao.remove(taskElement.getId());
|
||||
} catch (InstanceNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean exists(TaskElement taskElement) {
|
||||
return taskElementDao.exists(taskElement.getId());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import org.hibernate.SessionFactory;
|
|||
import org.junit.Test;
|
||||
import org.junit.matchers.JUnitMatchers;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.orders.daos.IOrderDAO;
|
||||
import org.navalplanner.business.orders.entities.HoursGroup;
|
||||
|
|
@ -24,6 +25,7 @@ import org.navalplanner.business.orders.entities.Order;
|
|||
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.planner.daos.ITaskElementDAO;
|
||||
import org.navalplanner.business.planner.entities.Dependency;
|
||||
import org.navalplanner.business.planner.entities.Task;
|
||||
import org.navalplanner.business.planner.entities.TaskElement;
|
||||
|
|
@ -47,6 +49,9 @@ public class TaskElementServiceTest {
|
|||
@Autowired
|
||||
private ITaskElementService taskElementService;
|
||||
|
||||
@Autowired
|
||||
private ITaskElementDAO taskElementDAO;
|
||||
|
||||
@Autowired
|
||||
private SessionFactory sessionFactory;
|
||||
|
||||
|
|
@ -58,9 +63,14 @@ public class TaskElementServiceTest {
|
|||
@Test
|
||||
public void canSaveTask() {
|
||||
Task task = createValidTask();
|
||||
taskElementService.save(task);
|
||||
taskElementDAO.save(task);
|
||||
flushAndEvict(task);
|
||||
TaskElement fromDB = taskElementService.findById(task.getId());
|
||||
TaskElement fromDB;
|
||||
try {
|
||||
fromDB = taskElementDAO.find(task.getId());
|
||||
} catch (InstanceNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
assertThat(fromDB.getId(), equalTo(task.getId()));
|
||||
assertThat(fromDB, is(Task.class));
|
||||
checkProperties(task, fromDB);
|
||||
|
|
@ -100,16 +110,21 @@ public class TaskElementServiceTest {
|
|||
public void afterSavingTheVersionIsIncreased() {
|
||||
Task task = createValidTask();
|
||||
assertNull(task.getVersion());
|
||||
taskElementService.save(task);
|
||||
taskElementDAO.save(task);
|
||||
assertNotNull(task.getVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void canSaveTaskGroup() {
|
||||
TaskGroup taskGroup = createValidTaskGroup();
|
||||
taskElementService.save(taskGroup);
|
||||
taskElementDAO.save(taskGroup);
|
||||
flushAndEvict(taskGroup);
|
||||
TaskElement reloaded = taskElementService.findById(taskGroup.getId());
|
||||
TaskElement reloaded;
|
||||
try {
|
||||
reloaded = taskElementDAO.find(taskGroup.getId());
|
||||
} catch (InstanceNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
assertThat(reloaded.getId(), equalTo(taskGroup.getId()));
|
||||
assertThat(reloaded, is(TaskGroup.class));
|
||||
checkProperties(taskGroup, reloaded);
|
||||
|
|
@ -119,9 +134,14 @@ public class TaskElementServiceTest {
|
|||
public void theParentPropertyIsPresentWhenRetrievingTasks() {
|
||||
TaskGroup taskGroup = createValidTaskGroup();
|
||||
taskGroup.addTaskElement(createValidTask());
|
||||
taskElementService.save(taskGroup);
|
||||
taskElementDAO.save(taskGroup);
|
||||
flushAndEvict(taskGroup);
|
||||
TaskElement reloaded = taskElementService.findById(taskGroup.getId());
|
||||
TaskElement reloaded;
|
||||
try {
|
||||
reloaded = taskElementDAO.find(taskGroup.getId());
|
||||
} catch (InstanceNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
TaskElement child = reloaded.getChildren().get(0);
|
||||
assertThat(child.getParent(), equalTo(reloaded));
|
||||
}
|
||||
|
|
@ -150,10 +170,14 @@ public class TaskElementServiceTest {
|
|||
TaskGroup taskGroup = createValidTaskGroup();
|
||||
taskGroup.addTaskElement(child1);
|
||||
taskGroup.addTaskElement(child2);
|
||||
taskElementService.save(taskGroup);
|
||||
taskElementDAO.save(taskGroup);
|
||||
flushAndEvict(taskGroup);
|
||||
TaskGroup reloaded = (TaskGroup) taskElementService.findById(taskGroup
|
||||
.getId());
|
||||
TaskGroup reloaded;
|
||||
try {
|
||||
reloaded = (TaskGroup) taskElementDAO.find(taskGroup.getId());
|
||||
} catch (InstanceNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
List<TaskElement> taskElements = reloaded.getChildren();
|
||||
assertThat(taskElements.size(), equalTo(2));
|
||||
assertThat(taskElements.get(0).getId(), equalTo(child1.getId()));
|
||||
|
|
@ -165,16 +189,24 @@ public class TaskElementServiceTest {
|
|||
public void savingTaskElementSavesAssociatedDependencies() {
|
||||
Task child1 = createValidTask();
|
||||
Task child2 = createValidTask();
|
||||
taskElementService.save(child2);
|
||||
taskElementDAO.save(child2);
|
||||
Task oldChild2 = child2;
|
||||
flushAndEvict(child2);
|
||||
child2 = (Task) taskElementService.findById(child2.getId());
|
||||
try {
|
||||
child2 = (Task) taskElementDAO.find(child2.getId());
|
||||
} catch (InstanceNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
Dependency.createDependency(child1, oldChild2,
|
||||
Type.START_END);
|
||||
taskElementService.save(child1);
|
||||
taskElementDAO.save(child1);
|
||||
flushAndEvict(child1);
|
||||
TaskElement child1Reloaded = (TaskElement) taskElementService
|
||||
.findById(child1.getId());
|
||||
TaskElement child1Reloaded;
|
||||
try {
|
||||
child1Reloaded = (TaskElement) taskElementDAO.find(child1.getId());
|
||||
} catch (InstanceNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
assertThat(child1Reloaded.getDependenciesWithThisOrigin().size(),
|
||||
equalTo(1));
|
||||
assertTrue(child1Reloaded.getDependenciesWithThisDestination()
|
||||
|
|
@ -306,10 +338,15 @@ public class TaskElementServiceTest {
|
|||
@Test
|
||||
public void testInverseManyToOneRelationshipInOrderElement() {
|
||||
Task task = createValidTask();
|
||||
taskElementService.save(task);
|
||||
taskElementDAO.save(task);
|
||||
flushAndEvict(task);
|
||||
sessionFactory.getCurrentSession().evict(task.getOrderElement());
|
||||
TaskElement fromDB = taskElementService.findById(task.getId());
|
||||
TaskElement fromDB;
|
||||
try {
|
||||
fromDB = taskElementDAO.find(task.getId());
|
||||
} catch (InstanceNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
OrderElement orderElement = fromDB.getOrderElement();
|
||||
assertThat(orderElement.getTaskElements().size(), equalTo(1));
|
||||
assertThat(orderElement.getTaskElements().iterator().next(),
|
||||
|
|
@ -319,9 +356,13 @@ public class TaskElementServiceTest {
|
|||
@Test
|
||||
public void aTaskCanBeRemoved() {
|
||||
Task task = createValidTask();
|
||||
taskElementService.save(task);
|
||||
taskElementDAO.save(task);
|
||||
flushAndEvict(task);
|
||||
taskElementService.remove(task);
|
||||
try {
|
||||
taskElementDAO.remove(task.getId());
|
||||
} catch (InstanceNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
sessionFactory.getCurrentSession().flush();
|
||||
assertNull(sessionFactory.getCurrentSession().get(TaskElement.class,
|
||||
task.getId()));
|
||||
|
|
@ -332,9 +373,13 @@ public class TaskElementServiceTest {
|
|||
TaskGroup taskGroup = createValidTaskGroup();
|
||||
Task task = createValidTask();
|
||||
taskGroup.addTaskElement(task);
|
||||
taskElementService.save(taskGroup);
|
||||
taskElementDAO.save(taskGroup);
|
||||
flushAndEvict(taskGroup);
|
||||
taskElementService.remove(taskGroup);
|
||||
try {
|
||||
taskElementDAO.remove(taskGroup.getId());
|
||||
} catch (InstanceNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
sessionFactory.getCurrentSession().flush();
|
||||
assertNull(sessionFactory.getCurrentSession().get(TaskGroup.class,
|
||||
taskGroup.getId()));
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
package org.navalplanner.web.planner;
|
||||
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.planner.daos.ITaskElementDAO;
|
||||
import org.navalplanner.business.planner.entities.ResourceAllocation;
|
||||
import org.navalplanner.business.planner.entities.Task;
|
||||
import org.navalplanner.business.planner.entities.TaskElement;
|
||||
import org.navalplanner.business.planner.services.ITaskElementService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
|
|
@ -22,7 +23,7 @@ import org.zkoss.zul.Messagebox;
|
|||
public class SaveCommand implements ISaveCommand {
|
||||
|
||||
@Autowired
|
||||
private ITaskElementService taskElementService;
|
||||
private ITaskElementDAO taskElementDAO;
|
||||
private PlanningState state;
|
||||
|
||||
@Override
|
||||
|
|
@ -34,7 +35,7 @@ public class SaveCommand implements ISaveCommand {
|
|||
@Transactional
|
||||
public void doAction(IContext<TaskElement> context) {
|
||||
for (TaskElement taskElement : state.getTasksToSave()) {
|
||||
taskElementService.save(taskElement);
|
||||
taskElementDAO.save(taskElement);
|
||||
if (taskElement instanceof Task) {
|
||||
if (!((Task) taskElement).isValidResourceAllocationWorkers()) {
|
||||
throw new RuntimeException("The Task '"
|
||||
|
|
@ -48,9 +49,13 @@ public class SaveCommand implements ISaveCommand {
|
|||
}
|
||||
}
|
||||
for (TaskElement taskElement : state.getToRemove()) {
|
||||
if (taskElementService.exists(taskElement)) {
|
||||
if (taskElementDAO.exists(taskElement.getId())) {
|
||||
// it might have already been saved in a previous save action
|
||||
taskElementService.remove(taskElement);
|
||||
try {
|
||||
taskElementDAO.remove(taskElement.getId());
|
||||
} catch (InstanceNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue