ItEr11S07HistoriaLaboralTraballadorItEr10S07: Refactorization of edition and creation of worker history entries

Added delete and edit buttons to worker history list entries
Pending of a new approach to inisialization of empty criterionSatisfactions

Javier Moran Rua <jmoran@igalia.com>: Deleted comment lines
This commit is contained in:
Lorenzo Tilve 2009-06-03 12:31:44 +02:00 committed by Javier Moran Rua
parent dc9b8faa86
commit ef85e83794
12 changed files with 211 additions and 95 deletions

View file

@ -3,6 +3,9 @@ package org.navalplanner.business.resources.entities;
import java.util.Date;
import org.apache.commons.lang.Validate;
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.resources.daos.ICriterionSatisfactionDAO;
import org.springframework.beans.factory.annotation.Autowired;
/**
* Declares a interval of time in which the criterion is satisfied <br />
@ -15,6 +18,10 @@ public class CriterionSatisfaction {
@SuppressWarnings("unused")
private long version;
@Autowired
private ICriterionSatisfactionDAO criterionSatisfactionDAO;
/**
* Required by hibernate. Do not use directly
*/
@ -99,5 +106,4 @@ public class CriterionSatisfaction {
startDate = date;
}
}

View file

@ -20,7 +20,6 @@ import org.navalplanner.business.resources.daos.ResourcesDaoRegistry;
// child another simple resource, general methods like getChilds() do not make
// sense for simple entities, etc.). In consequence, I prefer the modeling
// option shown below.
/**
* This class acts as the base class for all resources.
* @author Fernando Bellas Permuy <fbellas@udc.es>
@ -28,9 +27,7 @@ import org.navalplanner.business.resources.daos.ResourcesDaoRegistry;
public abstract class Resource {
private Long id;
private long version;
private Set<CriterionSatisfaction> criterionSatisfactions = new HashSet<CriterionSatisfaction>();
public Long getId() {
@ -119,9 +116,7 @@ public abstract class Resource {
Collection<CriterionSatisfaction> satisfactionsFor = getSatisfactionsFor(criterionType);
ArrayList<CriterionSatisfaction> result = new ArrayList<CriterionSatisfaction>();
for (CriterionSatisfaction criterionSatisfaction : satisfactionsFor) {
if (end == null && criterionSatisfaction.isActiveAt(start)
|| end != null
&& criterionSatisfaction.isActiveIn(start, end)) {
if (end == null && criterionSatisfaction.isActiveAt(start) || end != null && criterionSatisfaction.isActiveIn(start, end)) {
result.add(criterionSatisfaction);
}
}
@ -184,8 +179,9 @@ public abstract class Resource {
CriterionSatisfaction newSatisfaction = new CriterionSatisfaction(
start, criterion, this);
criterionSatisfactions.add(newSatisfaction);
if (finish != null)
if (finish != null) {
newSatisfaction.finish(finish);
}
if (!type.allowMultipleActiveCriterionsPerResource()) {
for (CriterionSatisfaction criterionSatisfaction : getActiveSatisfactionsAt(
type, start)) {
@ -211,8 +207,9 @@ public abstract class Resource {
Set<CriterionSatisfaction> posterior) {
Date earliest = null;
for (CriterionSatisfaction criterionSatisfaction : posterior) {
if (earliest == null)
if (earliest == null) {
earliest = criterionSatisfaction.getStartDate();
}
earliest = Collections.min(Arrays.asList(earliest,
criterionSatisfaction.getStartDate()));
}
@ -222,16 +219,14 @@ public abstract class Resource {
private Set<CriterionSatisfaction> getSatisfactionsPosteriorTo(
ICriterionType<?> type, CriterionSatisfaction newSatisfaction) {
Date start = newSatisfaction.getStartDate();
Date finish = newSatisfaction.isFinished() ? newSatisfaction
.getEndDate() : null;
Date finish = newSatisfaction.isFinished() ? newSatisfaction.getEndDate() : null;
Set<CriterionSatisfaction> posterior = new HashSet<CriterionSatisfaction>();
if (finish != null) {
posterior.addAll(getActiveSatisfactionsAt(type, finish));
} else {
ArrayList<CriterionSatisfaction> result = new ArrayList<CriterionSatisfaction>();
for (CriterionSatisfaction satisfaction : getSatisfactionsFor(type)) {
if (!satisfaction.isFinished()
&& satisfaction.getStartDate().after(start)) {
if (!satisfaction.isFinished() && satisfaction.getStartDate().after(start)) {
result.add(satisfaction);
}
}
@ -242,8 +237,7 @@ public abstract class Resource {
}
public void deactivate(CriterionWithItsType criterionWithItsType) {
for (CriterionSatisfaction criterionSatisfaction : getActiveSatisfactionsFor(criterionWithItsType
.getCriterion())) {
for (CriterionSatisfaction criterionSatisfaction : getActiveSatisfactionsFor(criterionWithItsType.getCriterion())) {
criterionSatisfaction.finish(new Date());
}
}
@ -268,9 +262,13 @@ public abstract class Resource {
public boolean canBeActivated(CriterionWithItsType criterionWithItsType,
Date start, Date finish) {
ICriterionType<?> type = criterionWithItsType.getType();
return type.criterionCanBeRelatedTo(getClass())
&& (type.allowMultipleActiveCriterionsPerResource() || noneOf(
criterionWithItsType, start, finish));
return type.criterionCanBeRelatedTo(getClass()) && (type.allowMultipleActiveCriterionsPerResource() || noneOf(
criterionWithItsType, start, finish));
}
public void removeCriterionSatisfaction(CriterionSatisfaction satisfaction)
throws InstanceNotFoundException {
criterionSatisfactions.remove(satisfaction);
}
}

View file

@ -190,7 +190,7 @@ public class CriterionServiceImpl implements CriterionService {
@Override
public Criterion load(Criterion criterion) {
try {
return criterionDAO.find(criterion.getId());
return criterionDAO.find(criterion);
} catch (InstanceNotFoundException e) {
throw new RuntimeException(e);
}

View file

@ -1,13 +1,18 @@
package org.navalplanner.web.resources.worker;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.resources.entities.Criterion;
import org.navalplanner.business.resources.entities.CriterionSatisfaction;
import org.navalplanner.business.resources.entities.CriterionWithItsType;
@ -25,25 +30,32 @@ import org.zkoss.zul.Listbox;
public class WorkRelationshipsController extends GenericForwardComposer {
private IWorkerModel workerModel;
private WorkerCRUDController workerCRUDController;
private CriterionSatisfaction newRelationship = new CriterionSatisfaction();
/* private CriterionSatisfaction newRelationship = new CriterionSatisfaction(); */
private CriterionSatisfaction editRelationship = new CriterionSatisfaction();
private Collection<Criterion> workCriterions;
private Listbox selectedWorkCriterion;
private Datebox newWorkRelationshipStartDate;
private Datebox newWorkRelationshipEndDate;
/* private Datebox newWorkRelationshipStartDate;
private Datebox newWorkRelationshipEndDate; */
private HashMap<Criterion, CriterionWithItsType> fromCriterionToType;
public WorkRelationshipsController(IWorkerModel workerModel,
WorkerCRUDController workerCRUDController) {
this.workerModel = workerModel;
this.workerCRUDController = workerCRUDController;
this.newRelationship = new CriterionSatisfaction();
this.workCriterions = new ArrayList<Criterion>();
Map<ICriterionType<?>, Collection<Criterion>> map = workerModel
.getLaboralRelatedCriterions();
Map<ICriterionType<?>, Collection<Criterion>> map =
workerModel.getLaboralRelatedCriterions();
this.fromCriterionToType = new HashMap<Criterion, CriterionWithItsType>();
for (Entry<ICriterionType<?>, Collection<Criterion>> entry : map
.entrySet()) {
for (Entry<ICriterionType<?>, Collection<Criterion>> entry : map.entrySet()) {
this.workCriterions.addAll(entry.getValue());
for (Criterion criterion : entry.getValue()) {
this.fromCriterionToType.put(criterion,
@ -56,34 +68,64 @@ public class WorkRelationshipsController extends GenericForwardComposer {
if (this.workerCRUDController.getWorker() == null) {
return new HashSet<CriterionSatisfaction>();
} else {
// Obtain just workRelationshipSatisfactions
return workerModel
.getLaboralRelatedCriterionSatisfactions(this.workerCRUDController
.getWorker());
return workerModel.getLaboralRelatedCriterionSatisfactions(
this.workerCRUDController.getWorker());
}
}
public void addCriterionSatisfaction() {
public void deleteCriterionSatisfaction(CriterionSatisfaction satisfaction)
throws InstanceNotFoundException {
workerCRUDController.getWorker().removeCriterionSatisfaction(satisfaction);
this.workerCRUDController.goToEditForm();
}
Criterion selectedCriterion = (Criterion) selectedWorkCriterion
.getSelectedItem().getValue();
CriterionWithItsType criterionWithItsType = fromCriterionToType
.get(selectedCriterion);
if (newWorkRelationshipEndDate == null) {
public void setEditCriterionSatisfaction(CriterionSatisfaction crit) {
// the component should be preselected.
this.editRelationship = crit;
}
public void saveCriterionSatisfaction() throws InstanceNotFoundException {
// Add new criterion
Criterion selectedCriterion = (Criterion) selectedWorkCriterion.getSelectedItem().getValue();
CriterionWithItsType criterionWithItsType = fromCriterionToType.get(selectedCriterion);
System.out.println( "SAVE!!: " + selectedCriterion.getName() );
if (editRelationship.getStartDate() == null) {
this.workerCRUDController.getWorker().activate(
criterionWithItsType,
newWorkRelationshipStartDate.getValue());
editRelationship.getStartDate());
} else {
this.workerCRUDController.getWorker().activate(
criterionWithItsType,
newWorkRelationshipStartDate.getValue(),
newWorkRelationshipEndDate.getValue());
editRelationship.getStartDate(),
editRelationship.getEndDate());
}
this.workerCRUDController
.goToWorkRelationshipsForm(this.workerCRUDController
.getWorker());
// Delete the former one
workerCRUDController.getWorker().
removeCriterionSatisfaction(this.editRelationship);
this.workerCRUDController.goToEditForm();
}
public void addCriterionSatisfaction() {
Criterion selectedCriterion = (Criterion) selectedWorkCriterion.getSelectedItem().getValue();
CriterionWithItsType criterionWithItsType = fromCriterionToType.get(selectedCriterion);
// never accessed: Unnecesary as edition does this.
System.out.println( "SELECTED: " + criterionWithItsType.toString() );
if (editRelationship.getStartDate() == null) {
this.workerCRUDController.getWorker().activate(
criterionWithItsType,
editRelationship.getStartDate());
} else {
this.workerCRUDController.getWorker().activate(
criterionWithItsType,
editRelationship.getStartDate(),
editRelationship.getEndDate());
}
this.workerCRUDController.goToEditForm();
}
@Override
@ -92,8 +134,8 @@ public class WorkRelationshipsController extends GenericForwardComposer {
this.selectedWorkCriterion.setSelectedIndex(0);
}
public CriterionSatisfaction getNewRelationship() {
return this.newRelationship;
public CriterionSatisfaction getEditRelationship() {
return this.editRelationship;
}
public Collection<Criterion> getWorkCriterions() {

View file

@ -1,10 +1,18 @@
package org.navalplanner.web.resources.worker;
import java.util.Date;
import java.util.List;
import org.hibernate.validator.InvalidValue;
import org.navalplanner.business.common.exceptions.ValidationException;
import org.navalplanner.business.resources.entities.Criterion;
import org.navalplanner.business.resources.entities.CriterionSatisfaction;
import org.navalplanner.business.resources.entities.CriterionTypeBase;
import org.navalplanner.business.resources.entities.CriterionWithItsType;
import org.navalplanner.business.resources.entities.PredefinedCriterionTypes;
import org.navalplanner.business.resources.entities.Worker;
import org.navalplanner.business.resources.entities.WorkingRelationship;
import org.navalplanner.business.resources.services.CriterionService;
import org.navalplanner.web.common.IMessagesForUser;
import org.navalplanner.web.common.IRedirectorRegistry;
import org.navalplanner.web.common.Level;
@ -33,6 +41,8 @@ public class WorkerCRUDController extends GenericForwardComposer implements
private Window addWorkRelationshipWindow;
private Window editWorkRelationshipWindow;
private IWorkerModel workerModel;
private IRedirectorRegistry redirectorRegistry;
@ -43,24 +53,27 @@ public class WorkerCRUDController extends GenericForwardComposer implements
private Component messagesContainer;
private GenericForwardComposer workRelationship;
private WorkRelationshipsController workRelationship;
private LocalizationsController localizationsForEditionController;
private LocalizationsController localizationsForCreationController;
private CriterionService criterionService;
public WorkerCRUDController() {
}
public WorkerCRUDController(Window createWindow, Window listWindow,
Window editWindow, Window workRelationshipsWindow,
Window addWorkRelationshipWindow,
Window addWorkRelationshipWindow, Window editWorkRelationshipWindow,
IWorkerModel workerModel, IMessagesForUser messages) {
this.createWindow = createWindow;
this.listWindow = listWindow;
this.editWindow = editWindow;
this.workRelationshipsWindow = workRelationshipsWindow;
this.addWorkRelationshipWindow = addWorkRelationshipWindow;
this.editWorkRelationshipWindow = editWorkRelationshipWindow;
this.workerModel = workerModel;
this.messages = messages;
}
@ -118,8 +131,24 @@ public class WorkerCRUDController extends GenericForwardComposer implements
}
public void goToAddWorkRelationshipForm() {
Criterion selectedCriterion = criterionService.load(
WorkingRelationship.HIRED.criterion());
CriterionWithItsType criteriontype = new CriterionWithItsType(
PredefinedCriterionTypes.WORK_RELATIONSHIP, selectedCriterion);
this.workerModel.getWorker().activate(criteriontype,new Date());
/* CriterionSatisfaction newSatisfaction =
new CriterionSatisfaction(
new Date(),
selectedCriterion,
this.workerModel.getWorker()); */
CriterionSatisfaction newSatisfaction =
this.workerModel.getWorker().
getActiveSatisfactionsFor(selectedCriterion).iterator().next();
this.workRelationship.setEditCriterionSatisfaction(newSatisfaction);
getVisibility().showOnly(addWorkRelationshipWindow);
Util.reloadBindings(addWorkRelationshipWindow);
// getVisibility().showOnly(editWorkRelationshipWindow);
// Util.reloadBindings(editWorkRelationshipWindow);
}
public void goToCreateForm() {
@ -128,6 +157,12 @@ public class WorkerCRUDController extends GenericForwardComposer implements
Util.reloadBindings(createWindow);
}
public void goToEditWorkRelationshipForm(CriterionSatisfaction satisfaction) {
this.workRelationship.setEditCriterionSatisfaction(satisfaction);
getVisibility().showOnly(editWorkRelationshipWindow);
Util.reloadBindings(editWorkRelationshipWindow);
}
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
@ -163,7 +198,7 @@ public class WorkerCRUDController extends GenericForwardComposer implements
if (visibility == null) {
visibility = new OnlyOneVisible(listWindow, editWindow,
createWindow, workRelationshipsWindow,
addWorkRelationshipWindow );
addWorkRelationshipWindow, editWorkRelationshipWindow );
}
return visibility;
}

View file

@ -1,7 +1,10 @@
package org.navalplanner.web.workorders;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Treecell;
import org.zkoss.zul.Treeitem;
import org.zkoss.zul.Treerow;
/**
* Controller for {@link WorkOrganization} view of WorkOrder entitites <br />
@ -12,4 +15,16 @@ public class WorkOrganizationController extends GenericForwardComposer {
public WorkOrganizationController() {
}
}
public void move(Component self, Component dragged) {
Treeitem elem = new Treeitem("Elemento");
//elem.appendChild(dragged);
self.appendChild(elem);
}
@Override
public void doAfterCompose(Component comp) throws Exception {
comp.setVariable("controller", this, true);
}
}

View file

@ -1,6 +1,6 @@
<window id="${arg.top_id}" title="${arg.title}"
apply="${controller.workRelationshipsController}">
<grid id="history">
<grid id="edit">
<columns>
<column label="Date start"/>
<column label="Date end"/>
@ -8,10 +8,10 @@
</columns>
<rows>
<row>
<datebox id="newWorkRelationshipStartDate" width="150px" />
<!-- value="@{controller.workRelationship.newRelationship.startDate}" -->
<datebox id="newWorkRelationshipEndDate" width="150px" />
<!-- value="@{controller.workRelationship.newRelationship.endDate}" -->
<datebox id="editWorkRelationshipStartDate" width="180px"
value="@{controller.workRelationship.editRelationship.startDate}" />
<datebox id="editWorkRelationshipEndDate" width="180px"
value="@{controller.workRelationship.editRelationship.endDate}" />
<listbox onSelect="" mold="select" rows="1" id="selectedWorkCriterion"
model="@{controller.workRelationship.workCriterions}">
<listitem self="@{each='workCriterion'}"
@ -21,8 +21,8 @@
</row>
</rows>
</grid>
<button onClick="controller.workRelationship.addCriterionSatisfaction();"
label="Add Work Relationship" />
<button onClick="controller.goToWorkRelationshipsForm()"
<button onClick="controller.workRelationship.saveCriterionSatisfaction();"
label="Save Work Relationship" />
<button onClick="controller.goToEditForm()"
label="Cancel and back to Work Relationships"/>
</window>

View file

@ -1,9 +1,11 @@
<?component name="localizations" inline="true" macroURI="_localizations.zul"?>
<?component name="workRelationships" inline="true" macroURI="_workRelationships.zul"?>
<window id="${arg.top_id}" title="${arg.title}">
<tabbox>
<tabs>
<tab label="Edición"></tab>
<tab label="Localizacións"></tab>
<tab label="Historial Laboral"></tab>
</tabs>
<tabpanels>
<tabpanel>
@ -38,13 +40,15 @@
<tabpanel>
<localizations />
</tabpanel>
<tabpanel>
<workRelationships top_id="workRelationshipsWindow"
title="Work Relationships" save_button_label="Save"
cancel_button_label="Cancel" />
</tabpanel>
</tabpanels>
</tabbox>
<button onClick="controller.save();"
label="${arg.save_button_label}" />
<button onClick="controller.cancel();"
label="${arg.cancel_button_label}" />
<button label="Work Relationships"
onClick="controller.goToWorkRelationshipsForm(controller.worker)">
</button>
</window>

View file

@ -1,30 +1,34 @@
<window id="${arg.top_id}" title="${arg.title}"
<window id="${arg.top_id}"
apply="${controller.workRelationshipsController}">
<grid id="history"
model="@{controller.workRelationship.criterionSatisfactions}"
mold="paging" pageSize="5">
<columns>
<column label="Date start"/>
<column label="Date end"/>
<column label="Date start" width="150px"/>
<column label="Date end" width="150px"/>
<column label="Relationship"/>
<column label="Operations"/>
</columns>
<rows>
<row self="@{each='criterionSatisfaction'}"
value="@{criterionSatisfaction}">
<datebox id="date_start"
<label id="date_start"
value="@{criterionSatisfaction.startDate}" width="150px" />
<!--onChange="controller.goToValidation" -->
<datebox id="date_end"
<label id="date_end"
value="@{criterionSatisfaction.endDate}" width="150px" />
<label value="@{criterionSatisfaction.criterion.name}" />
<hbox>
<button label="Editar"
onClick="controller.goToEditWorkRelationshipForm(
self.getParent().getParent().value);">
</button>
<button label="Borrar"
onClick="controller.workRelationship.deleteCriterionSatisfaction(self.getParent().getParent().value);">
</button>
</hbox>
</row>
</rows>
</grid>
<button onClick="controller.save();" label="${arg.save_button_label}" />
<button onClick="controller.cancel();" label="${arg.cancel_button_label}" />
<button label="Edit personal data"
onClick="controller.goToEditForm()">
</button>
<button label="New entry"
onClick="controller.goToAddWorkRelationshipForm()">
</button>

View file

@ -8,7 +8,8 @@
<?component name="list" inline="true" macroURI="_list.zul"?>
<?component name="edition" inline="true" macroURI="_edition.zul"?>
<?component name="workRelationships" inline="true" macroURI="_workRelationships.zul"?>
<?component name="addWorkRelationship" inline="true" macroURI="_addWorkRelationship.zul"?>
<!--?component name="addWorkRelationship" inline="true" macroURI="_addWorkRelationship.zul"?-->
<?component name="editWorkRelationship" inline="true" macroURI="_editWorkRelationship.zul"?>
<zk>
<window self="@{define(content)}"
apply="org.navalplanner.web.resources.worker.WorkerCRUDController"
@ -22,7 +23,14 @@
save_button_label="Save" cancel_button_label="Cancel" />
<workRelationships top_id="workRelationshipsWindow" title="Work Relationships"
save_button_label="Save" cancel_button_label="Cancel" />
<addWorkRelationship top_id="addWorkRelationshipWindow" title="Add Work Relationship"
save_button_label="Save" cancel_button_label="Cancel" />
<!--addWorkRelationship top_id="addWorkRelationshipWindow" title="Add Work Relationship"
save_button_label="Save" cancel_button_label="Cancel" /-->
<editWorkRelationship top_id="editWorkRelationshipWindow" title="Edit Work Relationship"
save_button_label="Save" cancel_button_label="Cancel"
add_button_label="Edit"/>
<editWorkRelationship top_id="addWorkRelationshipWindow" title="Add Work Relationship"
save_button_label="Save" cancel_button_label="Cancel"
add_button_label="Add"/>
</window>
</zk>

View file

@ -8,15 +8,15 @@
<zk>
<window self="@{define(content)}"
apply="org.navalplanner.web.workorders.WorkOrganizationController">
<tree id="tree" width="600px" rows="8" multiple="true" >
<tree id="tree" width="600px" rows="8" multiple="true"
droppable="true" onDrop="controller.move(self, event.dragged)">
<treecols sizable="true">
<treecol label="Name" />
<treecol label="Description" />
</treecols>
<treechildren>
<treeitem>
<treerow draggable="true" droppable="true">
<treerow draggable="true">
<treecell label=" Task 1 ">
<textbox value="Task 1 Name" width="230px"/>
</treecell>
@ -26,15 +26,15 @@
</treerow>
</treeitem>
<treeitem>
<treerow draggable="true" droppable="true">
<treerow draggable="true">
<treecell label=" Task 2 " >
<textbox value="Task 2 Name" width="230px"/>
</treecell>
<treecell>(calculated) hours </treecell>
<treecell>--- hours </treecell>
</treerow>
<treechildren>
<treeitem>
<treerow draggable="true" droppable="true">
<treerow draggable="true">
<treecell label="Task 2.1 " >
<textbox value="Task 1 Name" width="200px"/>
</treecell>
@ -48,29 +48,30 @@
</treerow>
</treeitem>
<treeitem>
<treerow draggable="true" droppable="true">
<treerow draggable="true">
<treecell label="Item 2.1.2" />
</treerow>
</treeitem>
</treechildren>
</treeitem>
<treeitem>
<treerow draggable="true" droppable="true">
<treerow draggable="true">
<treecell label="Item 2.2" />
</treerow>
<treechildren>
<treeitem>
<treerow draggable="true" droppable="true">
<treecell label="Item 2.2.1" />
</treerow>
</treeitem>
</treechildren>
</treeitem>
</treechildren>
</treeitem>
<treeitem label="Item 3" />
</treechildren>
</tree>
</window>
<!--zscript>
void move(Component dragged) {
if (self instanceof Treerow) {
self.parent.insertBefore(dragged, self.getNextSibling() );
} else {
self.appendChild(dragged);
}
}
</zscript-->
</zk>

View file

@ -32,6 +32,7 @@ public class WorkerCRUDControllerTest {
private Window editWindow;
private Window workRelationshipsWindow;
private Window addWorkRelationshipWindow;
private Window editWorkRelationshipWindow;
private WorkerCRUDController createControllerForModel(
IWorkerModel workerModel) {
return createControllerForModel(workerModel, null);
@ -44,10 +45,11 @@ public class WorkerCRUDControllerTest {
editWindow = createNiceMock(Window.class);
workRelationshipsWindow = createNiceMock(Window.class);
addWorkRelationshipWindow = createNiceMock(Window.class);
editWorkRelationshipWindow = createNiceMock(Window.class);
WorkerCRUDController workerCRUDController = new WorkerCRUDController(
createWindow, listWindow, editWindow, workRelationshipsWindow,
addWorkRelationshipWindow, workerModel, messages);
addWorkRelationshipWindow, editWorkRelationshipWindow ,workerModel, messages);
return workerCRUDController;
}
@ -62,7 +64,7 @@ public class WorkerCRUDControllerTest {
WorkerCRUDController workerCRUDController = createControllerForModel(
workerModel, messagesForUser);
replay(createWindow, listWindow, editWindow, workRelationshipsWindow,
addWorkRelationshipWindow);
addWorkRelationshipWindow, editWorkRelationshipWindow);
// expectations
workerModel.prepareForCreate();
expect(workerModel.getWorker()).andReturn(workerToReturn).anyTimes();
@ -93,7 +95,7 @@ public class WorkerCRUDControllerTest {
expect(workRelationshipsWindow.setVisible(true)).andReturn(false);
expect(addWorkRelationshipWindow.setVisible(true)).andReturn(false);
replay(createWindow, listWindow, editWindow, workRelationshipsWindow,
addWorkRelationshipWindow, workerModel);
addWorkRelationshipWindow, editWorkRelationshipWindow, workerModel);
// actions
workerCRUDController.goToCreateForm();
workerCRUDController.cancel();
@ -119,7 +121,8 @@ public class WorkerCRUDControllerTest {
workerModel.save();
messagesForUser.showMessage(same(Level.INFO), isA(String.class));
replay(createWindow, listWindow, editWindow, workRelationshipsWindow,
addWorkRelationshipWindow, workerModel, messagesForUser);
addWorkRelationshipWindow, editWorkRelationshipWindow,
workerModel, messagesForUser);
// perform actions
List<Worker> workers = workerCRUDController.getWorkers();
assertEquals(workersToReturn, workers);