Example #1
0
        public void listens_and_finishes_after_receiving_the_all_clear()
        {
            // trying to get the asset pipeline to shut up about
            // non-existent assets
            var settings = new ApplicationSettings
            {
                PhysicalPath = Environment.CurrentDirectory
                               .ParentDirectory().ParentDirectory().ParentDirectory()
                               .AppendPath("RemoteService")
            };

            var system = new FubuMvcSystem(() => FubuRuntime.Basic());

            system.AddRemoteSubSystem("Remote", x => { x.UseParallelServiceDirectory("RemoteService"); });

            using (var context = system.CreateContext())
            {
                system.StartListeningForMessages();
                var message = new RemoteGo();
                MessageHistory.Record(MessageTrack.ForSent(message));

                var waitForWorkToFinish =
                    MessageHistory.WaitForWorkToFinish(
                        () => { system.RemoteSubSystemFor("Remote").Runner.SendRemotely(message); }, 30000);
                waitForWorkToFinish.ShouldBeTrue();
            }
        }
        public override MessageTrack ToMessageTrack()
        {
            MessageTrack track = MessageTrack.ForSent(this, Envelope.CorrelationId);

            track.Type = track.FullName = MessageTrackType;

            return(track);
        }
Example #3
0
        public void Handle(ChainExecutionStarted message)
        {
            if (message.Envelope.IsPollingJobRelated())
            {
                return;
            }

            MessageTrack track = MessageTrack.ForSent(message, message.Envelope.CorrelationId);

            track.Type = track.FullName = MessageTrackType;

            Bottles.Services.Messaging.EventAggregator.SendMessage(track);
        }
Example #4
0
        public void record_sent_message_with_id()
        {
            var message = new MyMessage
            {
                Id   = Guid.NewGuid(),
                Name = "Jeremy"
            };

            var sent = MessageTrack.ForSent(message, "foo");

            sent.FullName.ShouldBe(typeof(MyMessage).FullName);
            sent.Type.ShouldBe(typeof(MyMessage).Name);
            sent.Description.ShouldBe(message.ToString());
            sent.Id.ShouldBe("foo");
            sent.Status.ShouldBe(MessageTrack.Sent);
        }
        public void finish_successfully_with_MessageHistory_WaitForWorkToFinish_positive()
        {
            var foo1 = new Foo();
            var foo2 = new Foo();
            var foo3 = new Foo();

            MessageHistory.WaitForWorkToFinish(() => {
                MessageHistory.Record(MessageTrack.ForSent(foo1));
                MessageHistory.Record(MessageTrack.ForSent(foo2));
                MessageHistory.Record(MessageTrack.ForSent(foo3));

                MessageHistory.Record(MessageTrack.ForReceived(foo1));
                MessageHistory.Record(MessageTrack.ForReceived(foo2));
                MessageHistory.Record(MessageTrack.ForReceived(foo3));
            }).ShouldBeTrue();
        }
        public void clear_history_removes_all()
        {
            var foo1 = new Foo();
            var foo2 = new Foo();
            var foo3 = new Foo();

            MessageHistory.Record(MessageTrack.ForReceived(foo1));
            MessageHistory.Record(MessageTrack.ForReceived(foo2));
            MessageHistory.Record(MessageTrack.ForReceived(foo3));

            MessageHistory.Record(MessageTrack.ForSent(foo1));
            MessageHistory.Record(MessageTrack.ForSent(foo2));
            MessageHistory.Record(MessageTrack.ForSent(foo3));

            MessageHistory.ClearHistory();

            MessageHistory.Outstanding().Any().ShouldBeFalse();
            MessageHistory.Received().Any().ShouldBeFalse();
            MessageHistory.All().Any().ShouldBeFalse();
        }
        public void clear_all_absolutely_has_to_work()
        {
            var foo1 = new Foo();
            var foo2 = new Foo();
            var foo3 = new Foo();

            MessageHistory.Record(MessageTrack.ForReceived(foo1));
            MessageHistory.Record(MessageTrack.ForReceived(foo2));
            MessageHistory.Record(MessageTrack.ForReceived(foo3));

            MessageHistory.Record(MessageTrack.ForSent(foo1));
            MessageHistory.Record(MessageTrack.ForSent(foo2));
            MessageHistory.Record(MessageTrack.ForSent(foo3));

            MessageHistory.ClearAll();

            MessageHistory.Outstanding().Any().ShouldBeFalse();
            MessageHistory.Received().Any().ShouldBeFalse();
            MessageHistory.All().Any().ShouldBeFalse();
        }
        public void sends_the_all_clear_message_when_it_gets_everything()
        {
            var foo1 = new Foo();
            var foo2 = new Foo();
            var foo3 = new Foo();

            MessageHistory.Record(MessageTrack.ForSent(foo1));
            MessageHistory.Record(MessageTrack.ForSent(foo2));
            MessageHistory.Record(MessageTrack.ForSent(foo3));

            assertHasNotReceivedAllCompleteMessage();

            MessageHistory.Record(MessageTrack.ForReceived(foo1));
            assertHasNotReceivedAllCompleteMessage();

            MessageHistory.Record(MessageTrack.ForReceived(foo2));
            assertHasNotReceivedAllCompleteMessage();

            MessageHistory.Record(MessageTrack.ForReceived(foo3));
            assertAllCompleteMessage();
        }
        public void track_outstanding()
        {
            var foo1 = new Foo();
            var foo2 = new Foo();
            var foo3 = new Foo();

            MessageHistory.Record(MessageTrack.ForSent(foo1));
            MessageHistory.Record(MessageTrack.ForSent(foo2));
            MessageHistory.Record(MessageTrack.ForSent(foo3));

            MessageHistory.Outstanding().Select(x => x.Id)
            .ShouldHaveTheSameElementsAs(foo1.Id.ToString(), foo2.Id.ToString(), foo3.Id.ToString());

            MessageHistory.Record(MessageTrack.ForReceived(foo2));

            MessageHistory.Outstanding().Select(x => x.Id)
            .ShouldHaveTheSameElementsAs(foo1.Id.ToString(), foo3.Id.ToString());

            MessageHistory.Record(MessageTrack.ForReceived(foo3));

            MessageHistory.Outstanding().Select(x => x.Id)
            .ShouldHaveTheSameElementsAs(foo1.Id.ToString());
        }
 public static void SentMessage(object message)
 {
     SendMessage(MessageTrack.ForSent(message));
 }
 public void Act(IScenarioWriter writer)
 {
     MessageHistory.Record(MessageTrack.ForSent(_request));
     _completion = _sender.ServiceBus.SendAndWait(_request);
 }
 public void Act(IScenarioWriter writer)
 {
     MessageHistory.Record(MessageTrack.ForSent(Message));
     _sender.ServiceBus.Send(Message);
 }