Пример #1
0
        public void PostRestartErrTest()
        {
            Exception e = null;
            var acts = new ActorSystem();

            var act = acts.CreateActor<RestartFaultActor>();
            try
            {
                acts.RestartActor(act);
            }
            catch (Exception ex) { e = ex; }

            Assert.IsNotNull(e);
        }
Пример #2
0
        public void PostRestartTest()
        {
            var acts = new ActorSystem();
            var act = acts.CreateActor<IntoTestActor>();

            var tsk = act.Ask<int>(new statemsg());
            tsk.Wait();

            Assert.AreEqual(10, tsk.Result);

            acts.RestartActor(act);

            tsk = act.Ask<int>(new statemsg());
            tsk.Wait();

            Assert.AreEqual(15, tsk.Result);
        }
Пример #3
0
        public void SimpleTestRestartActor()
        {
            var acts = new ActorSystem();
            var act = acts.CreateActor<SimpleTestActor>();

            var m = new statemsg() { newstate = 10 };

            var tsk = act.Ask<int>(m);
            tsk.Wait();

            m = new statemsg() { newstate = 10 };

            tsk = act.Ask<int>(m);
            tsk.Wait();

            Assert.AreEqual(10, tsk.Result);

            acts.RestartActor(act);

            m = new statemsg() { newstate = 10 };

            tsk = act.Ask<int>(m);
            tsk.Wait();

            Assert.AreEqual(0, tsk.Result);

            Console.WriteLine("test complete");
        }
Пример #4
0
        public void ChildHasStopedOrRestartedOnlyByParent()
        {
            var actf = new ActorSystem();
            var act1 = actf.CreateActor<IerarhyTestActorOvveride>();

            var tsk = act1.Ask<ActorRef>(new createchildactormsg());
            tsk.Wait();

            var act2 = tsk.Result;
            Assert.IsNotNull(act2);

            bool f = false;

            try
            {

                actf.StopActor(act2);
            }
            catch
            {
                f = true;
            }

            Assert.IsTrue(f);
            f = false;

            try
            {

                actf.RestartActor(act2);
            }
            catch
            {
                f = true;
            }

            Assert.IsTrue(f);
        }
Пример #5
0
        public void RestartParentWithUserPredRestartNotStoppingChilds()
        {
            var actf = new ActorSystem();
            var act1 = actf.CreateActor<IerarhyTestActorOvveride>();

            var tsk = act1.Ask<ActorRef>(new createchildactormsg());
            tsk.Wait();

            var act2 = tsk.Result;
            Assert.IsNotNull(act2);

            actf.RestartActor(act1);

            bool f = false;
            try
            {
                act1.Ask<int>(new acttestmsg()
                {
                    act = () => { return 0; }
                })
                    .Wait(100);
            }
            catch
            {
                f = true;
            }

            Assert.IsFalse(f);
            f = false;
            try
            {
                act2.Ask<int>(new acttestmsg()
                {
                    act = () => { return 0; }
                })
                    .Wait(100);
            }
            catch
            {
                f = true;
            }

            Assert.IsFalse(f);
        }
Пример #6
0
        public void PredRestartTest()
        {
            var actf = new ActorSystem();
            var act = actf.CreateActor<PredRestartTestActor>();

            var tsk = act.Ask<int>(new setstate() { x = 20 });
            tsk.Wait();

            tsk = act.Ask<int>(new getstate());
            tsk.Wait();

            Assert.AreEqual(20, tsk.Result);

            int savestate = 0;
            tsk = act.Ask<int>(new setpra()
            {
                pra = (state) =>
                {

                    savestate = state;
                }
            });
            tsk.Wait();

            actf.RestartActor(act);

            Assert.AreEqual(20, savestate);

            tsk = act.Ask<int>(new getstate());
            tsk.Wait();

            Assert.AreEqual(0, tsk.Result);
        }
Пример #7
0
        public void FaultOnRestartStoppingActor()
        {
            bool f = false;
            var acts = new ActorSystem();

            var act = acts.CreateActor<RestartFaultActor>();
            try
            {
                acts.RestartActor(act);
            }
            catch  { }

            var tsk = act.Ask<int>(new acttestmsg() { act = () => { return 0; } });
            try { tsk.Wait(); }
            catch { f = true; }

            Assert.IsTrue(f);
        }