Class BehaviorTestKit<T>

java.lang.Object
org.apache.pekko.actor.testkit.typed.javadsl.BehaviorTestKit<T>

public abstract class BehaviorTestKit<T> extends Object
Used for synchronous testing pekko.actor.typed.Behaviors. Stores all effects e.g. Spawning of children, watching and offers access to what effects have taken place.

Not for user extension or instantiation. See BehaviorTestKit.create factory methods

For asynchronous testing of Behaviors running see ActorTestKit

  • Constructor Details

    • BehaviorTestKit

      public BehaviorTestKit()
  • Method Details

    • applicationTestConfig

      public static com.typesafe.config.Config applicationTestConfig()
      JAVA API
    • create

      public static <T> BehaviorTestKit<T> create(Behavior<T> initialBehavior, String name, com.typesafe.config.Config config)
      JAVA API
    • create

      public static <T> BehaviorTestKit<T> create(Behavior<T> initialBehavior, String name)
      JAVA API
    • create

      public static <T> BehaviorTestKit<T> create(Behavior<T> initialBehavior)
      JAVA API
    • getEffect

      public abstract Effect getEffect()
      Requests the oldest Effect or pekko.actor.testkit.typed.javadsl.Effects.noEffects if no effects have taken place. The effect is consumed, subsequent calls won't will not include this effect.
    • childInbox

      public abstract <U> TestInbox<U> childInbox(String name)
      Get the child inbox for the child with the given name, or fail if there is no child with the given name spawned
    • childInbox

      public abstract <U> TestInbox<U> childInbox(ActorRef<U> child)
      Get the child inbox for the child with the given name, or fail if there is no child with the given name spawned
    • childTestKit

      public abstract <U> BehaviorTestKit<U> childTestKit(ActorRef<U> child)
      Get the pekko.actor.typed.Behavior testkit for the given child pekko.actor.typed.ActorRef.
    • selfInbox

      public abstract TestInbox<T> selfInbox()
      The self inbox contains messages the behavior sent to context.self
    • getRef

      public ActorRef<T> getRef()
      The self reference of the actor living inside this testkit.
    • getAllEffects

      public abstract List<Effect> getAllEffects()
      Requests all the effects. The effects are consumed, subsequent calls will only see new effects.
    • hasEffects

      public abstract boolean hasEffects()
      Returns if there have been any effects.
    • expectEffect

      public abstract void expectEffect(Effect expectedEffect)
      Asserts that the oldest effect is the expectedEffect. Removing it from further assertions.
    • expectEffectClass

      public abstract <U extends Effect> U expectEffectClass(Class<U> effectClass)
      Asserts that the oldest effect is an instance of of class T. Consumes and returns the concrete effect for further direct assertions.
    • currentBehavior

      public abstract Behavior<T> currentBehavior()
      The current behavior, can change any time run is called
    • returnedBehavior

      public abstract Behavior<T> returnedBehavior()
      Returns the current behavior as it was returned from processing the previous message. For example if pekko.actor.typed.javadsl.Behaviors.unhandled is returned it will be kept here, but not in currentBehavior().
    • isAlive

      public abstract boolean isAlive()
      Is the current behavior alive or stopped
    • run

      public abstract void run(T message)
      Send the message to the behavior and record any Effects
    • runOne

      public abstract void runOne()
      Send the first message in the selfInbox to the behavior and run it, recording Effects.
    • signal

      public abstract void signal(Signal signal)
      Send the signal to the beheavior and record any Effects
    • getAllLogEntries

      public abstract List<CapturedLogEvent> getAllLogEntries()
      Returns all the CapturedLogEvent issued by this behavior(s)
    • clearLog

      public abstract void clearLog()
      Clear the log entries
    • receptionistInbox

      public abstract TestInbox<Receptionist.Command> receptionistInbox()
      The receptionist inbox contains messages sent to system.receptionist