Пример #1
0
        public void SimpleTestAskContX()
        {
            bool f = false;

            int res = 0;

            var acts = new ActorSystem();
            var act = acts.CreateActor<SimpleTestActor>();

            var m = new acttestmsg()
            {
                act = () =>
                {

                    return 10;
                },
                msg = "test message"
            };

            Task<int> tsk = null;
            tsk = act.Ask<int>((x) =>
               {
               res = x;
               if (tsk == null) return;
               if (tsk.IsCompleted) return;
               f = true;
               }, m);

            tsk.Wait();

            Assert.IsTrue(f);
            Assert.AreEqual(10, res);
            Assert.AreEqual(10, tsk.Result);
            Console.WriteLine("test complete");
        }
Пример #2
0
        public void SimpleTestAskContXErr()
        {
            bool f = false;

            int res = 0;

            var acts = new ActorSystem();
            var act = acts.CreateActor<SimpleTestActor>();

            var m = new acttestmsg()
            {
                act = () =>
                {

                    return 10/res;
                },
                msg = "test message"
            };

            Task<int> tsk = null;
            tsk = act.Ask<int>((x) =>
            {
                res = x;
                if (tsk == null) return;
                if (tsk.IsCompleted) return;
                f = true;
            }, m);

            try
            {
                tsk.Wait();
            }
            catch (AggregateException ae) { }

            Assert.IsFalse(f);
            Assert.AreEqual(0, res);
            Assert.IsNotNull(tsk.Exception);
            Console.WriteLine("test complete");
        }
Пример #3
0
        public void SimpleTestTell()
        {
            bool f = false;

            var acts = new ActorSystem();
            var act = acts.CreateActor<SimpleTestActor>();

            var m = new acttestmsg()
            {
                act = () =>
                {
                    f = true;
                    return 0;
                },
                msg = "test message"
            };

            act.Tell(m);
            while (!f)
            {
                Thread.SpinWait(0);
            }
            Console.WriteLine("test complete");
        }
Пример #4
0
        public void SimpleTestStopActor()
        {
            bool f = false;

            var acts = new ActorSystem();
            var act = acts.CreateActor<SimpleTestActor>();
            acts.StopActor(act);
            var m = new acttestmsg()
            {
                act = () =>
                {
                    f = true;
                    return 0;
                },
                msg = "test message"
            };

            var tsk = act.Ask<int>(m);
            try
            {
                tsk.Wait();
            }
            catch (AggregateException e) { }

            Assert.IsFalse(f);
            Assert.IsNotNull(tsk.Exception);
            Console.WriteLine("test complete");
        }
Пример #5
0
        public void SimpleTestAskWithoutContErr()
        {
            int res = 0;

            var acts = new ActorSystem();
            var act = acts.CreateActor<SimpleTestActor>();

            var m = new acttestmsg()
            {
                act = () =>
                {

                    return 10/res;
                },
                msg = "test message"
            };

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

            try
            {
                tsk.Wait();
            }
            catch (AggregateException ae) { }

            Assert.IsNotNull(tsk.Exception);
        }
Пример #6
0
        public void SimpleTestAskWithoutCont()
        {
            //int res = 0;

            var acts = new ActorSystem();
            var act = acts.CreateActor<SimpleTestActor>();

            var m = new acttestmsg()
            {
                act = () =>
                {

                    return 10 ;
                },
                msg = "test message"
            };

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

            tsk.Wait();

            Assert.AreEqual(10, tsk.Result);
        }
Пример #7
0
 public int handler2(acttestmsg msg)
 {
     Console.WriteLine(msg.msg);
     return msg.act();
 }
Пример #8
0
 public int handler4(acttestmsg msg)
 {
     return msg.act();
 }
Пример #9
0
 public void handler1(acttestmsg msg)
 {
     Console.WriteLine(msg.msg);
     msg.act();
 }
Пример #10
0
 public int h3(acttestmsg msg)
 {
     return msg.act();
 }