下面列出了io.netty.channel.DefaultChannelConfig#io.netty.channel.ChannelMetadata 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@DataProvider(value = {
"GZIP",
"X_GZIP",
"DEFLATE",
"X_DEFLATE",
"CONTENT_ENCODING_THAT_DOES_NOT_REPRESENT_COMPRESSED_PAYLOAD",
"ENDPOINT_DOES_NOT_WANT_DECOMPRESS",
"NULL_ENDPOINT"
})
@Test
public void newContentDecoder_works_as_expected(NewContentDecoderScenario scenario) throws Exception {
// given
SmartHttpContentDecompressor decompressor = new SmartHttpContentDecompressor();
TestUtil.ChannelHandlerContextMocks mocks = TestUtil.mockChannelHandlerContext();
Whitebox.setInternalState(decompressor, "ctx", mocks.mockContext);
ChannelMetadata channelMetadata = new ChannelMetadata(false);
ChannelConfig channelConfigMock = mock(ChannelConfig.class);
doReturn(scenario.endpoint).when(mocks.mockHttpProcessingState).getEndpointForExecution();
doReturn(channelMetadata).when(mocks.mockChannel).metadata();
doReturn(channelConfigMock).when(mocks.mockChannel).config();
// when
EmbeddedChannel result = decompressor.newContentDecoder(scenario.contentEncoding);
// then
if (scenario.expectValidDecompressor) {
assertThat(result).isNotNull();
}
else {
assertThat(result).isNull();
}
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
/**
* Init fields and do mocking.
*/
@Before
public void setup() throws Exception {
MockitoAnnotations.initMocks(this);
Http2FrameWriter.Configuration configuration = mock(Http2FrameWriter.Configuration.class);
Http2FrameSizePolicy frameSizePolicy = mock(Http2FrameSizePolicy.class);
when(writer.configuration()).thenReturn(configuration);
when(configuration.frameSizePolicy()).thenReturn(frameSizePolicy);
when(frameSizePolicy.maxFrameSize()).thenReturn(DEFAULT_MAX_FRAME_SIZE);
when(writer.writeData(any(ChannelHandlerContext.class), anyInt(), any(ByteBuf.class), anyInt(), anyBoolean(),
any(ChannelPromise.class))).thenAnswer(successAnswer());
when(writer.writeRstStream(eq(ctx), anyInt(), anyLong(), any(ChannelPromise.class))).thenAnswer(
successAnswer());
when(writer.writeGoAway(any(ChannelHandlerContext.class), anyInt(), anyLong(), any(ByteBuf.class),
any(ChannelPromise.class)))
.thenAnswer(successAnswer());
connection = new DefaultHttp2Connection(false);
connection.remote().flowController(new DefaultHttp2RemoteFlowController(connection));
connection.local().flowController(new DefaultHttp2LocalFlowController(connection).frameWriter(writer));
DefaultHttp2ConnectionEncoder defaultEncoder =
new DefaultHttp2ConnectionEncoder(connection, writer);
encoder = new StreamBufferingEncoder(defaultEncoder);
DefaultHttp2ConnectionDecoder decoder =
new DefaultHttp2ConnectionDecoder(connection, encoder, mock(Http2FrameReader.class));
Http2ConnectionHandler handler = new Http2ConnectionHandlerBuilder()
.frameListener(mock(Http2FrameListener.class))
.codec(decoder, encoder).build();
// Set LifeCycleManager on encoder and decoder
when(ctx.channel()).thenReturn(channel);
when(ctx.alloc()).thenReturn(UnpooledByteBufAllocator.DEFAULT);
when(channel.alloc()).thenReturn(UnpooledByteBufAllocator.DEFAULT);
when(executor.inEventLoop()).thenReturn(true);
doAnswer(new Answer<ChannelPromise>() {
@Override
public ChannelPromise answer(InvocationOnMock invocation) throws Throwable {
return newPromise();
}
}).when(ctx).newPromise();
when(ctx.executor()).thenReturn(executor);
when(channel.isActive()).thenReturn(false);
when(channel.config()).thenReturn(config);
when(channel.isWritable()).thenReturn(true);
when(channel.bytesBeforeUnwritable()).thenReturn(Long.MAX_VALUE);
when(config.getWriteBufferHighWaterMark()).thenReturn(Integer.MAX_VALUE);
when(config.getMessageSizeEstimator()).thenReturn(DefaultMessageSizeEstimator.DEFAULT);
ChannelMetadata metadata = new ChannelMetadata(false, 16);
when(channel.metadata()).thenReturn(metadata);
when(channel.unsafe()).thenReturn(unsafe);
handler.handlerAdded(ctx);
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return new ChannelMetadata(true);
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
private static ChannelMetadata metadata(boolean hasDisconnect) {
return hasDisconnect ? METADATA_DISCONNECT : METADATA_NO_DISCONNECT;
}
@Override
public ChannelMetadata metadata() {
return metadata;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}