GH-359 - Add Now.instant().

This commit is contained in:
Oliver Drotbohm
2023-11-03 10:42:30 +01:00
parent 20a7474f2f
commit 4e453885ee
3 changed files with 28 additions and 4 deletions

View File

@@ -129,10 +129,7 @@ public class Moments implements Now {
*/
@Override
public LocalDateTime now() {
Instant instant = clock.instant().plus(shift);
return LocalDateTime.ofInstant(instant, properties.getZoneId());
return LocalDateTime.ofInstant(instant(), properties.getZoneId());
}
/*
@@ -144,6 +141,15 @@ public class Moments implements Now {
return now().toLocalDate();
}
/*
* (non-Javadoc)
* @see org.springframework.modulith.moments.support.Now#instant()
*/
@Override
public Instant instant() {
return clock.instant().plus(shift);
}
private void emitEventsFor(LocalDateTime time) {
events.publishEvent(HourHasPassed.of(time.truncatedTo(ChronoUnit.HOURS)));
}

View File

@@ -15,6 +15,7 @@
*/
package org.springframework.modulith.moments.support;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -41,4 +42,11 @@ public interface Now {
* @return will never be {@literal null}.
*/
LocalDate today();
/**
* Returns the current Instant.
*
* @return will never be {@literal null}.
*/
Instant instant();
}

View File

@@ -24,6 +24,7 @@ import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.Year;
import java.time.ZoneOffset;
import java.time.temporal.ChronoUnit;
import java.time.temporal.WeekFields;
import java.util.Locale;
@@ -173,6 +174,15 @@ class MomentsUnitTests {
assertThat(before.plus(duration)).isCloseTo(after, within(200, ChronoUnit.MILLIS));
}
@Test // GH-359
void returnsInstant() {
var instant = hourly.instant();
var now = hourly.now();
assertThat(LocalDateTime.ofInstant(instant, ZoneOffset.UTC)).isCloseTo(now, within(50, ChronoUnit.MILLIS));
}
private Duration getNumberOfDaysForThreeMonth(LocalDate date) {
int days = 0;