ItEr20S04ArquitecturaServidorItEr19S04: Removing unnecessary files.

This commit is contained in:
Manuel Rego Casasnovas 2009-08-04 17:54:16 +02:00 committed by Óscar González Fernández
parent 7006262376
commit 4ec02f6b27
2 changed files with 0 additions and 691 deletions

View file

@ -1,327 +0,0 @@
package org.navalplanner.business.test.orders.services;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
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.List;
import java.util.Set;
import java.util.UUID;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.navalplanner.business.common.OnTransaction;
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
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.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.entities.Task;
import org.navalplanner.business.planner.entities.TaskElement;
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;
import org.navalplanner.business.test.resources.daos.CriterionSatisfactionDAOTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.NotTransactional;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
/**
* Tests for {@link Order}. <br />
* @author Óscar González Fernández <ogonzalez@igalia.com>
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { BUSINESS_SPRING_CONFIG_FILE,
BUSINESS_SPRING_CONFIG_TEST_FILE })
@Transactional
public class OrderServiceTest {
private static Order createValidOrder() {
Order order = new Order();
order.setDescription("description");
order.setCustomer("blabla");
order.setInitDate(CriterionSatisfactionDAOTest.year(2000));
order.setName("name");
order.setResponsible("responsible");
return order;
}
@Autowired
private IOrderService orderService;
@Autowired
private ITaskElementService taskElementService;
@Autowired
private CriterionService criterionService;
@Autowired
private SessionFactory sessionFactory;
private Session getSession() {
return sessionFactory.getCurrentSession();
}
@Test
public void testCreation() throws ValidationException {
Order order = createValidOrder();
orderService.save(order);
assertTrue(orderService.exists(order));
}
@Test
public void testListing() throws Exception {
List<Order> list = orderService.getOrders();
orderService.save(createValidOrder());
assertThat(orderService.getOrders().size(), equalTo(list.size() + 1));
}
@Test
public void testRemove() throws Exception {
Order order = createValidOrder();
orderService.save(order);
assertTrue(orderService.exists(order));
orderService.remove(order);
assertFalse(orderService.exists(order));
}
@Test
public void removingOrderWithAssociatedTasksDeletesThem()
throws ValidationException, InstanceNotFoundException {
Order order = createValidOrder();
OrderLine orderLine = new OrderLine();
orderLine.setName("bla");
orderLine.setCode("00000000");
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));
Set<TaskElement> taskElements = e.getTaskElements();
for (TaskElement t : taskElements) {
if (t instanceof Task) {
Task task = (Task) t;
task.getHoursGroup().dontPoseAsTransientObjectAnymore();
}
}
orderService.remove(reloaded);
assertFalse(orderService.exists(reloaded));
}
@Test(expected = ValidationException.class)
public void shouldSendValidationExceptionIfEndDateIsBeforeThanStartingDate()
throws ValidationException {
Order order = createValidOrder();
order.setEndDate(CriterionSatisfactionDAOTest.year(0));
orderService.save(order);
}
@Test
public void testFind() throws Exception {
Order order = createValidOrder();
orderService.save(order);
assertThat(orderService.find(order.getId()), notNullValue());
}
@Test
@NotTransactional
public void testOrderPreserved() throws ValidationException,
InstanceNotFoundException {
final Order order = createValidOrder();
final OrderElement[] containers = new OrderLineGroup[10];
for (int i = 0; i < containers.length; i++) {
containers[i] = new OrderLineGroup();
containers[i].setName("bla");
containers[i].setCode("000000000");
order.add(containers[i]);
}
OrderLineGroup container = (OrderLineGroup) containers[0];
final OrderElement[] orderElements = new OrderElement[10];
for (int i = 0; i < orderElements.length; i++) {
OrderLine leaf = createValidLeaf("bla");
orderElements[i] = leaf;
container.add(leaf);
}
for (int i = 1; i < containers.length; i++) {
OrderLineGroup orderLineGroup = (OrderLineGroup) containers[i];
OrderLine leaf = createValidLeaf("foo");
orderLineGroup.add(leaf);
}
orderService.save(order);
orderService.onTransaction(new OnTransaction<Void>() {
@Override
public Void execute() {
try {
Order reloaded = orderService.find(order.getId());
List<OrderElement> elements = reloaded.getOrderElements();
for (int i = 0; i < containers.length; i++) {
assertThat(elements.get(i).getId(),
equalTo(containers[i].getId()));
}
OrderLineGroup container = (OrderLineGroup) reloaded
.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()));
}
for (int i = 1; i < containers.length; i++) {
OrderLineGroup orderLineGroup = (OrderLineGroup) containers[i];
assertThat(orderLineGroup.getChildren().size(),
equalTo(1));
}
return null;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
});
orderService.remove(order);
}
private OrderLine createValidLeaf(String parameter) {
OrderLine result = new OrderLine();
result.setName(parameter);
result.setCode("000000000");
HoursGroup hoursGroup = HoursGroup.create(result);
hoursGroup.setWorkingHours(0);
result.addHoursGroup(hoursGroup);
return result;
}
@Test
@NotTransactional
public void testAddingOrderElement() throws Exception {
final Order order = createValidOrder();
OrderLineGroup container = new OrderLineGroup();
container.setName("bla");
container.setCode("000000000");
OrderLine leaf = new OrderLine();
leaf.setName("leaf");
leaf.setCode("000000000");
container.add(leaf);
order.add(container);
HoursGroup hoursGroup = HoursGroup.create(leaf);
hoursGroup.setWorkingHours(3);
leaf.addHoursGroup(hoursGroup);
orderService.save(order);
orderService.onTransaction(new OnTransaction<Void>() {
@Override
public Void execute() {
try {
Order reloaded = orderService.find(order.getId());
assertFalse(order == reloaded);
assertThat(reloaded.getOrderElements().size(), equalTo(1));
OrderLineGroup containerReloaded = (OrderLineGroup) reloaded
.getOrderElements().get(0);
assertThat(containerReloaded.getHoursGroups().size(),
equalTo(1));
assertThat(containerReloaded.getChildren().size(),
equalTo(1));
OrderElement leaf = containerReloaded.getChildren().get(0);
assertThat(leaf.getHoursGroups().size(), equalTo(1));
orderService.remove(order);
} catch (InstanceNotFoundException e) {
throw new RuntimeException(e);
}
return null;
}
});
}
@Test
@NotTransactional
public void testManyToManyHoursGroupCriterionMapping() throws Exception {
final Order order = createValidOrder();
OrderLine orderLine = new OrderLine();
orderLine.setName("Order element");
orderLine.setCode("000000000");
order.add(orderLine);
HoursGroup hoursGroup = HoursGroup.create(orderLine);
hoursGroup.setWorkingHours(10);
HoursGroup hoursGroup2 = HoursGroup.create(orderLine);
hoursGroup2.setWorkingHours(5);
orderLine.addHoursGroup(hoursGroup);
orderLine.addHoursGroup(hoursGroup2);
CriterionType criterionType = new CriterionType("test");
Criterion criterion = new Criterion("Test" + UUID.randomUUID(),
criterionType);
criterionService.save(criterion);
hoursGroup.addCriterion(criterion);
hoursGroup2.addCriterion(criterion);
orderService.save(order);
orderService.onTransaction(new OnTransaction<Void>() {
@Override
public Void execute() {
try {
Order reloaded = orderService.find(order.getId());
List<OrderElement> orderElements = reloaded
.getOrderElements();
assertThat(orderElements.size(), equalTo(1));
List<HoursGroup> hoursGroups = orderElements.get(0)
.getHoursGroups();
assertThat(hoursGroups.size(), equalTo(2));
Set<Criterion> criterions = hoursGroups.get(0)
.getCriterions();
assertThat(criterions.size(), equalTo(1));
Criterion criterion = criterions.iterator().next();
assertThat(criterion.getType().getName(), equalTo("test"));
} catch (InstanceNotFoundException e) {
throw new RuntimeException(e);
}
return null;
}
});
}
@Test(expected = ValidationException.class)
public void testAtLeastOneHoursGroup() throws Exception {
Order order = createValidOrder();
OrderLine orderLine = new OrderLine();
orderLine.setName("foo");
orderLine.setCode("000000000");
order.add(orderLine);
orderService.save(order);
}
}

View file

@ -1,364 +0,0 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.zkoss.ganttz;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.zkoss.ganttz.data.Task;
import org.zkoss.ganttz.data.TaskContainer;
import org.zkoss.lang.Objects;
import org.zkoss.xml.HTMLs;
import org.zkoss.zk.au.AuRequest;
import org.zkoss.zk.au.Command;
import org.zkoss.zk.au.ComponentCommand;
import org.zkoss.zk.au.out.AuInvoke;
import org.zkoss.zk.mesg.MZk;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.UiException;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.ext.AfterCompose;
import org.zkoss.zul.Div;
/**
* @author javi
*/
public class TaskComponent extends Div implements AfterCompose {
private static final int HEIGHT_PER_TASK = 10;
private static final String STANDARD_TASK_COLOR = "#007bbe";
private static Pattern pixelsSpecificationPattern = Pattern
.compile("\\s*(\\d+)px\\s*;?\\s*");
private static int stripPx(String pixels) {
Matcher matcher = pixelsSpecificationPattern.matcher(pixels);
if (!matcher.matches())
throw new IllegalArgumentException("pixels " + pixels
+ " is not valid. It must be "
+ pixelsSpecificationPattern.pattern());
return Integer.valueOf(matcher.group(1));
}
private static Command _updatecmd = new ComponentCommand(
"onUpdatePosition", 0) {
protected void process(AuRequest request) {
final TaskComponent ta = (TaskComponent) request.getComponent();
if (ta == null) {
throw new UiException(MZk.ILLEGAL_REQUEST_COMPONENT_REQUIRED,
this);
}
String[] requestData = request.getData();
if ((requestData != null) && (requestData.length != 2)) {
throw new UiException(MZk.ILLEGAL_REQUEST_WRONG_DATA,
new Object[] { Objects.toString(requestData), this });
} else {
ta.doUpdatePosition(requestData[0], requestData[1]);
Events.postEvent(new Event(getId(), ta, request.getData()));
}
}
};
private static Command _updatewidthcmd = new ComponentCommand(
"onUpdateWidth", 0) {
protected void process(AuRequest request) {
final TaskComponent ta = (TaskComponent) request.getComponent();
if (ta == null) {
throw new UiException(MZk.ILLEGAL_REQUEST_COMPONENT_REQUIRED,
this);
}
String[] requestData = request.getData();
if ((requestData != null) && (requestData.length != 1)) {
throw new UiException(MZk.ILLEGAL_REQUEST_WRONG_DATA,
new Object[] { Objects.toString(requestData), this });
} else {
ta.doUpdateSize(requestData[0]);
Events.postEvent(new Event(getId(), ta, request.getData()));
}
}
};
private static Command _adddependencycmd = new ComponentCommand(
"onAddDependency", 0) {
protected void process(AuRequest request) {
final TaskComponent taskComponent = (TaskComponent) request.getComponent();
if (taskComponent == null) {
throw new UiException(MZk.ILLEGAL_REQUEST_COMPONENT_REQUIRED,
this);
}
String[] requestData = request.getData();
if ((requestData != null) && (requestData.length != 1)) {
throw new UiException(MZk.ILLEGAL_REQUEST_WRONG_DATA,
new Object[] { Objects.toString(requestData), this });
} else {
taskComponent.doAddDependency(requestData[0]);
Events.postEvent(new Event(getId(), taskComponent, request.getData()));
}
}
};
public static TaskComponent asTaskComponent(Task task, TaskList taskList,
boolean isTopLevel) {
final TaskComponent result;
if (task.isContainer()) {
result = TaskContainerComponent
.asTask((TaskContainer) task, taskList);
} else {
result = new TaskComponent(task);
}
result.isTopLevel = isTopLevel;
return result;
}
public static TaskComponent asTaskComponent(Task task, TaskList taskList) {
return asTaskComponent(task, taskList, true);
}
public TaskComponent(Task task) {
setHeight(HEIGHT_PER_TASK + "px");
setContext("idContextMenuTaskAssigment");
this.task = task;
setColor(STANDARD_TASK_COLOR);
setId(UUID.randomUUID().toString());
}
protected String calculateClass() {
return "box";
}
protected void updateClass() {
response(null, new AuInvoke(this, "setClass",
new Object[] { calculateClass() }));
}
public void afterCompose() {
updateProperties();
if (propertiesListener == null) {
propertiesListener = new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
if (isInPage()) {
updateProperties();
}
}
};
}
this.task
.addFundamentalPropertiesChangeListener(propertiesListener);
updateClass();
}
private String _color;
private List<WeakReference<DependencyAddedListener>> dependencyListeners = new LinkedList<WeakReference<DependencyAddedListener>>();
private boolean isTopLevel;
private final Task task;
private PropertyChangeListener propertiesListener;
public Task getTask() {
return task;
}
public String getTaskName() {
return task.getName();
}
public String getLength() {
return null;
}
public void addDependencyListener(DependencyAddedListener listener) {
dependencyListeners.add(new WeakReference<DependencyAddedListener>(
listener));
}
private void fireDependenceAdded(DependencyComponent dependencyComponent) {
ArrayList<DependencyAddedListener> active = new ArrayList<DependencyAddedListener>();
synchronized (this) {
ListIterator<WeakReference<DependencyAddedListener>> iterator = dependencyListeners
.listIterator();
while (iterator.hasNext()) {
WeakReference<DependencyAddedListener> next = iterator.next();
DependencyAddedListener listener = next.get();
if (listener == null) {
iterator.remove();
} else {
active.add(listener);
}
}
}
for (DependencyAddedListener listener : active) {
listener.dependenceAdded(dependencyComponent);
}
}
public Command getCommand(String cmdId) {
Command c = null;
if ("updatePosition".equals(cmdId))
c = _updatecmd;
else if ("updateSize".equals(cmdId))
c = _updatewidthcmd;
else if ("addDependency".equals(cmdId))
c = _adddependencycmd;
return c;
}
// Command action to do
void doUpdatePosition(String leftX, String topY) {
this.task.setBeginDate(getMapper().toDate(stripPx(leftX)));
}
void doUpdateSize(String size) {
int pixels = stripPx(size);
this.task.setLengthMilliseconds(getMapper().toMilliseconds(pixels));
}
void doAddDependency(String destinyTaskId) {
DependencyComponent dependencyComponent = new DependencyComponent(this,
((TaskComponent) getFellow(destinyTaskId)));
if (getPlanner().canAddDependency(dependencyComponent.getDependency())) {
fireDependenceAdded(dependencyComponent);
}
}
public String getColor() {
return _color;
}
public void setColor(String color) {
if ((color != null) && (color.length() == 0)) {
color = null;
}
if (!Objects.equals(_color, color)) {
_color = color;
}
}
/*
* We override the method of getRealStyle to put the color property as part
* of the style
*/
protected String getRealStyle() {
final StringBuffer sb = new StringBuffer(super.getRealStyle());
if (getColor() != null) {
HTMLs.appendStyle(sb, "background-color", getColor());
}
HTMLs.appendStyle(sb, "position", "absolute");
return sb.toString();
}
/*
* We send a response to the client to create the arrow we are going to use
* to create the dependency
*/
public void addDependency() {
response("depkey", new AuInvoke(this, "addDependency"));
}
private DatesMapper getMapper() {
return getTaskList().getMapper();
}
public TaskList getTaskList() {
return (TaskList) getParent();
}
public Planner getPlanner() {
return getTaskList().getPlanner();
}
@Override
public void setParent(Component parent) {
if (parent != null && !(parent instanceof TaskList))
throw new UiException("Unsupported parent for rows: " + parent);
super.setParent(parent);
}
public void zoomChanged() {
updateProperties();
}
private void updateProperties() {
setLeft("0");
setLeft(getMapper().toPixels(this.task.getBeginDate()) + "px");
setWidth("0");
setWidth(getMapper().toPixels(this.task.getLengthMilliseconds())
+ "px");
smartUpdate("name", this.task.getName());
DependencyList dependencyList = getDependencyList();
if (dependencyList != null) {
dependencyList.redrawDependenciesConnectedTo(this);
}
}
private DependencyList getDependencyList() {
return getPlanner().getDependencyList();
}
private boolean isInPage() {
return getParent() != null;
}
void publishTaskComponents(Map<Task, TaskComponent> resultAccumulated) {
resultAccumulated.put(getTask(), this);
publishDescendants(resultAccumulated);
}
protected void publishDescendants(Map<Task, TaskComponent> resultAccumulated) {
}
protected void remove() {
getDependencyList().taskRemoved(this.getTask());
this.detach();
}
public boolean isTopLevel() {
return isTopLevel;
}
}