Skip to content

Commit

Permalink
Polish "Add support for YearMonth and MonthDay in @DateTimeFormat"
Browse files Browse the repository at this point in the history
  • Loading branch information
snicoll committed Dec 3, 2021
1 parent 65eceaf commit a57ea39
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.MonthDay;
import java.time.OffsetDateTime;
import java.time.OffsetTime;
import java.time.MonthDay;
import java.time.YearMonth;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
Expand Down Expand Up @@ -68,7 +68,6 @@ public class Jsr310DateTimeFormatAnnotationFormatterFactory extends EmbeddedValu
FIELD_TYPES = Collections.unmodifiableSet(fieldTypes);
}


@Override
public final Set<Class<?>> getFieldTypes() {
return FIELD_TYPES;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -473,9 +473,9 @@ public void testBindYearMonthAnnotatedPattern() {
MutablePropertyValues propertyValues = new MutablePropertyValues();
propertyValues.add("yearMonthAnnotatedPattern", "12/2007");
binder.bind(propertyValues);
assertEquals(0, binder.getBindingResult().getErrorCount());
assertTrue(binder.getBindingResult().getFieldValue("yearMonthAnnotatedPattern").toString().equals("12/2007"));
assertEquals(YearMonth.parse("2007-12"), binder.getBindingResult().getRawFieldValue("yearMonthAnnotatedPattern"));
assertThat(binder.getBindingResult().getErrorCount()).isEqualTo(0);
assertThat(binder.getBindingResult().getFieldValue("yearMonthAnnotatedPattern")).isEqualTo("12/2007");
assertThat(binder.getBindingResult().getRawFieldValue("yearMonthAnnotatedPattern")).isEqualTo(YearMonth.parse("2007-12"));
}

@Test
Expand All @@ -487,6 +487,16 @@ void testBindMonthDay() {
assertThat(binder.getBindingResult().getFieldValue("monthDay").toString().equals("--12-03")).isTrue();
}

@Test
public void testBindMonthDayAnnotatedPattern() {
MutablePropertyValues propertyValues = new MutablePropertyValues();
propertyValues.add("monthDayAnnotatedPattern", "1/3");
binder.bind(propertyValues);
assertThat(binder.getBindingResult().getErrorCount()).isEqualTo(0);
assertThat(binder.getBindingResult().getFieldValue("monthDayAnnotatedPattern")).isEqualTo("1/3");
assertThat(binder.getBindingResult().getRawFieldValue("monthDayAnnotatedPattern")).isEqualTo(MonthDay.parse("--01-03"));
}

@Nested
class FallbackPatternTests {

Expand Down Expand Up @@ -568,16 +578,6 @@ void patternLocalDateWithUnsupportedPattern() {
}
}

@Test
public void testBindMonthDayAnnotatedPattern() {
MutablePropertyValues propertyValues = new MutablePropertyValues();
propertyValues.add("monthDayAnnotatedPattern", "1/3");
binder.bind(propertyValues);
assertEquals(0, binder.getBindingResult().getErrorCount());
assertTrue(binder.getBindingResult().getFieldValue("monthDayAnnotatedPattern").toString().equals("1/3"));
assertEquals(MonthDay.parse("--01-03"), binder.getBindingResult().getRawFieldValue("monthDayAnnotatedPattern"));
}


public static class DateTimeBean {

Expand Down Expand Up @@ -635,11 +635,11 @@ public static class DateTimeBean {
@DateTimeFormat(pattern="MM/uuuu")
private YearMonth yearMonthAnnotatedPattern;

private MonthDay monthDay;

@DateTimeFormat(pattern="M/d")
private MonthDay monthDayAnnotatedPattern;

private MonthDay monthDay;

private final List<DateTimeBean> children = new ArrayList<>();


Expand Down

0 comments on commit a57ea39

Please sign in to comment.