Home / Class/ AbstractEncoderTest Class — netty Architecture

AbstractEncoderTest Class — netty Architecture

Architecture documentation for the AbstractEncoderTest class in AbstractEncoderTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  e75c2d44_55ff_20fb_58c6_157d886d9d30["AbstractEncoderTest"]
  be6fa3e7_953e_010f_dd66_21d6bae19c6d["AbstractEncoderTest.java"]
  e75c2d44_55ff_20fb_58c6_157d886d9d30 -->|defined in| be6fa3e7_953e_010f_dd66_21d6bae19c6d
  88a1bf99_48be_8e54_b13d_0c64c194d07d["ByteBuf()"]
  e75c2d44_55ff_20fb_58c6_157d886d9d30 -->|method| 88a1bf99_48be_8e54_b13d_0c64c194d07d
  39474dda_7829_80f1_e9b7_0c8970c9a441["initChannel()"]
  e75c2d44_55ff_20fb_58c6_157d886d9d30 -->|method| 39474dda_7829_80f1_e9b7_0c8970c9a441
  f782e77a_5a16_abfe_2a01_9e6db283ab40["EmbeddedChannel()"]
  e75c2d44_55ff_20fb_58c6_157d886d9d30 -->|method| f782e77a_5a16_abfe_2a01_9e6db283ab40
  6d6e4deb_028f_9700_600e_3cc7082f9145["destroyChannel()"]
  e75c2d44_55ff_20fb_58c6_157d886d9d30 -->|method| 6d6e4deb_028f_9700_600e_3cc7082f9145
  bdbe4ee1_a3aa_3465_2185_d22145fdb3f0["smallData()"]
  e75c2d44_55ff_20fb_58c6_157d886d9d30 -->|method| bdbe4ee1_a3aa_3465_2185_d22145fdb3f0
  c9750dbe_ce9b_c2a4_bc89_77bcb20acf25["largeData()"]
  e75c2d44_55ff_20fb_58c6_157d886d9d30 -->|method| c9750dbe_ce9b_c2a4_bc89_77bcb20acf25
  4a46f19c_31b4_8a02_2001_ecaf4f5eca02["testCompressionOfSmallChunkOfData()"]
  e75c2d44_55ff_20fb_58c6_157d886d9d30 -->|method| 4a46f19c_31b4_8a02_2001_ecaf4f5eca02
  a6173f2f_d8db_9c30_9616_74a9e1489996["testCompressionOfLargeChunkOfData()"]
  e75c2d44_55ff_20fb_58c6_157d886d9d30 -->|method| a6173f2f_d8db_9c30_9616_74a9e1489996
  4e64f197_018d_207d_28ce_06292148f160["testCompressionOfBatchedFlowOfData()"]
  e75c2d44_55ff_20fb_58c6_157d886d9d30 -->|method| 4e64f197_018d_207d_28ce_06292148f160
  a69091e5_0c69_a627_0aba_def62c636e95["testCompression()"]
  e75c2d44_55ff_20fb_58c6_157d886d9d30 -->|method| a69091e5_0c69_a627_0aba_def62c636e95
  b47ae7a3_bfe9_36dc_13d2_e58e4d0e8480["testCompressionOfBatchedFlow()"]
  e75c2d44_55ff_20fb_58c6_157d886d9d30 -->|method| b47ae7a3_bfe9_36dc_13d2_e58e4d0e8480

Relationship Graph

Source Code

codec-compression/src/test/java/io/netty/handler/codec/compression/AbstractEncoderTest.java lines 30–129

public abstract class AbstractEncoderTest extends AbstractCompressionTest {

    protected EmbeddedChannel channel;

    /**
     * Decompresses data with some external library.
     */
    protected abstract ByteBuf decompress(ByteBuf compressed, int originalLength) throws Exception;

    @BeforeEach
    public final void initChannel() {
        channel = createChannel();
    }

    protected abstract EmbeddedChannel createChannel();

    @AfterEach
    public void destroyChannel() {
        if (channel != null) {
            channel.finishAndReleaseAll();
            channel = null;
        }
    }

    public static ByteBuf[] smallData() {
        ByteBuf heap = Unpooled.wrappedBuffer(BYTES_SMALL);
        ByteBuf direct = Unpooled.directBuffer(BYTES_SMALL.length);
        direct.writeBytes(BYTES_SMALL);
        return new ByteBuf[] {heap, direct};
    }

    public static ByteBuf[] largeData() {
        ByteBuf heap = Unpooled.wrappedBuffer(BYTES_LARGE);
        ByteBuf direct = Unpooled.directBuffer(BYTES_LARGE.length);
        direct.writeBytes(BYTES_LARGE);
        return new ByteBuf[] {heap, direct};
    }

    @ParameterizedTest
    @MethodSource("smallData")
    public void testCompressionOfSmallChunkOfData(ByteBuf data) throws Exception {
        testCompression(data);
    }

    @ParameterizedTest
    @MethodSource("largeData")
    public void testCompressionOfLargeChunkOfData(ByteBuf data) throws Exception {
        testCompression(data);
    }

    @ParameterizedTest
    @MethodSource("largeData")
    public void testCompressionOfBatchedFlowOfData(ByteBuf data) throws Exception {
        testCompressionOfBatchedFlow(data);
    }

    protected void testCompression(final ByteBuf data) throws Exception {
        final int dataLength = data.readableBytes();
        assertTrue(channel.writeOutbound(data.retain()));
        assertTrue(channel.finish());
        assertEquals(0, data.readableBytes());

        ByteBuf decompressed = readDecompressed(dataLength);
        assertEquals(data.resetReaderIndex(), decompressed);

        decompressed.release();
        data.release();
    }

    protected void testCompressionOfBatchedFlow(final ByteBuf data) throws Exception {
        final int dataLength = data.readableBytes();
        int written = 0, length = rand.nextInt(100);
        while (written + length < dataLength) {
            ByteBuf in = data.retainedSlice(written, length);
            assertTrue(channel.writeOutbound(in));
            assertEquals(0, in.readableBytes());
            written += length;
            length = rand.nextInt(100);
        }
        ByteBuf in = data.retainedSlice(written, dataLength - written);
        assertTrue(channel.writeOutbound(in));

Frequently Asked Questions

What is the AbstractEncoderTest class?
AbstractEncoderTest is a class in the netty codebase, defined in codec-compression/src/test/java/io/netty/handler/codec/compression/AbstractEncoderTest.java.
Where is AbstractEncoderTest defined?
AbstractEncoderTest is defined in codec-compression/src/test/java/io/netty/handler/codec/compression/AbstractEncoderTest.java at line 30.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free