ItEr09S08HistoriaLaboralTraballadorItEr08S11: Creation of new work relationships entries
This commit is contained in:
parent
cb6527aa99
commit
dc9b8faa86
12 changed files with 195 additions and 20 deletions
|
|
@ -11,6 +11,8 @@ import org.navalplanner.business.resources.entities.Criterion;
|
||||||
*/
|
*/
|
||||||
public interface ICriterionDAO extends IGenericDao<Criterion, Long> {
|
public interface ICriterionDAO extends IGenericDao<Criterion, Long> {
|
||||||
|
|
||||||
|
public void removeByNameAndType(Criterion criterion);
|
||||||
|
|
||||||
Criterion findByNameAndType(Criterion criterion);
|
Criterion findByNameAndType(Criterion criterion);
|
||||||
|
|
||||||
boolean existsByNameAndType(Criterion entity);
|
boolean existsByNameAndType(Criterion entity);
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package org.navalplanner.business.resources.daos.impl;
|
package org.navalplanner.business.resources.daos.impl;
|
||||||
|
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
import org.hibernate.criterion.Restrictions;
|
import org.hibernate.criterion.Restrictions;
|
||||||
import org.navalplanner.business.common.daos.impl.GenericDaoHibernate;
|
import org.navalplanner.business.common.daos.impl.GenericDaoHibernate;
|
||||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||||
|
|
@ -34,4 +36,14 @@ public class CriterionDAO extends GenericDaoHibernate<Criterion, Long>
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeByNameAndType(Criterion criterion) {
|
||||||
|
Criterion reloaded = findByNameAndType(criterion);
|
||||||
|
try {
|
||||||
|
remove(reloaded.getId());
|
||||||
|
} catch (InstanceNotFoundException ex) {
|
||||||
|
throw new RuntimeException(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ public class CriterionSatisfaction {
|
||||||
private Resource resource;
|
private Resource resource;
|
||||||
|
|
||||||
public Date getStartDate() {
|
public Date getStartDate() {
|
||||||
return new Date(startDate.getTime());
|
return startDate==null ? null: new Date(startDate.getTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getEndDate() {
|
public Date getEndDate() {
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,11 @@ public class CriterionServiceImpl implements CriterionService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void remove(Criterion criterion) throws InstanceNotFoundException {
|
public void remove(Criterion criterion) throws InstanceNotFoundException {
|
||||||
|
if (criterion.getId() != null ) {
|
||||||
criterionDAO.remove(criterion.getId());
|
criterionDAO.remove(criterion.getId());
|
||||||
|
} else {
|
||||||
|
criterionDAO.removeByNameAndType(criterion);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void save(Criterion entity) {
|
public void save(Criterion entity) {
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,14 @@
|
||||||
package org.navalplanner.web.resources.worker;
|
package org.navalplanner.web.resources.worker;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
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.CriterionSatisfaction;
|
||||||
|
import org.navalplanner.business.resources.entities.ICriterionType;
|
||||||
import org.navalplanner.business.resources.entities.Worker;
|
import org.navalplanner.business.resources.entities.Worker;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -31,4 +35,9 @@ public interface IWorkerModel {
|
||||||
|
|
||||||
Worker findResource(long workerId);
|
Worker findResource(long workerId);
|
||||||
|
|
||||||
|
Map<ICriterionType<?>, Collection<Criterion>> getLaboralRelatedCriterions();
|
||||||
|
|
||||||
|
Set<CriterionSatisfaction> getLaboralRelatedCriterionSatisfactions(
|
||||||
|
Worker worker);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,11 +1,22 @@
|
||||||
package org.navalplanner.web.resources.worker;
|
package org.navalplanner.web.resources.worker;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
import org.navalplanner.business.resources.entities.Criterion;
|
||||||
import org.navalplanner.business.resources.entities.CriterionSatisfaction;
|
import org.navalplanner.business.resources.entities.CriterionSatisfaction;
|
||||||
|
import org.navalplanner.business.resources.entities.CriterionWithItsType;
|
||||||
|
import org.navalplanner.business.resources.entities.ICriterionType;
|
||||||
import org.navalplanner.business.resources.entities.Worker;
|
import org.navalplanner.business.resources.entities.Worker;
|
||||||
|
import org.zkoss.zk.ui.Component;
|
||||||
import org.zkoss.zk.ui.util.GenericForwardComposer;
|
import org.zkoss.zk.ui.util.GenericForwardComposer;
|
||||||
|
import org.zkoss.zul.Datebox;
|
||||||
|
import org.zkoss.zul.Listbox;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Subcontroller for {@link Worker} resource <br />
|
* Subcontroller for {@link Worker} resource <br />
|
||||||
|
|
@ -15,20 +26,78 @@ public class WorkRelationshipsController extends GenericForwardComposer {
|
||||||
|
|
||||||
private IWorkerModel workerModel;
|
private IWorkerModel workerModel;
|
||||||
private WorkerCRUDController workerCRUDController;
|
private WorkerCRUDController workerCRUDController;
|
||||||
|
private CriterionSatisfaction newRelationship = new CriterionSatisfaction();
|
||||||
|
private Collection<Criterion> workCriterions;
|
||||||
|
private Listbox selectedWorkCriterion;
|
||||||
|
private Datebox newWorkRelationshipStartDate;
|
||||||
|
private Datebox newWorkRelationshipEndDate;
|
||||||
|
private HashMap<Criterion, CriterionWithItsType> fromCriterionToType;
|
||||||
|
|
||||||
public WorkRelationshipsController(IWorkerModel workerModel,
|
public WorkRelationshipsController(IWorkerModel workerModel,
|
||||||
WorkerCRUDController workerCRUDController) {
|
WorkerCRUDController workerCRUDController) {
|
||||||
this.workerModel = workerModel;
|
this.workerModel = workerModel;
|
||||||
this.workerCRUDController = workerCRUDController;
|
this.workerCRUDController = workerCRUDController;
|
||||||
|
this.newRelationship = new CriterionSatisfaction();
|
||||||
|
this.workCriterions = new ArrayList<Criterion>();
|
||||||
|
Map<ICriterionType<?>, Collection<Criterion>> map = workerModel
|
||||||
|
.getLaboralRelatedCriterions();
|
||||||
|
this.fromCriterionToType = new HashMap<Criterion, CriterionWithItsType>();
|
||||||
|
for (Entry<ICriterionType<?>, Collection<Criterion>> entry : map
|
||||||
|
.entrySet()) {
|
||||||
|
this.workCriterions.addAll(entry.getValue());
|
||||||
|
for (Criterion criterion : entry.getValue()) {
|
||||||
|
this.fromCriterionToType.put(criterion,
|
||||||
|
new CriterionWithItsType(entry.getKey(), criterion));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<CriterionSatisfaction> getCriterionSatisfactions() {
|
public Set<CriterionSatisfaction> getCriterionSatisfactions() {
|
||||||
if (this.workerCRUDController.getWorker() == null) {
|
if (this.workerCRUDController.getWorker() == null) {
|
||||||
return new HashSet();
|
return new HashSet<CriterionSatisfaction>();
|
||||||
} else {
|
} else {
|
||||||
|
// Obtain just workRelationshipSatisfactions
|
||||||
return workerModel
|
return workerModel
|
||||||
.getCriterionSatisfactions(this.workerCRUDController
|
.getLaboralRelatedCriterionSatisfactions(this.workerCRUDController
|
||||||
.getWorker());
|
.getWorker());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addCriterionSatisfaction() {
|
||||||
|
|
||||||
|
Criterion selectedCriterion = (Criterion) selectedWorkCriterion
|
||||||
|
.getSelectedItem().getValue();
|
||||||
|
CriterionWithItsType criterionWithItsType = fromCriterionToType
|
||||||
|
.get(selectedCriterion);
|
||||||
|
if (newWorkRelationshipEndDate == null) {
|
||||||
|
this.workerCRUDController.getWorker().activate(
|
||||||
|
criterionWithItsType,
|
||||||
|
newWorkRelationshipStartDate.getValue());
|
||||||
|
} else {
|
||||||
|
this.workerCRUDController.getWorker().activate(
|
||||||
|
criterionWithItsType,
|
||||||
|
newWorkRelationshipStartDate.getValue(),
|
||||||
|
newWorkRelationshipEndDate.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
this.workerCRUDController
|
||||||
|
.goToWorkRelationshipsForm(this.workerCRUDController
|
||||||
|
.getWorker());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doAfterCompose(Component comp) throws Exception {
|
||||||
|
super.doAfterCompose(comp);
|
||||||
|
this.selectedWorkCriterion.setSelectedIndex(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CriterionSatisfaction getNewRelationship() {
|
||||||
|
return this.newRelationship;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Collection<Criterion> getWorkCriterions() {
|
||||||
|
return this.workCriterions;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,8 @@ public class WorkerCRUDController extends GenericForwardComposer implements
|
||||||
|
|
||||||
private Window workRelationshipsWindow;
|
private Window workRelationshipsWindow;
|
||||||
|
|
||||||
|
private Window addWorkRelationshipWindow;
|
||||||
|
|
||||||
private IWorkerModel workerModel;
|
private IWorkerModel workerModel;
|
||||||
|
|
||||||
private IRedirectorRegistry redirectorRegistry;
|
private IRedirectorRegistry redirectorRegistry;
|
||||||
|
|
@ -52,11 +54,13 @@ public class WorkerCRUDController extends GenericForwardComposer implements
|
||||||
|
|
||||||
public WorkerCRUDController(Window createWindow, Window listWindow,
|
public WorkerCRUDController(Window createWindow, Window listWindow,
|
||||||
Window editWindow, Window workRelationshipsWindow,
|
Window editWindow, Window workRelationshipsWindow,
|
||||||
|
Window addWorkRelationshipWindow,
|
||||||
IWorkerModel workerModel, IMessagesForUser messages) {
|
IWorkerModel workerModel, IMessagesForUser messages) {
|
||||||
this.createWindow = createWindow;
|
this.createWindow = createWindow;
|
||||||
this.listWindow = listWindow;
|
this.listWindow = listWindow;
|
||||||
this.editWindow = editWindow;
|
this.editWindow = editWindow;
|
||||||
this.workRelationshipsWindow = workRelationshipsWindow;
|
this.workRelationshipsWindow = workRelationshipsWindow;
|
||||||
|
this.addWorkRelationshipWindow = addWorkRelationshipWindow;
|
||||||
this.workerModel = workerModel;
|
this.workerModel = workerModel;
|
||||||
this.messages = messages;
|
this.messages = messages;
|
||||||
}
|
}
|
||||||
|
|
@ -98,18 +102,30 @@ public class WorkerCRUDController extends GenericForwardComposer implements
|
||||||
Util.reloadBindings(editWindow);
|
Util.reloadBindings(editWindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void goToEditForm() {
|
||||||
|
getVisibility().showOnly(editWindow);
|
||||||
|
Util.reloadBindings(editWindow);
|
||||||
|
}
|
||||||
|
|
||||||
public void goToWorkRelationshipsForm(Worker worker) {
|
public void goToWorkRelationshipsForm(Worker worker) {
|
||||||
getVisibility().showOnly(workRelationshipsWindow);
|
getVisibility().showOnly(workRelationshipsWindow);
|
||||||
Util.reloadBindings(workRelationshipsWindow);
|
Util.reloadBindings(workRelationshipsWindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void goToWorkRelationshipsForm() {
|
||||||
|
getVisibility().showOnly(workRelationshipsWindow);
|
||||||
|
Util.reloadBindings(workRelationshipsWindow);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void goToAddWorkRelationshipForm() {
|
||||||
|
getVisibility().showOnly(addWorkRelationshipWindow);
|
||||||
|
Util.reloadBindings(addWorkRelationshipWindow);
|
||||||
|
}
|
||||||
|
|
||||||
public void goToCreateForm() {
|
public void goToCreateForm() {
|
||||||
workerModel.prepareForCreate();
|
workerModel.prepareForCreate();
|
||||||
getVisibility().showOnly(createWindow);
|
getVisibility().showOnly(createWindow);
|
||||||
Util.reloadBindings(createWindow);
|
Util.reloadBindings(createWindow);
|
||||||
this.workRelationship = new WorkRelationshipsController(
|
|
||||||
this.workerModel, this);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -124,6 +140,10 @@ public class WorkerCRUDController extends GenericForwardComposer implements
|
||||||
if (messagesContainer == null)
|
if (messagesContainer == null)
|
||||||
throw new RuntimeException("messagesContainer is needed");
|
throw new RuntimeException("messagesContainer is needed");
|
||||||
messages = new MessagesForUser(messagesContainer);
|
messages = new MessagesForUser(messagesContainer);
|
||||||
|
this.workRelationship =
|
||||||
|
new WorkRelationshipsController(this.workerModel,this);
|
||||||
|
this.workRelationship.doAfterCompose(
|
||||||
|
comp.getFellow("addWorkRelationshipWindow"));
|
||||||
Redirector<WorkerCRUDLinks> redirector = redirectorRegistry
|
Redirector<WorkerCRUDLinks> redirector = redirectorRegistry
|
||||||
.getRedirectorFor(WorkerCRUDLinks.class);
|
.getRedirectorFor(WorkerCRUDLinks.class);
|
||||||
redirector.applyTo(this);
|
redirector.applyTo(this);
|
||||||
|
|
@ -142,7 +162,8 @@ public class WorkerCRUDController extends GenericForwardComposer implements
|
||||||
private OnlyOneVisible getVisibility() {
|
private OnlyOneVisible getVisibility() {
|
||||||
if (visibility == null) {
|
if (visibility == null) {
|
||||||
visibility = new OnlyOneVisible(listWindow, editWindow,
|
visibility = new OnlyOneVisible(listWindow, editWindow,
|
||||||
createWindow, workRelationshipsWindow);
|
createWindow, workRelationshipsWindow,
|
||||||
|
addWorkRelationshipWindow );
|
||||||
}
|
}
|
||||||
return visibility;
|
return visibility;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,9 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
public class WorkerModel implements IWorkerModel {
|
public class WorkerModel implements IWorkerModel {
|
||||||
|
|
||||||
private final ResourceService resourceService;
|
private final ResourceService resourceService;
|
||||||
|
private final ICriterionType<?>[] laboralRelatedTypes = {
|
||||||
|
PredefinedCriterionTypes.LEAVE,
|
||||||
|
PredefinedCriterionTypes.WORK_RELATIONSHIP };
|
||||||
private Worker worker;
|
private Worker worker;
|
||||||
private ClassValidator<Worker> workerValidator;
|
private ClassValidator<Worker> workerValidator;
|
||||||
private final CriterionService criterionService;
|
private final CriterionService criterionService;
|
||||||
|
|
@ -293,4 +296,24 @@ public class WorkerModel implements IWorkerModel {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(readOnly = true)
|
||||||
|
public Map<ICriterionType<?>, Collection<Criterion>> getLaboralRelatedCriterions() {
|
||||||
|
Map<ICriterionType<?>, Collection<Criterion>> result = new HashMap<ICriterionType<?>, Collection<Criterion>>();
|
||||||
|
for (ICriterionType<?> type : laboralRelatedTypes) {
|
||||||
|
result.put(type, criterionService.getCriterionsFor(type));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<CriterionSatisfaction> getLaboralRelatedCriterionSatisfactions(
|
||||||
|
Worker worker) {
|
||||||
|
Set<CriterionSatisfaction> result = new HashSet<CriterionSatisfaction>();
|
||||||
|
for (ICriterionType<?> criterionType : laboralRelatedTypes) {
|
||||||
|
result.addAll(worker.getSatisfactionsFor(criterionType));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
<window id="${arg.top_id}" title="${arg.title}"
|
||||||
|
apply="${controller.workRelationshipsController}">
|
||||||
|
<grid id="history">
|
||||||
|
<columns>
|
||||||
|
<column label="Date start"/>
|
||||||
|
<column label="Date end"/>
|
||||||
|
<column label="Relationship"/>
|
||||||
|
</columns>
|
||||||
|
<rows>
|
||||||
|
<row>
|
||||||
|
<datebox id="newWorkRelationshipStartDate" width="150px" />
|
||||||
|
<!-- value="@{controller.workRelationship.newRelationship.startDate}" -->
|
||||||
|
<datebox id="newWorkRelationshipEndDate" width="150px" />
|
||||||
|
<!-- value="@{controller.workRelationship.newRelationship.endDate}" -->
|
||||||
|
<listbox onSelect="" mold="select" rows="1" id="selectedWorkCriterion"
|
||||||
|
model="@{controller.workRelationship.workCriterions}">
|
||||||
|
<listitem self="@{each='workCriterion'}"
|
||||||
|
label="@{workCriterion.name}"
|
||||||
|
value="@{workCriterion}" />
|
||||||
|
</listbox>
|
||||||
|
</row>
|
||||||
|
</rows>
|
||||||
|
</grid>
|
||||||
|
<button onClick="controller.workRelationship.addCriterionSatisfaction();"
|
||||||
|
label="Add Work Relationship" />
|
||||||
|
<button onClick="controller.goToWorkRelationshipsForm()"
|
||||||
|
label="Cancel and back to Work Relationships"/>
|
||||||
|
</window>
|
||||||
|
|
@ -13,10 +13,7 @@
|
||||||
value="@{criterionSatisfaction}">
|
value="@{criterionSatisfaction}">
|
||||||
<datebox id="date_start"
|
<datebox id="date_start"
|
||||||
value="@{criterionSatisfaction.startDate}" width="150px" />
|
value="@{criterionSatisfaction.startDate}" width="150px" />
|
||||||
<!--datebox id="date_start"
|
<!--onChange="controller.goToValidation" -->
|
||||||
value="@{criterionSatisfaction.startDate}"
|
|
||||||
onChange="controller.goToEditForm();"
|
|
||||||
width="150px" /-->
|
|
||||||
<datebox id="date_end"
|
<datebox id="date_end"
|
||||||
value="@{criterionSatisfaction.endDate}" width="150px" />
|
value="@{criterionSatisfaction.endDate}" width="150px" />
|
||||||
<label value="@{criterionSatisfaction.criterion.name}" />
|
<label value="@{criterionSatisfaction.criterion.name}" />
|
||||||
|
|
@ -26,6 +23,9 @@
|
||||||
<button onClick="controller.save();" label="${arg.save_button_label}" />
|
<button onClick="controller.save();" label="${arg.save_button_label}" />
|
||||||
<button onClick="controller.cancel();" label="${arg.cancel_button_label}" />
|
<button onClick="controller.cancel();" label="${arg.cancel_button_label}" />
|
||||||
<button label="Edit personal data"
|
<button label="Edit personal data"
|
||||||
onClick="controller.goToEditForm(controller.worker)">
|
onClick="controller.goToEditForm()">
|
||||||
|
</button>
|
||||||
|
<button label="New entry"
|
||||||
|
onClick="controller.goToAddWorkRelationshipForm()">
|
||||||
</button>
|
</button>
|
||||||
</window>
|
</window>
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
<?component name="list" inline="true" macroURI="_list.zul"?>
|
<?component name="list" inline="true" macroURI="_list.zul"?>
|
||||||
<?component name="edition" inline="true" macroURI="_edition.zul"?>
|
<?component name="edition" inline="true" macroURI="_edition.zul"?>
|
||||||
<?component name="workRelationships" inline="true" macroURI="_workRelationships.zul"?>
|
<?component name="workRelationships" inline="true" macroURI="_workRelationships.zul"?>
|
||||||
|
<?component name="addWorkRelationship" inline="true" macroURI="_addWorkRelationship.zul"?>
|
||||||
<zk>
|
<zk>
|
||||||
<window self="@{define(content)}"
|
<window self="@{define(content)}"
|
||||||
apply="org.navalplanner.web.resources.worker.WorkerCRUDController"
|
apply="org.navalplanner.web.resources.worker.WorkerCRUDController"
|
||||||
|
|
@ -21,5 +22,7 @@
|
||||||
save_button_label="Save" cancel_button_label="Cancel" />
|
save_button_label="Save" cancel_button_label="Cancel" />
|
||||||
<workRelationships top_id="workRelationshipsWindow" title="Work Relationships"
|
<workRelationships top_id="workRelationshipsWindow" title="Work Relationships"
|
||||||
save_button_label="Save" cancel_button_label="Cancel" />
|
save_button_label="Save" cancel_button_label="Cancel" />
|
||||||
|
<addWorkRelationship top_id="addWorkRelationshipWindow" title="Add Work Relationship"
|
||||||
|
save_button_label="Save" cancel_button_label="Cancel" />
|
||||||
</window>
|
</window>
|
||||||
</zk>
|
</zk>
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ public class WorkerCRUDControllerTest {
|
||||||
private Window listWindow;
|
private Window listWindow;
|
||||||
private Window editWindow;
|
private Window editWindow;
|
||||||
private Window workRelationshipsWindow;
|
private Window workRelationshipsWindow;
|
||||||
|
private Window addWorkRelationshipWindow;
|
||||||
private WorkerCRUDController createControllerForModel(
|
private WorkerCRUDController createControllerForModel(
|
||||||
IWorkerModel workerModel) {
|
IWorkerModel workerModel) {
|
||||||
return createControllerForModel(workerModel, null);
|
return createControllerForModel(workerModel, null);
|
||||||
|
|
@ -43,11 +43,13 @@ public class WorkerCRUDControllerTest {
|
||||||
listWindow = createNiceMock(Window.class);
|
listWindow = createNiceMock(Window.class);
|
||||||
editWindow = createNiceMock(Window.class);
|
editWindow = createNiceMock(Window.class);
|
||||||
workRelationshipsWindow = createNiceMock(Window.class);
|
workRelationshipsWindow = createNiceMock(Window.class);
|
||||||
|
addWorkRelationshipWindow = createNiceMock(Window.class);
|
||||||
|
|
||||||
WorkerCRUDController workerCRUDController = new WorkerCRUDController(
|
WorkerCRUDController workerCRUDController = new WorkerCRUDController(
|
||||||
createWindow, listWindow, editWindow, workRelationshipsWindow,
|
createWindow, listWindow, editWindow, workRelationshipsWindow,
|
||||||
workerModel, messages);
|
addWorkRelationshipWindow, workerModel, messages);
|
||||||
return workerCRUDController;
|
return workerCRUDController;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -59,7 +61,8 @@ public class WorkerCRUDControllerTest {
|
||||||
|
|
||||||
WorkerCRUDController workerCRUDController = createControllerForModel(
|
WorkerCRUDController workerCRUDController = createControllerForModel(
|
||||||
workerModel, messagesForUser);
|
workerModel, messagesForUser);
|
||||||
replay(createWindow, listWindow, editWindow, workRelationshipsWindow);
|
replay(createWindow, listWindow, editWindow, workRelationshipsWindow,
|
||||||
|
addWorkRelationshipWindow);
|
||||||
// expectations
|
// expectations
|
||||||
workerModel.prepareForCreate();
|
workerModel.prepareForCreate();
|
||||||
expect(workerModel.getWorker()).andReturn(workerToReturn).anyTimes();
|
expect(workerModel.getWorker()).andReturn(workerToReturn).anyTimes();
|
||||||
|
|
@ -76,7 +79,6 @@ public class WorkerCRUDControllerTest {
|
||||||
// verify
|
// verify
|
||||||
verify(workerModel, messagesForUser);
|
verify(workerModel, messagesForUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGoToSaveAndThenCancel() {
|
public void testGoToSaveAndThenCancel() {
|
||||||
IWorkerModel workerModel = createMock(IWorkerModel.class);
|
IWorkerModel workerModel = createMock(IWorkerModel.class);
|
||||||
|
|
@ -89,7 +91,9 @@ public class WorkerCRUDControllerTest {
|
||||||
expect(createWindow.setVisible(false)).andReturn(true);
|
expect(createWindow.setVisible(false)).andReturn(true);
|
||||||
expect(listWindow.setVisible(true)).andReturn(false);
|
expect(listWindow.setVisible(true)).andReturn(false);
|
||||||
expect(workRelationshipsWindow.setVisible(true)).andReturn(false);
|
expect(workRelationshipsWindow.setVisible(true)).andReturn(false);
|
||||||
replay(createWindow, listWindow, editWindow, workRelationshipsWindow, workerModel);
|
expect(addWorkRelationshipWindow.setVisible(true)).andReturn(false);
|
||||||
|
replay(createWindow, listWindow, editWindow, workRelationshipsWindow,
|
||||||
|
addWorkRelationshipWindow, workerModel);
|
||||||
// actions
|
// actions
|
||||||
workerCRUDController.goToCreateForm();
|
workerCRUDController.goToCreateForm();
|
||||||
workerCRUDController.cancel();
|
workerCRUDController.cancel();
|
||||||
|
|
@ -115,7 +119,7 @@ public class WorkerCRUDControllerTest {
|
||||||
workerModel.save();
|
workerModel.save();
|
||||||
messagesForUser.showMessage(same(Level.INFO), isA(String.class));
|
messagesForUser.showMessage(same(Level.INFO), isA(String.class));
|
||||||
replay(createWindow, listWindow, editWindow, workRelationshipsWindow,
|
replay(createWindow, listWindow, editWindow, workRelationshipsWindow,
|
||||||
workerModel, messagesForUser);
|
addWorkRelationshipWindow, workerModel, messagesForUser);
|
||||||
// perform actions
|
// perform actions
|
||||||
List<Worker> workers = workerCRUDController.getWorkers();
|
List<Worker> workers = workerCRUDController.getWorkers();
|
||||||
assertEquals(workersToReturn, workers);
|
assertEquals(workersToReturn, workers);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue