public void RedeliverSystemMessageAfterInactivity()
{
var echo = ActorOf<AttemptSysMsgRedeliveryMultiNetSpec.Echo>("echo");
EnterBarrier("echo-started");
Sys.ActorSelection(Node(_config.First)/"user"/"echo").Tell(new Identify(null));
var firstRef = ExpectMsg<ActorIdentity>().Subject;
Sys.ActorSelection(Node(_config.Second)/"user"/"echo").Tell(new Identify(null));
var secondRef = ExpectMsg<ActorIdentity>().Subject;
EnterBarrier("refs-retrieved");
RunOn(() =>
TestConductor.Blackhole(_config.First, _config.Second, ThrottleTransportAdapter.Direction.Both)
.Wait(),
_config.First);
EnterBarrier("blackhole");
RunOn(() => Watch(secondRef),
_config.First, _config.Third);
RunOn(() => Watch(firstRef),
_config.Second);
EnterBarrier("watch-established");
RunOn(() =>
TestConductor.PassThrough(_config.First, _config.Second, ThrottleTransportAdapter.Direction.Both)
.Wait(),
_config.First);
EnterBarrier("pass-through");
Sys.ActorSelection("/user/echo").Tell(PoisonPill.Instance);
RunOn(() => ExpectTerminated(secondRef, TimeSpan.FromSeconds(10)),
_config.First, _config.Third);
RunOn(() => ExpectTerminated(firstRef, TimeSpan.FromSeconds(10)),
_config.Second);
EnterBarrier("done");
}
}