Class TimeProvider.TimeTraveller

java.lang.Object
org.frankframework.util.TimeProvider.TimeTraveller
All Implemented Interfaces:
AutoCloseable
Enclosing class:
TimeProvider

public static class TimeProvider.TimeTraveller extends Object implements AutoCloseable
TimeTraveller instances provide scoped access to modifying the "current time" in code. Closing the TimeTraveller instance will reset the clock to actual system time.
  • Method Details

    • close

      public void close()
      Closing the TimeTraveller resets the clock to the system default clock, this ends the scope of the time-travel.
      Specified by:
      close in interface AutoCloseable
    • setClock

      public void setClock(@NonNull Clock clock)
      ONLY FOR UNIT TESTING! Set a clock to use. Typically this is for testing, when you want to use a more specialized Clock to set a specific time or behaviour than can be done by setting a clock with a fixed point in time.
      Parameters:
      clock - Clock to use.
    • getClock

      public Clock getClock()
      Get the Clock currently being used. This clock can be used to get the current time, or as a base-clock to create other specialized clocks for testing, which is the reason to make it accessible.
    • setTime

      public void setTime(long millis)
      ONLY FOR UNIT TESTING! Set the clock to a fixed date-time from the milliseconds since 1-1-1970 passed in.
      Parameters:
      millis - Time in epoch-milliseconds to which to set the clock.
    • setTime

      public void setTime(LocalDateTime localDateTime)
      ONLY FOR UNIT TESTING! Set the clock to a fixed date-time from the local date-time passed in.
      Parameters:
      localDateTime - Time to which to set the clock.
    • setTime

      public void setTime(ZonedDateTime zonedDateTime)
      ONLY FOR UNIT TESTING! Set the clock to a fixed date-time from the date-time invalid input: '&' timezone passed in.
      Parameters:
      zonedDateTime - The time to which to set the clock.
    • resetClock

      public void resetClock()
      ONLY FOR UNIT TESTING! Resets the clock to the default System UTC clock. This should be used in the test-teardown method of unit tests when the unit tests have set the clock to a none-default clock.