예제 #1
0
        public void Router_in_general_must_use_specified_resizer_when_resizer_not_configured()
        {
            var latch   = new TestLatch(Sys, 1);
            var resizer = new TestResizer(latch);
            var router  =
                Sys.ActorOf(
                    Props.Create <NoOpActor>()
                    .WithRouter(new RoundRobinPool(0, resizer, SupervisorStrategy.DefaultStrategy, "")));

            latch.Open();
            router.Tell(new GetRoutees(), TestActor);
            ExpectMsg <Routees>().Members.Count().ShouldBe(2);
            Sys.Stop(router);
        }
예제 #2
0
        public void Routers_in_general_must_not_terminate_when_resizer_is_used()
        {
            var latch   = new TestLatch(1);
            var resizer = new TestResizer(latch);
            var router  = Sys.ActorOf(new RoundRobinPool(0, resizer).Props(Props.Create <BlackHoleActor>()));

            Watch(router);
            latch.Ready(RemainingOrDefault);

            router.Tell(new GetRoutees());
            var routees = ExpectMsg <Routees>().Members.ToList();

            routees.Count.Should().Be(2);

            routees.ForEach(r => r.Send(PoisonPill.Instance, TestActor));

            // expect no Terminated
            ExpectNoMsg(2.Seconds());
        }
예제 #3
0
        public void Router_in_general_must_not_terminate_when_resizer_is_used()
        {
            var latch   = new TestLatch(Sys, 1);
            var resizer = new TestResizer(latch);
            var router  =
                Sys.ActorOf(new RoundRobinPool(0, resizer, SupervisorStrategy.DefaultStrategy, "").Props(Props.Create <NoOpActor>()));

            Watch(router);

            latch.Open();
            //Await.ready(latch, remainingOrDefault); //TODO: what is remainingOrDefault

            router.Tell(new GetRoutees(), TestActor);
            var routees = ExpectMsg <Routees>().Members.ToList();

            routees.Count().ShouldBe(2);
            routees.ForEach(r => r.Send(PoisonPill.Instance, TestActor));
            // expect no Terminated
            ExpectNoMsg(TimeSpan.FromSeconds(2));
        }
예제 #4
0
        public void Router_in_general_must_use_specified_resizer_when_resizer_not_configured()
        {
            var latch = new TestLatch(1);
            var resizer = new TestResizer(latch);
            var router =
                Sys.ActorOf(
                    Props.Create<BlackHoleActor>()
                        .WithRouter(new RoundRobinPool(0, resizer, SupervisorStrategy.DefaultStrategy, null)));
            latch.Open();
            router.Tell(new GetRoutees(),TestActor);
            ExpectMsg<Routees>().Members.Count().ShouldBe(2);
            Sys.Stop(router);

        }             
예제 #5
0
        public void Router_in_general_must_not_terminate_when_resizer_is_used()
        {
            var latch = new TestLatch(1);
            var resizer = new TestResizer(latch);
            var router =
                Sys.ActorOf(new RoundRobinPool( 0, resizer,SupervisorStrategy.DefaultStrategy,null).Props(Props.Create<BlackHoleActor>()));

            Watch(router);

            latch.Open();
            //Await.ready(latch, remainingOrDefault); //TODO: what is remainingOrDefault
            
            router.Tell(new GetRoutees(),TestActor);
            var routees = ExpectMsg<Routees>().Members.ToList();

            routees.Count().ShouldBe(2);
            routees.ForEach(r => r.Send(PoisonPill.Instance,TestActor));
            // expect no Terminated
            ExpectNoMsg(TimeSpan.FromSeconds(2));
        }
예제 #6
0
        public void Routers_in_general_must_not_terminate_when_resizer_is_used()
        {
            var latch = new TestLatch(1);
            var resizer = new TestResizer(latch);
            var router = Sys.ActorOf(new RoundRobinPool(0, resizer).Props(Props.Create<BlackHoleActor>()));
            Watch(router);
            latch.Ready(RemainingOrDefault);

            router.Tell(new GetRoutees());
            var routees = ExpectMsg<Routees>().Members.ToList();
            routees.Count.Should().Be(2);

            routees.ForEach(r => r.Send(PoisonPill.Instance, TestActor));
            
            // expect no Terminated
            ExpectNoMsg(2.Seconds());
        }