Configured default data for Criteria
FEA: ItEr75S29DefaultData
This commit is contained in:
parent
d5a397351e
commit
5cba5a71d0
10 changed files with 70 additions and 103 deletions
|
|
@ -1,9 +1,7 @@
|
|||
/*
|
||||
* This file is part of LibrePlan
|
||||
*
|
||||
* Copyright (C) 2009-2010 Fundación para o Fomento da Calidade Industrial e
|
||||
* Desenvolvemento Tecnolóxico de Galicia
|
||||
* Copyright (C) 2010-2011 Igalia, S.L.
|
||||
* Copyright (C) 2011 CafédeRed Solutions, S.L.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
|
|
@ -25,18 +23,18 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Predefined leave criterions<br />
|
||||
* @author Lorenzo Tilve <ltilve@igalia.com>
|
||||
* @author Diego Pino García <dpino@igalia.com>
|
||||
* Predefined categories<br />
|
||||
*
|
||||
* @author Ignacio Díaz Teijido <ignacio.diaz@cafedered.com>
|
||||
*/
|
||||
public enum LeaveCriterions {
|
||||
MEDICAL_LEAVE("medicalLeave"),
|
||||
PATERNITY_LEAVE("paternityLeave");
|
||||
public enum CategoryCriteria {
|
||||
MANAGER("Manager"), SENIOR_WORKER("Senior worker"), JUNIOR_WORKER(
|
||||
"Junior worker");
|
||||
|
||||
public static List<String> getCriterionNames() {
|
||||
ArrayList<String> result = new ArrayList<String>();
|
||||
for (LeaveCriterions leaveCriterions: values()) {
|
||||
result.add(leaveCriterions.criterionName);
|
||||
for (CategoryCriteria category : values()) {
|
||||
result.add(category.criterionName);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
@ -44,10 +42,11 @@ public enum LeaveCriterions {
|
|||
private final String criterionName;
|
||||
|
||||
public Criterion criterion() {
|
||||
return Criterion.create(criterionName, CriterionType.asCriterionType(PredefinedCriterionTypes.LEAVE));
|
||||
return Criterion.create(criterionName, CriterionType
|
||||
.asCriterionType(PredefinedCriterionTypes.CATEGORY));
|
||||
}
|
||||
|
||||
private LeaveCriterions(String name) {
|
||||
private CategoryCriteria(String name) {
|
||||
this.criterionName = name;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +1,7 @@
|
|||
/*
|
||||
* This file is part of LibrePlan
|
||||
*
|
||||
* Copyright (C) 2009-2010 Fundación para o Fomento da Calidade Industrial e
|
||||
* Desenvolvemento Tecnolóxico de Galicia
|
||||
* Copyright (C) 2010-2011 Igalia, S.L.
|
||||
* Copyright (C) 2011 CafédeRed Solutions, S.L.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
|
|
@ -25,18 +23,18 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Predefined working relationships<br />
|
||||
* @author Óscar González Fernández <ogonzalez@igalia.com>
|
||||
* @author Diego Pino García <dpino@igalia.com>
|
||||
* Predefined location criterions<br />
|
||||
*
|
||||
* @author Ignacio Díaz Teijido <ignacio.diaz@cafedered.com>
|
||||
*/
|
||||
public enum WorkingRelationship {
|
||||
HIRED("hiredResourceWorkingRelationship"),
|
||||
FIRED("firedResourceWorkingRelationship");
|
||||
public enum LocationCriteria {
|
||||
AFRICA("Africa"), AMERICA("America"), ASIA("Asia"), AUSTRALIA("Australia"), EUROPE(
|
||||
"Europe");
|
||||
|
||||
public static List<String> getCriterionNames() {
|
||||
ArrayList<String> result = new ArrayList<String>();
|
||||
for (WorkingRelationship workingRelationship : values()) {
|
||||
result.add(workingRelationship.criterionName);
|
||||
for (LocationCriteria locationCriterions : values()) {
|
||||
result.add(locationCriterions.criterionName);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
@ -44,14 +42,11 @@ public enum WorkingRelationship {
|
|||
private final String criterionName;
|
||||
|
||||
public Criterion criterion() {
|
||||
return Criterion.create(criterionName, CriterionType.asCriterionType(PredefinedCriterionTypes.WORK_RELATIONSHIP));
|
||||
return Criterion.create(criterionName, CriterionType
|
||||
.asCriterionType(PredefinedCriterionTypes.LOCATION));
|
||||
}
|
||||
|
||||
public String getCriterionName() {
|
||||
return criterionName;
|
||||
}
|
||||
|
||||
private WorkingRelationship(String name) {
|
||||
private LocationCriteria(String name) {
|
||||
this.criterionName = name;
|
||||
}
|
||||
}
|
||||
|
|
@ -29,51 +29,29 @@ import org.libreplan.business.common.Registry;
|
|||
|
||||
/**
|
||||
* This class defines some criterion types known a priori<br />
|
||||
*
|
||||
* @author Óscar González Fernández <ogonzalez@igalia.com>
|
||||
* @author Diego Pino García <dpino@igalia.com>
|
||||
* @author Ignacio Díaz Teijido <ignacio.diaz@cafedered.com>
|
||||
*/
|
||||
public enum PredefinedCriterionTypes implements ICriterionType<Criterion> {
|
||||
|
||||
WORK_RELATIONSHIP(_("WORK_RELATIONSHIP"), "Relationship of the resource with the enterprise ",false, false,true, ResourceEnum.WORKER) {
|
||||
@Override
|
||||
public List<String> getPredefined() {
|
||||
return WorkingRelationship.getCriterionNames();
|
||||
}
|
||||
},
|
||||
LOCATION_GROUP(_("LOCATION_GROUP"), "Location where the workers work",
|
||||
LOCATION(_("LOCATION"), "Worker location",
|
||||
false, true, true, ResourceEnum.WORKER) {
|
||||
@Override
|
||||
public List<String> getPredefined() {
|
||||
return Arrays.asList();
|
||||
return LocationCriteria.getCriterionNames();
|
||||
}
|
||||
},
|
||||
MACHINE_LOCATION_GROUP(_("MACHINE LOCATION_GROUP"),
|
||||
"Location where there are machines", false, true, true,
|
||||
ResourceEnum.MACHINE) {
|
||||
CATEGORY(_("CATEGORY"), "Professional category", true, true, true,
|
||||
ResourceEnum.WORKER) {
|
||||
@Override
|
||||
public List<String> getPredefined() {
|
||||
return Arrays.asList();
|
||||
return CategoryCriteria.getCriterionNames();
|
||||
}
|
||||
},
|
||||
LEAVE(_("LEAVE"), "Leave",false, false, true, ResourceEnum.WORKER) {
|
||||
@Override
|
||||
public List<String> getPredefined() {
|
||||
return LeaveCriterions.getCriterionNames();
|
||||
}
|
||||
},
|
||||
TRAINING(_("TRAINING"), "Training courses and labor training",true, true, true, ResourceEnum.WORKER) {
|
||||
@Override
|
||||
public List<String> getPredefined() {
|
||||
return Arrays.asList();
|
||||
}
|
||||
},
|
||||
JOB(_("JOB"),"Job",true, true, true, ResourceEnum.WORKER) {
|
||||
@Override
|
||||
public List<String> getPredefined() {
|
||||
return Arrays.asList();
|
||||
}
|
||||
},
|
||||
CATEGORY(_("CATEGORY"),"Professional category",true, true, true, ResourceEnum.WORKER) {
|
||||
SKILL(_("SKILL"), "Worker skill", true, true, true,
|
||||
ResourceEnum.WORKER) {
|
||||
@Override
|
||||
public List<String> getPredefined() {
|
||||
return Arrays.asList();
|
||||
|
|
|
|||
|
|
@ -32,8 +32,8 @@ import org.junit.Test;
|
|||
import org.junit.runner.RunWith;
|
||||
import org.libreplan.business.resources.bootstrap.ICriterionsBootstrap;
|
||||
import org.libreplan.business.resources.daos.ICriterionDAO;
|
||||
import org.libreplan.business.resources.entities.CategoryCriteria;
|
||||
import org.libreplan.business.resources.entities.Criterion;
|
||||
import org.libreplan.business.resources.entities.WorkingRelationship;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
|
@ -59,8 +59,8 @@ public class CriterionsBootstrapTest {
|
|||
|
||||
private List<Criterion> getSomePredefinedCriterions() {
|
||||
List<Criterion> result = new ArrayList<Criterion>();
|
||||
for (WorkingRelationship workingRelationship : WorkingRelationship.values()) {
|
||||
result.add(workingRelationship.criterion());
|
||||
for (CategoryCriteria category : CategoryCriteria.values()) {
|
||||
result.add(category.criterion());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,10 +48,9 @@ import org.libreplan.business.resources.entities.Worker;
|
|||
public class CriterionTest {
|
||||
@Test
|
||||
public void testCreateWithAType() {
|
||||
Criterion firedCriterion = PredefinedCriterionTypes.WORK_RELATIONSHIP
|
||||
.createCriterion("fired");
|
||||
assertTrue(PredefinedCriterionTypes.WORK_RELATIONSHIP
|
||||
.contains(firedCriterion));
|
||||
Criterion managerCriterion = PredefinedCriterionTypes.CATEGORY
|
||||
.createCriterion("Manager");
|
||||
assertTrue(PredefinedCriterionTypes.CATEGORY.contains(managerCriterion));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -190,9 +189,9 @@ public class CriterionTest {
|
|||
|
||||
@Test
|
||||
public void testCanBeRelatedTo() {
|
||||
assertTrue(PredefinedCriterionTypes.LOCATION_GROUP
|
||||
assertTrue(PredefinedCriterionTypes.LOCATION
|
||||
.criterionCanBeRelatedTo(Worker.class));
|
||||
assertTrue(PredefinedCriterionTypes.WORK_RELATIONSHIP
|
||||
assertTrue(PredefinedCriterionTypes.CATEGORY
|
||||
.criterionCanBeRelatedTo(Worker.class));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -92,8 +92,8 @@ public class WorkerModel extends IntegrationEntityModel implements IWorkerModel
|
|||
private IBaseCalendarDAO baseCalendarDAO;
|
||||
|
||||
private final ICriterionType<?>[] laboralRelatedTypes = {
|
||||
PredefinedCriterionTypes.LEAVE,
|
||||
PredefinedCriterionTypes.WORK_RELATIONSHIP };
|
||||
PredefinedCriterionTypes.LOCATION,
|
||||
PredefinedCriterionTypes.CATEGORY, PredefinedCriterionTypes.SKILL };
|
||||
|
||||
private Worker worker;
|
||||
|
||||
|
|
@ -214,8 +214,7 @@ public class WorkerModel extends IntegrationEntityModel implements IWorkerModel
|
|||
setDefaultCode();
|
||||
}
|
||||
localizationsAssigner = new MultipleCriterionActiveAssigner(
|
||||
criterionDAO, worker,
|
||||
PredefinedCriterionTypes.LOCATION_GROUP);
|
||||
criterionDAO, worker, PredefinedCriterionTypes.LOCATION);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -228,7 +227,7 @@ public class WorkerModel extends IntegrationEntityModel implements IWorkerModel
|
|||
forceLoadCalendar(this.worker);
|
||||
localizationsAssigner = new MultipleCriterionActiveAssigner(
|
||||
criterionDAO, this.worker,
|
||||
PredefinedCriterionTypes.LOCATION_GROUP);
|
||||
PredefinedCriterionTypes.LOCATION);
|
||||
initOldCodes();
|
||||
} catch (InstanceNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ public class OrderElementTreeModelTest {
|
|||
}
|
||||
|
||||
private void addCriterionRequirement(OrderElement orderElement) {
|
||||
criterion = criterionDAO.findByNameAndType("medicalLeave", "LEAVE")
|
||||
criterion = criterionDAO.findByNameAndType("Europe", "LOCATION")
|
||||
.get(0);
|
||||
DirectCriterionRequirement directCriterionRequirement = DirectCriterionRequirement
|
||||
.create(criterion);
|
||||
|
|
@ -158,8 +158,8 @@ public class OrderElementTreeModelTest {
|
|||
}
|
||||
|
||||
private void addAnotherCriterionRequirement(OrderElement orderElement) {
|
||||
criterion2 = criterionDAO.findByNameAndType(
|
||||
"hiredResourceWorkingRelationship", "WORK_RELATIONSHIP").get(0);
|
||||
criterion2 = criterionDAO.findByNameAndType("Manager", "CATEGORY").get(
|
||||
0);
|
||||
DirectCriterionRequirement directCriterionRequirement = DirectCriterionRequirement
|
||||
.create(criterion2);
|
||||
orderElement.addCriterionRequirement(directCriterionRequirement);
|
||||
|
|
@ -167,7 +167,7 @@ public class OrderElementTreeModelTest {
|
|||
|
||||
private void addAnotherDifferentCriterionRequirement(
|
||||
OrderElement orderElement) {
|
||||
criterion3 = criterionDAO.findByNameAndType("paternityLeave", "LEAVE")
|
||||
criterion3 = criterionDAO.findByNameAndType("Asia", "LOCATION")
|
||||
.get(0);
|
||||
DirectCriterionRequirement directCriterionRequirement = DirectCriterionRequirement
|
||||
.create(criterion3);
|
||||
|
|
|
|||
|
|
@ -112,12 +112,11 @@ public class CriterionModelTest {
|
|||
@Test
|
||||
public void savingCriterionIncreasesTheNumberOfCriterions()
|
||||
{
|
||||
givenValidCriterionFor(PredefinedCriterionTypes.WORK_RELATIONSHIP);
|
||||
int initial = getCriterionsNumber(PredefinedCriterionTypes.WORK_RELATIONSHIP);
|
||||
givenValidCriterionFor(PredefinedCriterionTypes.CATEGORY);
|
||||
int initial = getCriterionsNumber(PredefinedCriterionTypes.CATEGORY);
|
||||
criterionDAO.save(criterion);
|
||||
criterionDAO.flush();
|
||||
assertThat(
|
||||
getCriterionsNumber(PredefinedCriterionTypes.WORK_RELATIONSHIP),
|
||||
assertThat(getCriterionsNumber(PredefinedCriterionTypes.CATEGORY),
|
||||
equalTo(initial + 1));
|
||||
}
|
||||
|
||||
|
|
@ -175,13 +174,12 @@ public class CriterionModelTest {
|
|||
|
||||
@Test
|
||||
public void modifyingDontAlterTheNumberOfCriterions() {
|
||||
givenCreatedCriterionFor(PredefinedCriterionTypes.WORK_RELATIONSHIP);
|
||||
int initial = getCriterionsNumber(PredefinedCriterionTypes.WORK_RELATIONSHIP);
|
||||
givenCreatedCriterionFor(PredefinedCriterionTypes.CATEGORY);
|
||||
int initial = getCriterionsNumber(PredefinedCriterionTypes.CATEGORY);
|
||||
String newName = UUID.randomUUID().toString() + "random";
|
||||
criterion.setName(newName);
|
||||
criterionDAO.save(criterion);
|
||||
assertThat(
|
||||
getCriterionsNumber(PredefinedCriterionTypes.WORK_RELATIONSHIP),
|
||||
assertThat(getCriterionsNumber(PredefinedCriterionTypes.CATEGORY),
|
||||
equalTo(initial));
|
||||
}
|
||||
|
||||
|
|
@ -221,7 +219,7 @@ public class CriterionModelTest {
|
|||
@Override
|
||||
public Void execute() {
|
||||
Criterion criterion = givenValidCriterionFor(
|
||||
PredefinedCriterionTypes.WORK_RELATIONSHIP, unique);
|
||||
PredefinedCriterionTypes.CATEGORY, unique);
|
||||
try {
|
||||
criterionDAO.save(criterion);
|
||||
} catch (ValidationException e) {
|
||||
|
|
@ -236,7 +234,7 @@ public class CriterionModelTest {
|
|||
public Void execute() {
|
||||
try {
|
||||
Criterion criterion2 = givenValidCriterionFor(
|
||||
PredefinedCriterionTypes.WORK_RELATIONSHIP, unique);
|
||||
PredefinedCriterionTypes.CATEGORY, unique);
|
||||
criterionDAO.save(criterion2);
|
||||
fail("must send "
|
||||
+ ValidationException.class.getSimpleName());
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ public class WorkerModelTest {
|
|||
List<Criterion> criterions = new ArrayList<Criterion>();
|
||||
expect(
|
||||
criterionServiceMock
|
||||
.findByType(PredefinedCriterionTypes.LOCATION_GROUP))
|
||||
.findByType(PredefinedCriterionTypes.LOCATION))
|
||||
.andReturn(criterions).anyTimes();
|
||||
expect(resourceDAOMock.find(workerToReturn.getId()))
|
||||
.andReturn(workerToReturn);
|
||||
|
|
@ -109,7 +109,7 @@ public class WorkerModelTest {
|
|||
List<Criterion> criterions = new ArrayList<Criterion>();
|
||||
expect(
|
||||
criterionServiceMock
|
||||
.findByType(PredefinedCriterionTypes.LOCATION_GROUP))
|
||||
.findByType(PredefinedCriterionTypes.LOCATION))
|
||||
.andReturn(criterions).anyTimes();
|
||||
expect(resourceDAOMock.find(workerToReturn.getId())).andReturn(
|
||||
workerToReturn);
|
||||
|
|
|
|||
|
|
@ -64,7 +64,6 @@ import org.libreplan.business.materials.entities.MaterialAssignment;
|
|||
import org.libreplan.business.orders.daos.IOrderDAO;
|
||||
import org.libreplan.business.orders.daos.IOrderElementDAO;
|
||||
import org.libreplan.business.orders.entities.HoursGroup;
|
||||
import org.libreplan.business.orders.entities.Order;
|
||||
import org.libreplan.business.orders.entities.OrderElement;
|
||||
import org.libreplan.business.orders.entities.OrderLine;
|
||||
import org.libreplan.business.requirements.entities.CriterionRequirement;
|
||||
|
|
@ -1311,8 +1310,8 @@ public class OrderElementServiceTest {
|
|||
orderDTO.code = code;
|
||||
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
|
||||
|
||||
String name = PredefinedCriterionTypes.LEAVE.getPredefined().get(0);
|
||||
String type = PredefinedCriterionTypes.LEAVE.getName();
|
||||
String name = PredefinedCriterionTypes.LOCATION.getPredefined().get(0);
|
||||
String type = PredefinedCriterionTypes.LOCATION.getName();
|
||||
|
||||
CriterionRequirementDTO criterionRequirementDTO = new DirectCriterionRequirementDTO(
|
||||
name, type);
|
||||
|
|
@ -1364,8 +1363,8 @@ public class OrderElementServiceTest {
|
|||
orderDTO.code = code;
|
||||
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
|
||||
|
||||
String name = PredefinedCriterionTypes.LEAVE.getPredefined().get(0);
|
||||
String type = PredefinedCriterionTypes.LEAVE.getName();
|
||||
String name = PredefinedCriterionTypes.LOCATION.getPredefined().get(0);
|
||||
String type = PredefinedCriterionTypes.LOCATION.getName();
|
||||
|
||||
CriterionRequirementDTO criterionRequirementDTO = new DirectCriterionRequirementDTO(
|
||||
name, type);
|
||||
|
|
@ -1451,8 +1450,8 @@ public class OrderElementServiceTest {
|
|||
orderDTO.code = code;
|
||||
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
|
||||
|
||||
String name = PredefinedCriterionTypes.LEAVE.getPredefined().get(0);
|
||||
String type = PredefinedCriterionTypes.LEAVE.getName();
|
||||
String name = PredefinedCriterionTypes.LOCATION.getPredefined().get(0);
|
||||
String type = PredefinedCriterionTypes.LOCATION.getName();
|
||||
|
||||
CriterionRequirementDTO criterionRequirementDTO = new DirectCriterionRequirementDTO(
|
||||
name, type);
|
||||
|
|
@ -1480,7 +1479,7 @@ public class OrderElementServiceTest {
|
|||
assertNotNull(orderElement);
|
||||
assertThat(orderElement.getCriterionRequirements().size(), equalTo(1));
|
||||
|
||||
String name2 = PredefinedCriterionTypes.LEAVE.getPredefined().get(1);
|
||||
String name2 = PredefinedCriterionTypes.LOCATION.getPredefined().get(1);
|
||||
|
||||
transactionService.runOnTransaction(new IOnTransaction<Void>() {
|
||||
@Override
|
||||
|
|
@ -1554,8 +1553,8 @@ public class OrderElementServiceTest {
|
|||
orderDTO.code = code;
|
||||
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
|
||||
|
||||
String name = PredefinedCriterionTypes.LEAVE.getPredefined().get(0);
|
||||
String type = PredefinedCriterionTypes.LEAVE.getName();
|
||||
String name = PredefinedCriterionTypes.LOCATION.getPredefined().get(0);
|
||||
String type = PredefinedCriterionTypes.LOCATION.getName();
|
||||
|
||||
CriterionRequirementDTO criterionRequirementDTO = new DirectCriterionRequirementDTO(
|
||||
name, type);
|
||||
|
|
@ -1705,8 +1704,8 @@ public class OrderElementServiceTest {
|
|||
orderDTO.code = code;
|
||||
orderDTO.initDate = DateConverter.toXMLGregorianCalendar(new Date());
|
||||
|
||||
String name = PredefinedCriterionTypes.LEAVE.getPredefined().get(0);
|
||||
String type = PredefinedCriterionTypes.LEAVE.getName();
|
||||
String name = PredefinedCriterionTypes.LOCATION.getPredefined().get(0);
|
||||
String type = PredefinedCriterionTypes.LOCATION.getName();
|
||||
|
||||
CriterionRequirementDTO criterionRequirementDTO = new DirectCriterionRequirementDTO(
|
||||
name, type);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue