public void AtLeastOnceDeliveryActorSetsDeliverySnapshotDuringRecovery() { var atLeastOnceDeliverySettings = new PersistenceSettings.AtLeastOnceDeliverySettings(TimeSpan.FromMilliseconds(200), 2, 5, 10); // TestActor is the destination actor. var alodActorProps = Props.Create <AlodActor>(atLeastOnceDeliverySettings, TestActor); var alodActor = Sys.ActorOf(alodActorProps); alodActor.Tell(new Msg("payload")); Thread.Sleep(TimeSpan.FromSeconds(1)); // Allow for some retries. ExpectMsg <AlodEnvelope>(alode => LastSender.Tell(new Confirmation(alode.DeliveryId))); ReceiveWhile <object>(obj => obj as string == "Message delivered!", TimeSpan.FromSeconds(3)); ReceiveWhile <object>(obj => true, TimeSpan.FromSeconds(3)); // Discard remaining messages. alodActor.Tell("snap"); alodActor.Tell("delete"); Watch(alodActor); alodActor.Tell(PoisonPill.Instance); ExpectTerminated(alodActor); Unwatch(alodActor); alodActor = Sys.ActorOf(alodActorProps); ExpectNoMsg(TimeSpan.FromSeconds(5)); alodActor.Tell("last"); ExpectMsg <long>(l => l == 1L); }
public async Task A_Graph_stage_ActorRef_must_be_able_to_be_replied_to() { var t = Source.Maybe <int>().ToMaterialized(SumStage(TestActor), Keep.Both).Run(Materializer); var stageRef = ExpectMsg <IActorRef>(); stageRef.Tell(new AddAndTell(1)); ExpectMsg(1); stageRef.Should().Be(LastSender); LastSender.Tell(new AddAndTell(9)); ExpectMsg(10); stageRef.Tell(StopNow.Instance); (await t.Item2).Should().Be(10); }
public void A_Graph_stage_ActorRef_must_be_able_to_be_replied_to() { var t = Source.Maybe <int>().ToMaterialized(SumStage(TestActor), Keep.Both).Run(Materializer); var res = t.Item2; var stageRef = ExpectMsg <IActorRef>(); stageRef.Tell(new AddAndTell(1)); ExpectMsg(1); stageRef.Should().Be(LastSender); LastSender.Tell(new AddAndTell(9)); ExpectMsg(10); stageRef.Tell(StopNow.Instance); res.Wait(TimeSpan.FromSeconds(3)).Should().BeTrue(); res.Result.Should().Be(10); }
public async Task A_Graph_stage_ActorRef_must_yield_the_same_self_ref_each_time() { var t = Source.Maybe <int>().ToMaterialized(SumStage(TestActor), Keep.Both).Run(Materializer); var stageRef = ExpectMsg <IActorRef>(); stageRef.Tell(CallInitStageActorRef.Instance); var explicitlyObtained = ExpectMsg <IActorRef>(); stageRef.Should().Be(explicitlyObtained); explicitlyObtained.Tell(new AddAndTell(1)); ExpectMsg(1); LastSender.Tell(new AddAndTell(2)); ExpectMsg(3); stageRef.Tell(new AddAndTell(3)); ExpectMsg(6); stageRef.Tell(StopNow.Instance); (await t.Item2).Should().Be(6); }
public void A_Graph_stage_ActorRef_must_yield_the_same_self_ref_each_time() { var t = Source.Maybe <int>().ToMaterialized(SumStage(TestActor), Keep.Both).Run(Materializer); var res = t.Item2; var stageRef = ExpectMsg <IActorRef>(); stageRef.Tell(CallInitStageActorRef.Instance); var explicitlyObtained = ExpectMsg <IActorRef>(); stageRef.Should().Be(explicitlyObtained); explicitlyObtained.Tell(new AddAndTell(1)); ExpectMsg(1); LastSender.Tell(new AddAndTell(2)); ExpectMsg(3); stageRef.Tell(new AddAndTell(3)); ExpectMsg(6); stageRef.Tell(StopNow.Instance); res.Wait(TimeSpan.FromSeconds(3)).Should().BeTrue(); res.Result.Should().Be(6); }