@Override public ChannelHandler call() { return new ChannelDuplexHandler(); } };
@Override public void evaluate() throws Throwable { channel = new EmbeddedChannel(new ChannelDuplexHandler()); ctx = channel.pipeline().firstContext(); handler = new AbstractConnectionToChannelBridge<String, String>("foo", new ConnectionEventListener() { }, disabled()) { }; base.evaluate(); } };
@Override public void evaluate() throws Throwable { tail = new ChannelDuplexHandler(); pipeline = new DetachedChannelPipeline(new Action1<ChannelPipeline>() { @Override public void call(ChannelPipeline pipeline1) { pipeline1.addLast(tail); } }); base.evaluate(); } };
@Test public void addNonByteDecoderWhenFullReactorPipeline() { channel.pipeline() .addLast(NettyPipeline.HttpCodec, new HttpServerCodec()) .addLast(NettyPipeline.HttpTrafficHandler, new ChannelDuplexHandler()) .addLast(NettyPipeline.ReactiveBridge, new ChannelHandlerAdapter() { }); ChannelHandler decoder = new ChannelHandlerAdapter() { }; testContext.addHandlerLast("decoder", decoder); assertEquals(channel.pipeline() .names(), Arrays.asList(NettyPipeline.HttpCodec, NettyPipeline.HttpTrafficHandler, "decoder", NettyPipeline.ReactiveBridge, "DefaultChannelPipeline$TailContext#0")); }
@Test public void addNonByteEncoderWhenFullReactorPipeline() { channel.pipeline() .addLast(NettyPipeline.HttpCodec, new HttpServerCodec()) .addLast(NettyPipeline.HttpTrafficHandler, new ChannelDuplexHandler()) .addLast(NettyPipeline.ReactiveBridge, new ChannelHandlerAdapter() { }); ChannelHandler encoder = new ChannelHandlerAdapter() { }; testContext.addHandlerFirst("encoder", encoder); assertEquals(channel.pipeline() .names(), Arrays.asList(NettyPipeline.HttpCodec, NettyPipeline.HttpTrafficHandler, "encoder", NettyPipeline.ReactiveBridge, "DefaultChannelPipeline$TailContext#0")); }
@Test public void addByteEncoderWhenFullReactorPipeline() { channel.pipeline() .addLast(NettyPipeline.HttpCodec, new HttpServerCodec()) .addLast(NettyPipeline.HttpTrafficHandler, new ChannelDuplexHandler()) .addLast(NettyPipeline.ReactiveBridge, new ChannelHandlerAdapter() { }); ChannelHandler encoder = new LineBasedFrameDecoder(12); testContext.addHandlerFirst("encoder", encoder); assertEquals(channel.pipeline() .names(), Arrays.asList(NettyPipeline.HttpCodec, NettyPipeline.HttpTrafficHandler, "encoder", NettyPipeline.ReactiveBridge, "DefaultChannelPipeline$TailContext#0")); }
@Test public void addByteDecoderWhenFullReactorPipeline() { channel.pipeline() .addLast(NettyPipeline.HttpCodec, new HttpServerCodec()) .addLast(NettyPipeline.HttpTrafficHandler, new ChannelDuplexHandler()) .addLast(NettyPipeline.ReactiveBridge, new ChannelHandlerAdapter() { }); ChannelHandler decoder = new LineBasedFrameDecoder(12); testContext.addHandlerLast("decoder", decoder) .addHandlerFirst("decoder$extract", NettyPipeline.inboundHandler(ADD_EXTRACTOR)); assertEquals(channel.pipeline() .names(), Arrays.asList(NettyPipeline.HttpCodec, NettyPipeline.HttpTrafficHandler, "decoder$extract", "decoder", NettyPipeline.ReactiveBridge, "DefaultChannelPipeline$TailContext#0")); }
@Test public void addSeveralByteEncodersWhenCodec() { ChannelHandler encoder1 = new LineBasedFrameDecoder(12); ChannelHandler encoder2 = new LineBasedFrameDecoder(13); channel.pipeline() .addLast(NettyPipeline.HttpCodec, new HttpServerCodec()) .addLast(NettyPipeline.HttpTrafficHandler, new ChannelDuplexHandler()) .addLast(NettyPipeline.ReactiveBridge, new ChannelHandlerAdapter() { }); testContext.addHandlerFirst("encoder1", encoder1) .addHandlerFirst("encoder2", encoder2); assertEquals(channel.pipeline() .names(), Arrays.asList(NettyPipeline.HttpCodec, NettyPipeline.HttpTrafficHandler, "encoder2", "encoder1", NettyPipeline.ReactiveBridge, "DefaultChannelPipeline$TailContext#0")); }
@Test public void addSeveralByteDecodersWhenCodec() { ChannelHandler decoder1 = new LineBasedFrameDecoder(12); ChannelHandler decoder2 = new LineBasedFrameDecoder(13); channel.pipeline() .addLast(NettyPipeline.HttpCodec, new HttpServerCodec()) .addLast(NettyPipeline.HttpTrafficHandler, new ChannelDuplexHandler()) .addLast(NettyPipeline.ReactiveBridge, new ChannelHandlerAdapter() { }); testContext.addHandlerLast("decoder1$extract", NettyPipeline.inboundHandler(ADD_EXTRACTOR)) .addHandlerLast("decoder1", decoder1) .addHandlerLast("decoder2$extract", NettyPipeline.inboundHandler(ADD_EXTRACTOR)) .addHandlerLast("decoder2", decoder2); assertEquals(channel.pipeline() .names(), Arrays.asList(NettyPipeline.HttpCodec, NettyPipeline.HttpTrafficHandler, "decoder1$extract", "decoder1", "decoder2$extract", "decoder2", NettyPipeline.ReactiveBridge, "DefaultChannelPipeline$TailContext#0")); }