QuicCodecBuilderTest Class — netty Architecture
Architecture documentation for the QuicCodecBuilderTest class in QuicCodecBuilderTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 416e32e4_dbcd_8989_54b4_0cb0b8589250["QuicCodecBuilderTest"] b1f3dbc4_687e_7df5_da20_dd23837ba9b3["QuicCodecBuilderTest.java"] 416e32e4_dbcd_8989_54b4_0cb0b8589250 -->|defined in| b1f3dbc4_687e_7df5_da20_dd23837ba9b3 9ef9faf3_0496_77b6_4a52_9d8f9c0b2949["testCopyConstructor()"] 416e32e4_dbcd_8989_54b4_0cb0b8589250 -->|method| 9ef9faf3_0496_77b6_4a52_9d8f9c0b2949 70e8a170_8afb_72e2_080a_ea1e09c2b511["init()"] 416e32e4_dbcd_8989_54b4_0cb0b8589250 -->|method| 70e8a170_8afb_72e2_080a_ea1e09c2b511 7dc1fcbb_f0df_7bcc_308e_c16a55694d91["modifyField()"] 416e32e4_dbcd_8989_54b4_0cb0b8589250 -->|method| 7dc1fcbb_f0df_7bcc_308e_c16a55694d91
Relationship Graph
Source Code
codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicCodecBuilderTest.java lines 28–100
class QuicCodecBuilderTest {
@Test
void testCopyConstructor() throws IllegalAccessException {
TestQuicCodecBuilder original = new TestQuicCodecBuilder();
init(original);
TestQuicCodecBuilder copy = new TestQuicCodecBuilder(original);
assertThat(copy).usingRecursiveComparison().isEqualTo(original);
}
private static void init(TestQuicCodecBuilder builder) throws IllegalAccessException {
Field[] fields = builder.getClass().getSuperclass().getDeclaredFields();
for (Field field : fields) {
modifyField(builder, field);
}
}
private static void modifyField(TestQuicCodecBuilder builder, Field field) throws IllegalAccessException {
field.setAccessible(true);
Class<?> clazz = field.getType();
if (Boolean.class == clazz) {
field.set(builder, Boolean.TRUE);
} else if (Integer.class == clazz) {
field.set(builder, Integer.MIN_VALUE);
} else if (Long.class == clazz) {
field.set(builder, Long.MIN_VALUE);
} else if (QuicCongestionControlAlgorithm.class == clazz) {
field.set(builder, QuicCongestionControlAlgorithm.CUBIC);
} else if (FlushStrategy.class == clazz) {
field.set(builder, FlushStrategy.afterNumBytes(10));
} else if (Function.class == clazz) {
field.set(builder, Function.identity());
} else if (boolean.class == clazz) {
field.setBoolean(builder, true);
} else if (int.class == clazz) {
field.setInt(builder, -1);
} else if (byte[].class == clazz) {
field.set(builder, new byte[16]);
} else if (Executor.class == clazz) {
field.set(builder, ImmediateExecutor.INSTANCE);
} else {
throw new IllegalArgumentException("Unknown field type " + clazz);
}
}
private static final class TestQuicCodecBuilder extends QuicCodecBuilder<TestQuicCodecBuilder> {
TestQuicCodecBuilder() {
super(true);
}
TestQuicCodecBuilder(TestQuicCodecBuilder builder) {
super(builder);
}
@Override
public TestQuicCodecBuilder clone() {
// no-op
return null;
}
@Override
protected ChannelHandler build(
QuicheConfig config,
Function<QuicChannel, ? extends QuicSslEngine> sslContextProvider,
Executor sslTaskExecutor,
int localConnIdLength,
FlushStrategy flushStrategy) {
// no-op
return null;
}
}
}
Source
Frequently Asked Questions
What is the QuicCodecBuilderTest class?
QuicCodecBuilderTest is a class in the netty codebase, defined in codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicCodecBuilderTest.java.
Where is QuicCodecBuilderTest defined?
QuicCodecBuilderTest is defined in codec-native-quic/src/test/java/io/netty/handler/codec/quic/QuicCodecBuilderTest.java at line 28.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free