Package org.apache.pekko.testkit
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>
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", _) => goto(2)
}
when(2) {
case Event("world", _) => goto(1)
}
})
assert (fsm.stateName == 1)
fsm ! "hallo"
assert (fsm.stateName == 2)
assert (fsm.underlyingActor.getLog == IndexedSeq(FSMLogEntry(1, null, "hallo")))
-
Constructor Summary
ConstructorsConstructorDescriptionTestFSMRef(ActorSystem system, Props props, ActorRef supervisor, String name, scala.$less$colon$less<T, FSM<S, D>> ev) -
Method Summary
Modifier and TypeMethodDescriptionstatic <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) 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) 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) 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) voidcancelTimer(String name) Proxy forpekko.actor.FSM#cancelTimer.booleanProxy forpekko.actor.FSM#isStateTimerActive.booleanisTimerActive(String name) Proxy forpekko.actor.FSM#isStateTimerActive.voidsetState(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).scala.concurrent.duration.FiniteDurationscala.Option<FSM.Reason>voidstartSingleTimer(String name, Object msg, scala.concurrent.duration.FiniteDuration delay) Proxy forpekko.actor.FSM#startSingleTimer.voidstartTimerAtFixedRate(String name, Object msg, scala.concurrent.duration.FiniteDuration interval) Proxy forpekko.actor.FSM#startTimerAtFixedRate.voidstartTimerWithFixedDelay(String name, Object msg, scala.concurrent.duration.FiniteDuration delay) Proxy forpekko.actor.FSM#startTimerWithFixedDelay.Get current state data of this FSM.Get current state name of this FSM.
-
Constructor Details
-
TestFSMRef
-
-
Method Details
-
apply
public static <S,D, TestFSMRef<S,T extends Actor> D, applyT> (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, TestFSMRef<S,T extends Actor> D, applyT> (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, TestFSMRef<S,T extends Actor> D, applyT> (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, TestFSMRef<S,T extends Actor> D, applyT> (scala.Function0<T> factory, ActorRef supervisor, scala.reflect.ClassTag<T> evidence$4, scala.$less$colon$less<T, FSM<S, D>> ev, ActorSystem system) -
stateName
Get current state name of this FSM. -
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
-
setState$default$2
-
setState$default$3
public scala.concurrent.duration.FiniteDuration setState$default$3() -
setState$default$4
-
startTimerWithFixedDelay
public void startTimerWithFixedDelay(String name, Object msg, scala.concurrent.duration.FiniteDuration delay) Proxy forpekko.actor.FSM#startTimerWithFixedDelay. -
startTimerAtFixedRate
public void startTimerAtFixedRate(String name, Object msg, scala.concurrent.duration.FiniteDuration interval) Proxy forpekko.actor.FSM#startTimerAtFixedRate. -
startSingleTimer
public void startSingleTimer(String name, Object msg, scala.concurrent.duration.FiniteDuration delay) Proxy forpekko.actor.FSM#startSingleTimer. -
cancelTimer
Proxy forpekko.actor.FSM#cancelTimer. -
isTimerActive
Proxy forpekko.actor.FSM#isStateTimerActive. -
isStateTimerActive
public boolean isStateTimerActive()Proxy forpekko.actor.FSM#isStateTimerActive.
-