public void TestUpstreamOrder() { var pipeline = new Pipeline(); pipeline.AddUpstreamHandler(new UpstreamOrderHandler(0)); pipeline.AddUpstreamHandler(new UpstreamOrderHandler(1)); pipeline.AddUpstreamHandler(new UpstreamOrderHandler(2)); pipeline.SendUpstream(new MyMessage()); Assert.Equal(3, UpstreamOrderHandler.CurrentIndex); }
public void SendUpStreamAndSwitchToDown() { var pipeline = new Pipeline(); IPipelineMessage downMsg = null; pipeline.AddUpstreamHandler(new MyUpHandler((ctx, m) => { var upMsg = m; ctx.SendDownstream(upMsg); })); pipeline.AddDownstreamHandler(new MyDownHandler((ctx, m) => downMsg = m)); pipeline.SendUpstream(new Disconnected(new Exception())); Assert.NotNull(downMsg); }