Hello -
I have an FSM that spawns a future on one of its transitions. I pipe the
result of the future to the FSM. The future can fail and I'd like to stop
the FSM and report the error.
class MyFsm(startFuture: => Future[T]) extends FSM[...] {
when(a) {
case Event(aToB, _) => goto(b)
}
onTransition {
case a -> b => startFuture.pipeTo(self)
}
whenUnhandled {
case Event(Status.Failure(t), _) => stop(FSM.Failure(t))
}
}
As I understand it's best to pass the handling of the error to the
supervising actor. Now how can unit I test this actor, specitifcally the
failing case? I have the following, but I don't know how to check that the
FSM is in the stopped state with failure.
test("failing future") {
def startFuture
val fsm = TestFSMRef(new MyFsm(Future(throw new RuntimeException()))
fsm ! aToB
}
Also I currently see logging error message as below. Ideally I'd like to
handle the exception and prevent the logging error message from appearing.
Thanks,
Anton
--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ:
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.