diff --git a/spring-context/src/main/java/org/springframework/format/datetime/standard/InstantFormatter.java b/spring-context/src/main/java/org/springframework/format/datetime/standard/InstantFormatter.java index 010d004ae5d74267ce607065533d3782a7b8e182..456c0ad0909063c187c167627a16475ff4d0beb6 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/standard/InstantFormatter.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/standard/InstantFormatter.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2016 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -31,6 +31,7 @@ import org.springframework.format.Formatter; * (which is commonly used for HTTP date header values), as of Spring 4.3. * * @author Juergen Hoeller + * @author Andrei Nevedomskii * @since 4.0 * @see java.time.Instant#parse * @see java.time.format.DateTimeFormatter#ISO_INSTANT diff --git a/spring-context/src/test/java/org/springframework/format/datetime/standard/InstantFormatterTests.java b/spring-context/src/test/java/org/springframework/format/datetime/standard/InstantFormatterTests.java index 242f662c7d900edadd987a388722e344f2f04082..16ba2cbd5e5c88b35f62c388bb9d2c78f78320c2 100644 --- a/spring-context/src/test/java/org/springframework/format/datetime/standard/InstantFormatterTests.java +++ b/spring-context/src/test/java/org/springframework/format/datetime/standard/InstantFormatterTests.java @@ -41,7 +41,7 @@ import static org.assertj.core.api.Assertions.assertThat; * * @author Andrei Nevedomskii * @author Sam Brannen - * @since 5.2.2 + * @since 5.1.12 */ @DisplayName("InstantFormatter unit tests") @DisplayNameGeneration(ReplaceUnderscores.class) @@ -79,6 +79,27 @@ class InstantFormatterTests { assertThat(actual).isEqualTo(expected); } + private static class RandomInstantProvider implements ArgumentsProvider { + + private static final long DATA_SET_SIZE = 10; + + private static final Random random = new Random(); + + @Override + public final Stream provideArguments(ExtensionContext context) { + return provideArguments().map(Arguments::of).limit(DATA_SET_SIZE); + } + + Stream provideArguments() { + return randomInstantStream(MIN, MAX); + } + + Stream randomInstantStream(Instant min, Instant max) { + return Stream.concat(Stream.of(Instant.now()), // make sure that the data set includes current instant + random.longs(min.getEpochSecond(), max.getEpochSecond()).mapToObj(Instant::ofEpochSecond)); + } + } + private static class ISOSerializedInstantProvider extends RandomInstantProvider { @Override @@ -101,25 +122,4 @@ class InstantFormatterTests { } } - private static class RandomInstantProvider implements ArgumentsProvider { - - private static final long DATA_SET_SIZE = 10; - - private static final Random random = new Random(); - - Stream provideArguments() { - return randomInstantStream(MIN, MAX); - } - - @Override - public final Stream provideArguments(ExtensionContext context) { - return provideArguments().map(Arguments::of).limit(DATA_SET_SIZE); - } - - Stream randomInstantStream(Instant min, Instant max) { - return Stream.concat(Stream.of(Instant.now()), // make sure that the data set includes current instant - random.longs(min.getEpochSecond(), max.getEpochSecond()).mapToObj(Instant::ofEpochSecond)); - } - } - }