void XmlMessageSystem_must_work()
        {
            Within(TimeSpan.FromSeconds(60), () =>
            {
                RunOn(() =>
                {
                    _messageSystem.Start(_nodeConfig);
                }, _deployTarget1, _deployTarget2);
                EnterBarrier("2-deploy-target-started");

                RunOn(() =>
                {
                    _messageSystem.Start(_nodeConfig);
                    var sender = new ActorRefMessageReceiver <XmlMessage>(TestActor);
                    _messageSystem.SendMessage(XmlMessage.FromString(@"<question1></question1>"), sender);
                    _messageSystem.SendMessage(XmlMessage.FromString(@"<question1></question1>"), sender);
                    _messageSystem.SendMessage(XmlMessage.FromString(@"<question1></question1>"), sender);
                    new[] { ExpectMsg <BytesMessage>(), ExpectMsg <BytesMessage>(), ExpectMsg <BytesMessage>() }.Select(bm => XmlMessage.FromBytes(bm.Bytes).Content)
                    .Should().OnlyHaveUniqueItems();
                    _messageSystem.SendMessage(XmlMessage.FromString(@"<question2>log1</question2>"), sender);
                    _messageSystem.SendMessage(XmlMessage.FromString(@"<question2>log2</question2>"), sender);
                    _messageSystem.SendMessage(XmlMessage.FromString(@"<question2>log3</question2>"), sender);
                    new[] { ExpectMsg <BytesMessage>(), ExpectMsg <BytesMessage>(), ExpectMsg <BytesMessage>() }.Select(bm => XmlMessage.FromBytes(bm.Bytes).Content)
                    .Should().OnlyHaveUniqueItems();
                }, _deployer);

                EnterBarrier("3-done");
            });
        }
Esempio n. 2
0
        public void AnActorCanBeAskedFromOutside()
        {
            var a1 = new XmlActor.ActionWithFilter
            {
                Action = (message, sender, self, resource, ms, logger) => sender.Tell(XmlMessage.FromString("<message>OK!</message>"), self),
                Filter = AlwaysTrue
            };
            var messageFactory = new XmlMessageFactory();
            var actor1         = Sys.ActorOf(Props.Create(() => new XmlActor(
                                                              new[] { a1 },
                                                              null,
                                                              messageFactory,
                                                              null,
                                                              null)), "actor1");
            var r =
                new ActorRefMessageReceiver <XmlMessage>(actor1)
                .AskAsync(XmlMessage.FromString("<message>test</message>"), messageFactory)
                .Result;

            r.Match(@"message[. = ""OK!""]").Should().BeTrue();
        }