diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionSatisfaction.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionSatisfaction.java
index 0ed4278be..40ab932f9 100644
--- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionSatisfaction.java
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionSatisfaction.java
@@ -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
@@ -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;
}
-
}
diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java
index 993bb1758..0b2735645 100644
--- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java
@@ -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
@@ -28,9 +27,7 @@ import org.navalplanner.business.resources.daos.ResourcesDaoRegistry;
public abstract class Resource {
private Long id;
-
private long version;
-
private Set criterionSatisfactions = new HashSet();
public Long getId() {
@@ -119,9 +116,7 @@ public abstract class Resource {
Collection satisfactionsFor = getSatisfactionsFor(criterionType);
ArrayList result = new ArrayList();
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 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 getSatisfactionsPosteriorTo(
ICriterionType> type, CriterionSatisfaction newSatisfaction) {
Date start = newSatisfaction.getStartDate();
- Date finish = newSatisfaction.isFinished() ? newSatisfaction
- .getEndDate() : null;
+ Date finish = newSatisfaction.isFinished() ? newSatisfaction.getEndDate() : null;
Set posterior = new HashSet();
if (finish != null) {
posterior.addAll(getActiveSatisfactionsAt(type, finish));
} else {
ArrayList result = new ArrayList();
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);
}
}
diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/services/impl/CriterionServiceImpl.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/services/impl/CriterionServiceImpl.java
index 3b232c708..a0e0f8794 100644
--- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/services/impl/CriterionServiceImpl.java
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/services/impl/CriterionServiceImpl.java
@@ -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);
}
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkRelationshipsController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkRelationshipsController.java
index 61302a13e..a1b7f8f40 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkRelationshipsController.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkRelationshipsController.java
@@ -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 workCriterions;
+
private Listbox selectedWorkCriterion;
- private Datebox newWorkRelationshipStartDate;
- private Datebox newWorkRelationshipEndDate;
+
+/* private Datebox newWorkRelationshipStartDate;
+
+ private Datebox newWorkRelationshipEndDate; */
+
private HashMap fromCriterionToType;
public WorkRelationshipsController(IWorkerModel workerModel,
WorkerCRUDController workerCRUDController) {
this.workerModel = workerModel;
this.workerCRUDController = workerCRUDController;
- this.newRelationship = new CriterionSatisfaction();
this.workCriterions = new ArrayList();
- Map, Collection> map = workerModel
- .getLaboralRelatedCriterions();
+ Map, Collection> map =
+ workerModel.getLaboralRelatedCriterions();
this.fromCriterionToType = new HashMap();
- for (Entry, Collection> entry : map
- .entrySet()) {
+ for (Entry, Collection> 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();
} 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 getWorkCriterions() {
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerCRUDController.java
index 8f583b04b..5839fefa2 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerCRUDController.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerCRUDController.java
@@ -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;
}
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/workorders/WorkOrganizationController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/workorders/WorkOrganizationController.java
index c08de5981..cd89eb48b 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/workorders/WorkOrganizationController.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/workorders/WorkOrganizationController.java
@@ -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
@@ -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);
+ }
+
+}
\ No newline at end of file
diff --git a/navalplanner-webapp/src/main/webapp/resources/worker/_addWorkRelationship.zul b/navalplanner-webapp/src/main/webapp/resources/worker/_editWorkRelationship.zul
similarity index 57%
rename from navalplanner-webapp/src/main/webapp/resources/worker/_addWorkRelationship.zul
rename to navalplanner-webapp/src/main/webapp/resources/worker/_editWorkRelationship.zul
index ddfa9b78e..71bfa62d4 100644
--- a/navalplanner-webapp/src/main/webapp/resources/worker/_addWorkRelationship.zul
+++ b/navalplanner-webapp/src/main/webapp/resources/worker/_editWorkRelationship.zul
@@ -1,6 +1,6 @@
-
+
@@ -8,10 +8,10 @@
-
-
-
-
+
+
-
-
+
\ No newline at end of file
diff --git a/navalplanner-webapp/src/main/webapp/resources/worker/_edition.zul b/navalplanner-webapp/src/main/webapp/resources/worker/_edition.zul
index b07dbbd14..3e519a803 100644
--- a/navalplanner-webapp/src/main/webapp/resources/worker/_edition.zul
+++ b/navalplanner-webapp/src/main/webapp/resources/worker/_edition.zul
@@ -1,9 +1,11 @@
+
+
@@ -38,13 +40,15 @@
+
+
+
-
diff --git a/navalplanner-webapp/src/main/webapp/resources/worker/_workRelationships.zul b/navalplanner-webapp/src/main/webapp/resources/worker/_workRelationships.zul
index 792622a77..5b967acf0 100644
--- a/navalplanner-webapp/src/main/webapp/resources/worker/_workRelationships.zul
+++ b/navalplanner-webapp/src/main/webapp/resources/worker/_workRelationships.zul
@@ -1,30 +1,34 @@
-
-
-
+
+
+
-
-
-
+
+
+
+
-
-
-
diff --git a/navalplanner-webapp/src/main/webapp/resources/worker/worker.zul b/navalplanner-webapp/src/main/webapp/resources/worker/worker.zul
index 0d6e200e4..97b29da1b 100644
--- a/navalplanner-webapp/src/main/webapp/resources/worker/worker.zul
+++ b/navalplanner-webapp/src/main/webapp/resources/worker/worker.zul
@@ -8,7 +8,8 @@
-
+
+
-
+
+
+
+
diff --git a/navalplanner-webapp/src/main/webapp/workorders/workorganization.zul b/navalplanner-webapp/src/main/webapp/workorders/workorganization.zul
index 20e38712a..246bcf991 100644
--- a/navalplanner-webapp/src/main/webapp/workorders/workorganization.zul
+++ b/navalplanner-webapp/src/main/webapp/workorders/workorganization.zul
@@ -8,15 +8,15 @@
-
-
+
-
+
@@ -26,15 +26,15 @@
-
+
- (calculated) hours
+ --- hours
-
+
@@ -48,29 +48,30 @@
-
+
-
+
-
-
-
-
-
-
-
-
+
diff --git a/navalplanner-webapp/src/test/java/org/navalplanner/web/resources/WorkerCRUDControllerTest.java b/navalplanner-webapp/src/test/java/org/navalplanner/web/resources/WorkerCRUDControllerTest.java
index d26d2c142..c21dff6fe 100644
--- a/navalplanner-webapp/src/test/java/org/navalplanner/web/resources/WorkerCRUDControllerTest.java
+++ b/navalplanner-webapp/src/test/java/org/navalplanner/web/resources/WorkerCRUDControllerTest.java
@@ -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 workers = workerCRUDController.getWorkers();
assertEquals(workersToReturn, workers);