ItEr18S14CUAsignacionRecursosEspecificosAPlanificacion: Added a new method "buildAnd" to CriterionCompounder that receives a List of ICriterion.
Javier Moran Rua <jmoran@igalia.com>: The commit has been ammended to include a missing static import in CriterionTest.
This commit is contained in:
parent
09e65ab582
commit
f73c6a1d9c
2 changed files with 50 additions and 1 deletions
|
|
@ -17,6 +17,14 @@ public class CriterionCompounder {
|
|||
return new CriterionCompounder();
|
||||
}
|
||||
|
||||
public static CriterionCompounder buildAnd(List<ICriterion> criterions) {
|
||||
CriterionCompounder compounder = new CriterionCompounder();
|
||||
for (ICriterion criterion : criterions) {
|
||||
compounder = compounder.and(criterion);
|
||||
}
|
||||
return compounder;
|
||||
}
|
||||
|
||||
public static CriterionCompounder atom(ICriterion criterion) {
|
||||
return build().and(criterion);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,12 +3,14 @@ package org.navalplanner.business.test.resources.entities;
|
|||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.navalplanner.business.resources.entities.CriterionCompounder.atom;
|
||||
import static org.navalplanner.business.resources.entities.CriterionCompounder.buildAnd;
|
||||
import static org.navalplanner.business.resources.entities.CriterionCompounder.build;
|
||||
import static org.navalplanner.business.resources.entities.CriterionCompounder.not;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.navalplanner.business.resources.entities.Criterion;
|
||||
|
|
@ -23,8 +25,8 @@ import org.navalplanner.business.resources.entities.Worker;
|
|||
* Created at May 12, 2009
|
||||
* @author Óscar González Fernández <ogonzalez@igalia.com>
|
||||
*/
|
||||
public class CriterionTest {
|
||||
|
||||
public class CriterionTest {
|
||||
@Test
|
||||
public void testCreateWithAType() throws Exception {
|
||||
Criterion firedCriterion = PredefinedCriterionTypes.WORK_RELATIONSHIP
|
||||
|
|
@ -61,6 +63,45 @@ public class CriterionTest {
|
|||
assertFalse(compositedCriterion.isSatisfiedBy(worker2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWorkerSatisfySeveralCriterions() {
|
||||
Worker worker1 = new Worker();
|
||||
Worker worker2 = new Worker();
|
||||
|
||||
ICriterion criterion1 = justThisResourcesCriterion(worker1);
|
||||
ICriterion criterion2 = justThisResourcesCriterion(worker1);
|
||||
ICriterion criterion3 = justThisResourcesCriterion(worker2);
|
||||
ICriterion criterion4 = justThisResourcesCriterion(worker1, worker2);
|
||||
|
||||
assertTrue(criterion1.isSatisfiedBy(worker1));
|
||||
assertFalse(criterion1.isSatisfiedBy(worker2));
|
||||
assertTrue(criterion2.isSatisfiedBy(worker1));
|
||||
assertFalse(criterion2.isSatisfiedBy(worker2));
|
||||
assertFalse(criterion3.isSatisfiedBy(worker1));
|
||||
assertTrue(criterion3.isSatisfiedBy(worker2));
|
||||
assertTrue(criterion4.isSatisfiedBy(worker1));
|
||||
assertTrue(criterion4.isSatisfiedBy(worker2));
|
||||
|
||||
List<ICriterion> criterionList1 = Arrays.asList(criterion1, criterion2);
|
||||
List<ICriterion> criterionList2 = Arrays.asList(criterion1, criterion2,
|
||||
criterion3);
|
||||
List<ICriterion> criterionList3 = Arrays.asList(criterion3, criterion4);
|
||||
|
||||
ICriterion compositedCriterion1 = CriterionCompounder.buildAnd(
|
||||
criterionList1).getResult();
|
||||
ICriterion compositedCriterion2 = CriterionCompounder.buildAnd(
|
||||
criterionList2).getResult();
|
||||
ICriterion compositedCriterion3 = CriterionCompounder.buildAnd(
|
||||
criterionList3).getResult();
|
||||
|
||||
assertTrue(compositedCriterion1.isSatisfiedBy(worker1));
|
||||
assertFalse(compositedCriterion1.isSatisfiedBy(worker2));
|
||||
assertFalse(compositedCriterion2.isSatisfiedBy(worker1));
|
||||
assertFalse(compositedCriterion2.isSatisfiedBy(worker2));
|
||||
assertFalse(compositedCriterion3.isSatisfiedBy(worker1));
|
||||
assertTrue(compositedCriterion3.isSatisfiedBy(worker2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEmptyMatchesAll() throws Exception {
|
||||
assertTrue(build().getResult().isSatisfiedBy(new Worker()));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue