Class StubDeadlineManager

java.lang.Object
org.axonframework.test.deadline.StubDeadlineManager
All Implemented Interfaces:
org.axonframework.deadline.DeadlineManager, org.axonframework.messaging.MessageDispatchInterceptorSupport<org.axonframework.deadline.DeadlineMessage<?>>, org.axonframework.messaging.MessageHandlerInterceptorSupport<org.axonframework.deadline.DeadlineMessage<?>>

public class StubDeadlineManager extends Object implements org.axonframework.deadline.DeadlineManager
Stub implementation of DeadlineManager. Records all scheduled, canceled and met deadlines.
Since:
3.3
Author:
Milan Savic, Steven van Beelen
  • Constructor Details

    • StubDeadlineManager

      public StubDeadlineManager()
      Initializes the manager with ZonedDateTime.now() as current time.
    • StubDeadlineManager

      public StubDeadlineManager(TemporalAccessor currentDateTime)
      Initializes the manager with provided currentDateTime as current time.
      Parameters:
      currentDateTime - The instance to use as current date and time
  • Method Details

    • initializeAt

      public void initializeAt(TemporalAccessor currentDateTime) throws IllegalStateException
      Resets the initial "current time" of this manager. Must be called before any deadlines are scheduled.
      Parameters:
      currentDateTime - The instant to use as the current date and time
      Throws:
      IllegalStateException - when calling this method after deadlines are scheduled
    • schedule

      @Nonnull public String schedule(@Nonnull Instant triggerDateTime, @Nonnull String deadlineName, Object payloadOrMessage, @Nonnull org.axonframework.messaging.ScopeDescriptor deadlineScope)
      Specified by:
      schedule in interface org.axonframework.deadline.DeadlineManager
    • schedule

      @Nonnull public String schedule(@Nonnull Duration triggerDuration, @Nonnull String deadlineName, Object payloadOrMessage, @Nonnull org.axonframework.messaging.ScopeDescriptor deadlineScope)
      Specified by:
      schedule in interface org.axonframework.deadline.DeadlineManager
    • cancelSchedule

      public void cancelSchedule(@Nonnull String deadlineName, @Nonnull String scheduleId)
      Specified by:
      cancelSchedule in interface org.axonframework.deadline.DeadlineManager
    • cancelAll

      public void cancelAll(@Nonnull String deadlineName)
      Specified by:
      cancelAll in interface org.axonframework.deadline.DeadlineManager
    • cancelAllWithinScope

      public void cancelAllWithinScope(@Nonnull String deadlineName, @Nonnull org.axonframework.messaging.ScopeDescriptor scope)
      Specified by:
      cancelAllWithinScope in interface org.axonframework.deadline.DeadlineManager
    • getScheduledDeadlines

      public List<ScheduledDeadlineInfo> getScheduledDeadlines()
      Return all scheduled deadlines which have not been met (yet).
      Returns:
      all scheduled deadlines which have not been met (yet)
    • getDeadlinesMet

      @Deprecated public List<ScheduledDeadlineInfo> getDeadlinesMet()
      Deprecated.
      Return all deadlines which have been met.
      Returns:
      all deadlines which have been met
    • getTriggeredDeadlines

      public List<ScheduledDeadlineInfo> getTriggeredDeadlines()
      Return all triggered deadlines.
      Returns:
      all triggered deadlines
    • getCurrentDateTime

      public Instant getCurrentDateTime()
      Return the current date and time as an Instant as is being used by this DeadlineManager.
      Returns:
      the current date and time used by the manager
    • advanceToNextTrigger

      public ScheduledDeadlineInfo advanceToNextTrigger()
      Advances the "current time" of the manager to the next scheduled deadline, and returns that deadline. In theory, this may cause "current time" to move backwards.
      Returns:
      ScheduledDeadlineInfo of the first scheduled deadline
    • advanceTimeTo

      public void advanceTimeTo(Instant newDateTime, DeadlineConsumer deadlineConsumer)
      Advances time to the given newDateTime and invokes the given deadlineConsumer for each deadline scheduled until that time.
      Parameters:
      newDateTime - the time to advance the "current time" of the manager to
      deadlineConsumer - the consumer to invoke for each deadline to trigger
    • advanceTimeBy

      public void advanceTimeBy(Duration duration, DeadlineConsumer deadlineConsumer)
      Advances time by the given duration and invokes the given deadlineConsumer for each deadline scheduled until that time.
      Parameters:
      duration - the amount of time to advance the "current time" of the manager with
      deadlineConsumer - the consumer to invoke for each deadline to trigger
    • registerDispatchInterceptor

      @Nonnull public org.axonframework.common.Registration registerDispatchInterceptor(@Nonnull org.axonframework.messaging.MessageDispatchInterceptor<? super org.axonframework.deadline.DeadlineMessage<?>> dispatchInterceptor)
      Specified by:
      registerDispatchInterceptor in interface org.axonframework.messaging.MessageDispatchInterceptorSupport<org.axonframework.deadline.DeadlineMessage<?>>
    • registerHandlerInterceptor

      @Nonnull public org.axonframework.common.Registration registerHandlerInterceptor(@Nonnull org.axonframework.messaging.MessageHandlerInterceptor<? super org.axonframework.deadline.DeadlineMessage<?>> handlerInterceptor)
      Specified by:
      registerHandlerInterceptor in interface org.axonframework.messaging.MessageHandlerInterceptorSupport<org.axonframework.deadline.DeadlineMessage<?>>