diff --git a/src/test/java/org/springframework/data/convert/Jsr310ConvertersUnitTests.java b/src/test/java/org/springframework/data/convert/Jsr310ConvertersUnitTests.java index 311043d21..13f49844e 100644 --- a/src/test/java/org/springframework/data/convert/Jsr310ConvertersUnitTests.java +++ b/src/test/java/org/springframework/data/convert/Jsr310ConvertersUnitTests.java @@ -25,12 +25,15 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.time.Period; import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.time.temporal.Temporal; import java.util.Arrays; import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; +import java.util.function.Predicate; import org.junit.Test; import org.junit.runner.RunWith; @@ -52,6 +55,7 @@ import org.springframework.data.convert.Jsr310ConvertersUnitTests.PeriodConversi * * @author Oliver Gierke * @author Barak Schoster + * @author Jens Schauder */ @RunWith(Suite.class) @SuiteClasses({ CommonTests.class, DurationConversionTests.class, PeriodConversionTests.class }) @@ -75,40 +79,42 @@ public class Jsr310ConvertersUnitTests { @Test // DATACMNS-606 public void convertsDateToLocalDateTime() { - assertThat(CONVERSION_SERVICE.convert(NOW, LocalDateTime.class).toString()) - .isEqualTo(format(NOW, "yyyy-MM-dd'T'HH:mm:ss.SSS")); + + assertThat(CONVERSION_SERVICE.convert(NOW, LocalDateTime.class)) // + .matches(date(NOW, "yyyy-MM-dd'T'HH:mm:ss.SSS")); } @Test // DATACMNS-606 public void convertsLocalDateTimeToDate() { LocalDateTime now = LocalDateTime.now(); - assertThat(format(CONVERSION_SERVICE.convert(now, Date.class), "yyyy-MM-dd'T'HH:mm:ss.SSS")) - .isEqualTo(now.toString()); + assertThat(CONVERSION_SERVICE.convert(now, Date.class)) // + .matches(temporal(now, "yyyy-MM-dd'T'HH:mm:ss.SSS")); } @Test // DATACMNS-606 public void convertsDateToLocalDate() { - assertThat(CONVERSION_SERVICE.convert(NOW, LocalDate.class).toString()).isEqualTo(format(NOW, "yyyy-MM-dd")); + assertThat(CONVERSION_SERVICE.convert(NOW, LocalDate.class)).matches(date(NOW, "yyyy-MM-dd")); } @Test // DATACMNS-606 public void convertsLocalDateToDate() { LocalDate now = LocalDate.now(); - assertThat(format(CONVERSION_SERVICE.convert(now, Date.class), "yyyy-MM-dd")).isEqualTo(now.toString()); + assertThat(CONVERSION_SERVICE.convert(now, Date.class)).matches(temporal(now, "yyyy-MM-dd")); } @Test // DATACMNS-606 public void convertsDateToLocalTime() { - assertThat(CONVERSION_SERVICE.convert(NOW, LocalTime.class).toString()).isEqualTo(format(NOW, "HH:mm:ss.SSS")); + + assertThat(CONVERSION_SERVICE.convert(NOW, LocalTime.class)).matches(date(NOW, "HH:mm:ss.SSS")); } @Test // DATACMNS-606 public void convertsLocalTimeToDate() { LocalTime now = LocalTime.now(); - assertThat(format(CONVERSION_SERVICE.convert(now, Date.class), "HH:mm:ss.SSS")).isEqualTo(now.toString()); + assertThat(CONVERSION_SERVICE.convert(now, Date.class)).matches(temporal(now, "HH:mm:ss.SSS")); } @Test // DATACMNS-623 @@ -141,6 +147,18 @@ public class Jsr310ConvertersUnitTests { private static String format(Date date, String format) { return new SimpleDateFormat(format).format(date); } + + private static Predicate temporal(Temporal expected, String format) { + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format); + return d -> format(d, format).equals(formatter.format(expected)); + } + + private static Predicate date(Date expected, String format) { + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format); + return d -> formatter.format(d).equals(format(expected, format)); + } } @RunWith(Parameterized.class)