public static void Route(this IBus bus, object message, Guid routingSlipId, params string[] destinations) { var builder = new RoutingSlipBuilder(); var routingSlip = builder.CreateRoutingSlip(routingSlipId, destinations); var router = Configure.Instance.Builder.Build <IRouter>(); router.SendToFirstStep(message, routingSlip); }
public static void Route(this IBus bus, object message, Guid routingSlipId, params string[] destinations) { var builder = new RoutingSlipBuilder(); var routingSlip = builder.CreateRoutingSlip(routingSlipId, destinations); var router = Configure.Instance.Builder.Build<IRouter>(); router.SendToFirstStep(message, routingSlip); }
public void Should_build_routing_slip() { var builder = new RoutingSlipBuilder(); var routingSlipId = Guid.NewGuid(); RoutingSlip routingSlip = builder.CreateRoutingSlip(routingSlipId, "foo"); routingSlip.ShouldNotBeNull(); routingSlip.Id.ShouldEqual(routingSlipId); routingSlip.Itinerary.Count().ShouldEqual(1); routingSlip.Itinerary.First().Address.ShouldEqual("foo"); }
public void Should_send_to_first_destination() { var routingSlip = new RoutingSlipBuilder().CreateRoutingSlip(Guid.NewGuid(), "foo"); var bus = new Bus(); var router = new Router(bus); var message = new DummyMessage(); router.SendToFirstStep(message, routingSlip); bus.GetMessageHeader(message, Router.RoutingSlipHeaderKey).ShouldNotBeNull(); bus.ExplicitlySent.Count().ShouldEqual(1); bus.ExplicitlySent.First().Item1.ShouldEqual("foo"); bus.ExplicitlySent.First().Item2.ShouldEqual(message); }
public void Should_be_able_to_serialize() { var builder = new RoutingSlipBuilder(); var routingSlip = builder.CreateRoutingSlip(Guid.NewGuid(), "foo", "bar"); routingSlip.Log.Add(new ProcessingStepResult { Address = "baz" }); var result = JsonConvert.SerializeObject(routingSlip); var deserialized = JsonConvert.DeserializeObject<RoutingSlip>(result); deserialized.Id.ShouldEqual(routingSlip.Id); deserialized.Itinerary.Count.ShouldEqual(2); deserialized.Itinerary[0].Address.ShouldEqual("foo"); deserialized.Itinerary[1].Address.ShouldEqual("bar"); deserialized.Log.Count.ShouldEqual(1); deserialized.Log[0].Address.ShouldEqual("baz"); }
public void Should_send_to_next_destination_if_no_error() { var routingSlip = new RoutingSlipBuilder().CreateRoutingSlip(Guid.NewGuid(), "foo", "bar"); var bus = new Bus(); var router = new Router(bus); router.SendToNextStep(null, routingSlip); bus.CurrentMessageContext.Headers[Router.RoutingSlipHeaderKey].ShouldNotBeNull(); routingSlip.Itinerary.Count.ShouldEqual(1); routingSlip.Log.Count.ShouldEqual(1); routingSlip.Log[0].Address.ShouldEqual("foo"); bus.Forwarded.Count().ShouldEqual(1); bus.Forwarded.ShouldContain("bar"); }
public void Should_complete_route() { var routingSlip = new RoutingSlipBuilder().CreateRoutingSlip(Guid.NewGuid(), "foo", "bar"); var bus = new Bus(); var router = new Router(bus); router.SendToNextStep(null, routingSlip); bus.CurrentMessageContext.Headers.Clear(); router.SendToNextStep(null, routingSlip); bus.CurrentMessageContext.Headers.ContainsKey(Router.RoutingSlipHeaderKey).ShouldBeFalse(); routingSlip.Itinerary.Count.ShouldEqual(0); routingSlip.Log.Count.ShouldEqual(2); routingSlip.Log[0].Address.ShouldEqual("foo"); bus.Forwarded.Count().ShouldEqual(1); }
public void Should_not_send_to_next_destination_if_error() { var routingSlip = new RoutingSlipBuilder().CreateRoutingSlip(Guid.NewGuid(), "foo", "bar"); var bus = new Bus(); var router = new Router(bus); router.SendToNextStep(new Exception(), routingSlip); bus.CurrentMessageContext.Headers.ContainsKey(Router.RoutingSlipHeaderKey).ShouldBeFalse(); routingSlip.Itinerary.Count.ShouldEqual(2); routingSlip.Log.Count.ShouldEqual(0); bus.Forwarded.Count().ShouldEqual(0); }