Configured default data for Criteria

FEA: ItEr75S29DefaultData
This commit is contained in:
Ignacio Diaz Teijido 2011-11-03 17:17:13 +01:00 committed by Manuel Rego Casasnovas
parent d5a397351e
commit 5cba5a71d0
10 changed files with 70 additions and 103 deletions

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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();

View file

@ -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;
}

View file

@ -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));
}

View file

@ -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);

View file

@ -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);

View file

@ -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());

View file

@ -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);

View file

@ -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);