Home / Class/ LzmaFrameEncoderTest Class — netty Architecture

LzmaFrameEncoderTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  12df736e_94b1_ebf9_17a3_db9629d378d2["LzmaFrameEncoderTest"]
  320d5e63_ab7a_a055_896b_462295aa57e5["LzmaFrameEncoderTest.java"]
  12df736e_94b1_ebf9_17a3_db9629d378d2 -->|defined in| 320d5e63_ab7a_a055_896b_462295aa57e5
  4635f6a1_5fb9_9983_8541_3aab614831e8["EmbeddedChannel()"]
  12df736e_94b1_ebf9_17a3_db9629d378d2 -->|method| 4635f6a1_5fb9_9983_8541_3aab614831e8
  fd0d6415_5889_d4e9_fb29_ffffea31a6af["testCompressionOfBatchedFlowOfData()"]
  12df736e_94b1_ebf9_17a3_db9629d378d2 -->|method| fd0d6415_5889_d4e9_fb29_ffffea31a6af
  595e3ace_50b6_3a6a_b693_02e9dc95a939["testCompressionOfBatchedFlow()"]
  12df736e_94b1_ebf9_17a3_db9629d378d2 -->|method| 595e3ace_50b6_3a6a_b693_02e9dc95a939
  742d8c84_dfbd_47ad_7d52_aa1e1a7180a9["ByteBuf()"]
  12df736e_94b1_ebf9_17a3_db9629d378d2 -->|method| 742d8c84_dfbd_47ad_7d52_aa1e1a7180a9

Relationship Graph

Source Code

codec-compression/src/test/java/io/netty/handler/codec/compression/LzmaFrameEncoderTest.java lines 35–101

public class LzmaFrameEncoderTest extends AbstractEncoderTest {

    @Override
    protected EmbeddedChannel createChannel() {
        return new EmbeddedChannel(new LzmaFrameEncoder());
    }

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

    @Override
    protected void testCompressionOfBatchedFlow(final ByteBuf data) throws Exception {
        List<Integer> originalLengths = new ArrayList<Integer>();
        final int dataLength = data.readableBytes();
        int written = 0, length = rand.nextInt(50);
        while (written + length < dataLength) {
            ByteBuf in = data.retainedSlice(written, length);
            assertTrue(channel.writeOutbound(in));
            written += length;
            originalLengths.add(length);
            length = rand.nextInt(50);
        }
        length = dataLength - written;
        ByteBuf in = data.retainedSlice(written, dataLength - written);
        originalLengths.add(length);
        assertTrue(channel.writeOutbound(in));
        assertTrue(channel.finish());

        CompositeByteBuf decompressed = Unpooled.compositeBuffer();
        ByteBuf msg;
        int i = 0;
        while ((msg = channel.readOutbound()) != null) {
            ByteBuf decompressedMsg = decompress(msg, originalLengths.get(i++));
            decompressed.addComponent(true, decompressedMsg);
        }
        assertEquals(originalLengths.size(), i);
        assertEquals(data, decompressed);

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

    @Override
    protected ByteBuf decompress(ByteBuf compressed, int originalLength) throws Exception {
        byte[] decompressed = new byte[originalLength];
        try (InputStream is = new ByteBufInputStream(compressed, true);
             LzmaInputStream lzmaIs = new LzmaInputStream(is, new Decoder())) {

            int remaining = originalLength;
            while (remaining > 0) {
                int read = lzmaIs.read(decompressed, originalLength - remaining, remaining);
                if (read > 0) {
                    remaining -= read;
                } else {
                    break;
                }
            }
            assertEquals(-1, lzmaIs.read());
        }

        return Unpooled.wrappedBuffer(decompressed);
    }
}

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free