public void Tail_chopping_router_must_throw_exception_if_no_result_will_arrive_within_the_given_time() { var actor1 = Sys.ActorOf(Props.Create(() => new TailChopTestActor(500)), "Actor5"); var actor2 = Sys.ActorOf(Props.Create(() => new TailChopTestActor(500)), "Actor6"); var probe = CreateTestProbe(); var routedActor = Sys.ActorOf(Props.Create <TestActor>() .WithRouter(new TailChoppingGroup( new[] { actor1.Path.ToString(), actor2.Path.ToString() }, TimeSpan.FromMilliseconds(300), TimeSpan.FromMilliseconds(50)) )); probe.Send(routedActor, ""); probe.ExpectMsg <Status.Failure>(TimeSpan.FromMilliseconds(700)); var actorList = new List <IActorRef> { actor1, actor2 }; Assert.True(AllShouldEqual(1, actorList)(x => (int)x.Ask("times").Result)); routedActor.Tell(new Broadcast("stop")); }
public void Tail_chopping_group_router_must_throw_exception_if_no_result_will_arrive_within_the_given_time() { var actor1 = Sys.ActorOf(Props.Create(() => new TailChopTestActor(1500.Milliseconds())), "Actor3"); var actor2 = Sys.ActorOf(Props.Create(() => new TailChopTestActor(1500.Milliseconds())), "Actor4"); var probe = CreateTestProbe(); var paths = new List <string> { actor1.Path.ToString(), actor2.Path.ToString() }; var routedActor = Sys.ActorOf(new TailChoppingGroup(paths, TimeSpan.FromMilliseconds(300), TimeSpan.FromMilliseconds(50)).Props()); probe.Send(routedActor, ""); var failure = probe.ExpectMsg <Status.Failure>(); failure.Cause.Should().BeOfType <AskTimeoutException>(); var actorList = new List <IActorRef> { actor1, actor2 }; AllShouldEqual(1, actorList)(x => (int)x.Ask("times").Result).Should().BeTrue();; routedActor.Tell(new Broadcast("stop")); }