public void Should_route_to_pared_down_process()
        {
            var messageABC = new SequentialProcess
            {
                StepAInfo = "Foo",
                StepBInfo = "Bar",
                StepCInfo = "Baz",
            };

            var destinations = new[]
            {
                "NServiceBus.MessageRouting.RoutingSlips.Samples.StepA",
                "NServiceBus.MessageRouting.RoutingSlips.Samples.StepC",
                "NServiceBus.MessageRouting.RoutingSlips.Samples.ResultHost",
            };

            Console.WriteLine("Sending message...");

            var last = destinations.Last();

            var events = _fixture.SendAndWait(
                bus => bus.Route(messageABC, Guid.NewGuid(), destinations),
                c => c.Endpoint != last,
                TimeSpan.FromSeconds(60)).ToArray();

            events.Count().ShouldEqual(3);
        }
        public void Start()
        {
            var toggle = false;

            while (Console.ReadLine() != null)
            {
                if (toggle)
                {
                    var messageABC = new SequentialProcess
                    {
                        StepAInfo = "Foo",
                        StepBInfo = "Bar",
                        StepCInfo = "Baz",
                    };

                    Logger.Info("Sending message for step A, B, C");
                    Bus.Route(messageABC, Guid.NewGuid(), new[]
                    {
                        "NServiceBus.MessageRouting.RoutingSlips.Samples.StepA",
                        "NServiceBus.MessageRouting.RoutingSlips.Samples.StepB",
                        "NServiceBus.MessageRouting.RoutingSlips.Samples.StepC",
                        "NServiceBus.MessageRouting.RoutingSlips.Samples.ResultHost",
                    });
                }
                else
                {
                    var messageAC = new SequentialProcess
                    {
                        StepAInfo = "Foo",
                        StepCInfo = "Baz",
                    };

                    Logger.Info("Sending message for step A, C");
                    Bus.Route(messageAC, Guid.NewGuid(), new[]
                    {
                        "NServiceBus.MessageRouting.RoutingSlips.Samples.StepA",
                        "NServiceBus.MessageRouting.RoutingSlips.Samples.StepC",
                        "NServiceBus.MessageRouting.RoutingSlips.Samples.ResultHost",
                    });
                }

                toggle = !toggle;
            }
        }