Class TestFSMRef<S,​D,​T extends Actor>


  • 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 Detail

      • TestFSMRef

        public TestFSMRef​(ActorSystem system,
                          Props props,
                          ActorRef supervisor,
                          java.lang.String name,
                          scala.$less$colon$less<T,​FSM<S,​D>> ev)
    • Method Detail

      • apply

        public static <S,​D,​T extends ActorTestFSMRef<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 ActorTestFSMRef<S,​D,​T> apply​(scala.Function0<T> factory,
                                                                                            java.lang.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 ActorTestFSMRef<S,​D,​T> apply​(scala.Function0<T> factory,
                                                                                            ActorRef supervisor,
                                                                                            java.lang.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 ActorTestFSMRef<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​(java.lang.String name,
                                             java.lang.Object msg,
                                             scala.concurrent.duration.FiniteDuration delay)
        Proxy for pekko.actor.FSM#startTimerWithFixedDelay.
      • startTimerAtFixedRate

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

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

        public void setTimer​(java.lang.String name,
                             java.lang.Object msg,
                             scala.concurrent.duration.FiniteDuration timeout,
                             boolean repeat)
        Deprecated.
        Use startTimerWithFixedDelay or startTimerAtFixedRate instead. This has the same semantics as startTimerAtFixedRate, but startTimerWithFixedDelay is often preferred. Since Akka 2.6.0.
        Proxy for pekko.actor.FSM#setTimer.
      • setTimer$default$4

        public boolean setTimer$default$4()
      • cancelTimer

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

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

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