Skip to content

Commit d523c88

Browse files
authored
Fix Clock being null (#299)
1 parent 2f17406 commit d523c88

File tree

3 files changed

+50
-1
lines changed

3 files changed

+50
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package example.avaje.clock;
2+
3+
import java.time.LocalDate;
4+
5+
import io.avaje.validation.constraints.Future;
6+
import io.avaje.validation.constraints.Valid;
7+
8+
@Valid
9+
public record Clocky(@Future LocalDate startDate) {}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package example.avaje.clock;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
import static org.assertj.core.api.Assertions.fail;
5+
6+
import java.time.LocalDate;
7+
import java.util.ArrayList;
8+
import java.util.List;
9+
import java.util.Locale;
10+
11+
import org.junit.jupiter.api.Test;
12+
13+
import io.avaje.validation.ConstraintViolation;
14+
import io.avaje.validation.ConstraintViolationException;
15+
import io.avaje.validation.Validator;
16+
17+
class ClockTest {
18+
19+
Validator validator = Validator.builder().build();
20+
21+
@Test
22+
void valid() {
23+
var ship = new Clocky(LocalDate.MIN);
24+
assertThat(violations(ship)).hasSize(1);
25+
}
26+
27+
List<ConstraintViolation> violations(Object any) {
28+
return violations(any, Locale.ENGLISH);
29+
}
30+
31+
List<ConstraintViolation> violations(Object any, Locale locale) {
32+
try {
33+
validator.validate(any, locale);
34+
fail("not expected");
35+
return null;
36+
} catch (ConstraintViolationException e) {
37+
return new ArrayList<>(e.violations());
38+
}
39+
}
40+
}

validator/src/main/java/io/avaje/validation/core/DValidator.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,8 @@ String interpolate(Message msg, Locale requestLocale) {
180180
/** Implementation of Validator.Builder. */
181181
static final class DBuilder implements Validator.Builder {
182182

183-
private static final Validator DEFAULT = Validator.builder().build();
184183
private static final Supplier<Clock> DEFAULT_CLOCK = Clock::systemDefaultZone;
184+
private static final Validator DEFAULT = Validator.builder().build();
185185

186186
private final List<AdapterFactory> factories = new ArrayList<>();
187187
private final List<AnnotationFactory> afactories = new ArrayList<>();

0 commit comments

Comments
 (0)