diff options
author | Valerij Fredriksen <valerijf@verizonmedia.com> | 2020-08-18 14:48:26 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@verizonmedia.com> | 2020-08-18 14:49:52 +0200 |
commit | 4fd969f216cd264d49ea28e50ac6beaed163a0ea (patch) | |
tree | 6b4f88fbc8d01425986c0d3a5b48d546a6b5f59d /jdisc_core | |
parent | 1ec11fea21acbb3a0f6a8d04da9c6aea54d33b63 (diff) |
Make it possible to instantiate TestTimer at a given Instant
Diffstat (limited to 'jdisc_core')
-rw-r--r-- | jdisc_core/src/main/java/com/yahoo/jdisc/test/TestTimer.java | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/test/TestTimer.java b/jdisc_core/src/main/java/com/yahoo/jdisc/test/TestTimer.java index 4d274a33a1f..980e8e008b6 100644 --- a/jdisc_core/src/main/java/com/yahoo/jdisc/test/TestTimer.java +++ b/jdisc_core/src/main/java/com/yahoo/jdisc/test/TestTimer.java @@ -4,6 +4,8 @@ package com.yahoo.jdisc.test; import com.yahoo.jdisc.Timer; import java.time.Duration; +import java.time.Instant; +import java.util.Objects; /** * A {@link Timer} to be used in tests when the advancement of time needs to be controlled. @@ -11,21 +13,34 @@ import java.time.Duration; * @author hakonhall */ public class TestTimer implements Timer { - private Duration durationSinceEpoch = Duration.ZERO; + private Instant instant; + + public TestTimer() { + this(Instant.EPOCH); + } + + public TestTimer(Instant instant) { + this.instant = Objects.requireNonNull(instant); + } public void setMillis(long millisSinceEpoch) { - durationSinceEpoch = Duration.ofMillis(millisSinceEpoch); + instant = Instant.ofEpochMilli(millisSinceEpoch); } public void advanceMillis(long millis) { advance(Duration.ofMillis(millis)); } public void advanceSeconds(long seconds) { advance(Duration.ofSeconds(seconds)); } public void advanceMinutes(long minutes) { advance(Duration.ofMinutes(minutes)); } public void advance(Duration duration) { - durationSinceEpoch = durationSinceEpoch.plus(duration); + instant = instant.plus(duration); + } + + @Override + public Instant currentTime() { + return instant; } @Override public long currentTimeMillis() { - return durationSinceEpoch.toMillis(); + return instant.toEpochMilli(); } } |