public void Consistent_hashing_router_must_adjust_node_ring_when_routee_dies()
{
//create pool router with two routees
var router5 =
Sys.ActorOf(Props.Create<Echo>().WithRouter(new ConsistentHashingPool(2, null, null, null)), "router5");
((RoutedActorRef)router5).Children.Count().ShouldBe(2);
router5.Tell(new Msg("a", "A"), TestActor);
var actorWhoDies = ExpectMsg<IActorRef>();
//kill off the actor
actorWhoDies.Tell(PoisonPill.Instance);
//might take some time for the deathwatch to get processed
AwaitAssert(() =>
{
router5.Tell(new Msg("a", "A"), TestActor);
//verify that a different actor now owns this hash range
var actorWhoDidntDie = ExpectMsg<IActorRef>(TimeSpan.FromMilliseconds(50));
actorWhoDidntDie.ShouldNotBe(actorWhoDies);
}, TimeSpan.FromSeconds(5));
}
}