Class TestFSMRef<S,D,T extends Actor>

java.lang.Object
org.apache.pekko.actor.LocalActorRef
org.apache.pekko.testkit.TestActorRef<T>
org.apache.pekko.testkit.TestFSMRef<S,D,T>

public class TestFSMRef<S,D,T extends Actor> extends TestActorRef<T>
This is a specialized form of the TestActorRef with support for querying and setting the state of a FSM. Use a LoggingFSM with this class if you also need to inspect event traces.


 val fsm = TestFSMRef(new Actor with LoggingFSM[Int, Null] {
     override def logDepth = 12
     startWith(1, null)
     when(1) {
       case Event("hello", _) =&gt; goto(2)
     }
     when(2) {
       case Event("world", _) =&gt; goto(1)
     }
   })
 assert (fsm.stateName == 1)
 fsm ! "hallo"
 assert (fsm.stateName == 2)
 assert (fsm.underlyingActor.getLog == IndexedSeq(FSMLogEntry(1, null, "hallo")))
 
  • Constructor Details

  • Method Details

    • apply

      public static <S, D, T extends Actor> TestFSMRef<S,D,T> apply(scala.Function0<T> factory, scala.reflect.ClassTag<T> evidence$1, scala.$less$colon$less<T,FSM<S,D>> ev, ActorSystem system)
    • apply

      public static <S, D, T extends Actor> TestFSMRef<S,D,T> apply(scala.Function0<T> factory, String name, scala.reflect.ClassTag<T> evidence$2, scala.$less$colon$less<T,FSM<S,D>> ev, ActorSystem system)
    • apply

      public static <S, D, T extends Actor> TestFSMRef<S,D,T> apply(scala.Function0<T> factory, ActorRef supervisor, String name, scala.reflect.ClassTag<T> evidence$3, scala.$less$colon$less<T,FSM<S,D>> ev, ActorSystem system)
    • apply

      public static <S, D, T extends Actor> TestFSMRef<S,D,T> apply(scala.Function0<T> factory, ActorRef supervisor, scala.reflect.ClassTag<T> evidence$4, scala.$less$colon$less<T,FSM<S,D>> ev, ActorSystem system)
    • stateName

      public S stateName()
      Get current state name of this FSM.
    • stateData

      public D stateData()
      Get current state data of this FSM.
    • setState

      public void setState(S stateName, D stateData, scala.concurrent.duration.FiniteDuration timeout, scala.Option<FSM.Reason> stopReason)
      Change FSM state; any value left out defaults to the current FSM state (timeout defaults to None). This method is directly equivalent to a corresponding transition initiated from within the FSM, including timeout and stop handling.
    • setState$default$1

      public S setState$default$1()
    • setState$default$2

      public D setState$default$2()
    • setState$default$3

      public scala.concurrent.duration.FiniteDuration setState$default$3()
    • setState$default$4

      public scala.Option<FSM.Reason> setState$default$4()
    • startTimerWithFixedDelay

      public void startTimerWithFixedDelay(String name, Object msg, scala.concurrent.duration.FiniteDuration delay)
      Proxy for pekko.actor.FSM#startTimerWithFixedDelay.
    • startTimerAtFixedRate

      public void startTimerAtFixedRate(String name, Object msg, scala.concurrent.duration.FiniteDuration interval)
      Proxy for pekko.actor.FSM#startTimerAtFixedRate.
    • startSingleTimer

      public void startSingleTimer(String name, Object msg, scala.concurrent.duration.FiniteDuration delay)
      Proxy for pekko.actor.FSM#startSingleTimer.
    • cancelTimer

      public void cancelTimer(String name)
      Proxy for pekko.actor.FSM#cancelTimer.
    • isTimerActive

      public boolean isTimerActive(String name)
      Proxy for pekko.actor.FSM#isStateTimerActive.
    • isStateTimerActive

      public boolean isStateTimerActive()
      Proxy for pekko.actor.FSM#isStateTimerActive.