ItEr33S14CUCreacionUnidadesPlanificacion: Adding equalTo constraint

This commit is contained in:
Óscar González Fernández 2009-11-07 18:17:51 +01:00
parent ec2f71001a
commit ae43ea1e39
2 changed files with 37 additions and 0 deletions

View file

@ -34,6 +34,13 @@ public abstract class DateConstraint extends Constraint<Date> {
return new BiggerOrEqualThan(date);
}
public static Constraint<Date> equalTo(Date date) {
if (date == null) {
return Constraint.voidConstraint();
}
return new EqualTo(date);
}
private long value;
protected long getValue() {
@ -62,6 +69,22 @@ public abstract class DateConstraint extends Constraint<Date> {
protected abstract boolean isSatisfiedBy(Long time);
static final class EqualTo extends DateConstraint {
EqualTo(Date date) {
super(date);
}
@Override
protected long applyConstraintTo(Long time) {
return getValue();
}
@Override
protected boolean isSatisfiedBy(Long time) {
return getValue() == time;
}
}
static class BiggerOrEqualThan extends DateConstraint {
protected BiggerOrEqualThan(Date date) {

View file

@ -32,6 +32,7 @@ public class DateConstraintTest {
private Constraint<Date> biggerOrEqualThanNow = DateConstraint
.biggerOrEqualThan(now);
private Constraint<Date> equalToNow = DateConstraint.equalTo(now);
@Test
public void canCreateConstraintBiggerThan() {
@ -53,4 +54,17 @@ public class DateConstraintTest {
.getTime())));
}
@Test
public void canCreateConstraintEqualTo(){
assertThat(equalToNow.applyTo(new Date(now.getTime() + 1000)),
equalTo(now));
}
@Test
public void equalToNullLeaveValuesUnmodified() {
Constraint<Date> equalToNull = DateConstraint.equalTo(null);
Date value = new Date(now.getTime() + 1000);
assertThat(equalToNull.applyTo(value), equalTo(value));
}
}