Home / Class/ RedisDecoderTest Class — netty Architecture

RedisDecoderTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  5bef0d49_45a1_6e64_a046_06825037f689["RedisDecoderTest"]
  a1473ef7_cca7_46e8_9461_e977fe8783bd["RedisDecoderTest.java"]
  5bef0d49_45a1_6e64_a046_06825037f689 -->|defined in| a1473ef7_cca7_46e8_9461_e977fe8783bd
  b6c0c08f_77f6_ec37_c7c8_6b4ba9c75790["setup()"]
  5bef0d49_45a1_6e64_a046_06825037f689 -->|method| b6c0c08f_77f6_ec37_c7c8_6b4ba9c75790
  edbeb4b8_0d07_b547_c0f2_4860c8b3b419["EmbeddedChannel()"]
  5bef0d49_45a1_6e64_a046_06825037f689 -->|method| edbeb4b8_0d07_b547_c0f2_4860c8b3b419
  6aba1590_d603_2403_4d16_defeacb4b919["teardown()"]
  5bef0d49_45a1_6e64_a046_06825037f689 -->|method| 6aba1590_d603_2403_4d16_defeacb4b919
  30c204c5_3f6f_39b8_adfc_6e2eb0b3a6ca["splitEOLDoesNotInfiniteLoop()"]
  5bef0d49_45a1_6e64_a046_06825037f689 -->|method| 30c204c5_3f6f_39b8_adfc_6e2eb0b3a6ca
  87f8ccf1_7a90_1b85_2dc5_3127400e6d44["shouldNotDecodeInlineCommandByDefault()"]
  5bef0d49_45a1_6e64_a046_06825037f689 -->|method| 87f8ccf1_7a90_1b85_2dc5_3127400e6d44
  9007ecba_85c4_2206_600e_bb387dbe580b["shouldDecodeInlineCommand()"]
  5bef0d49_45a1_6e64_a046_06825037f689 -->|method| 9007ecba_85c4_2206_600e_bb387dbe580b
  39607a90_39a9_df69_9c20_cdd8b1bdfdec["shouldDecodeSimpleString()"]
  5bef0d49_45a1_6e64_a046_06825037f689 -->|method| 39607a90_39a9_df69_9c20_cdd8b1bdfdec
  23cf20f8_8cc2_9838_51cb_87d0fd63fb54["shouldDecodeTwoSimpleStrings()"]
  5bef0d49_45a1_6e64_a046_06825037f689 -->|method| 23cf20f8_8cc2_9838_51cb_87d0fd63fb54
  ccdecf0e_8fe7_58c4_3e76_d28e988ff88f["shouldDecodeError()"]
  5bef0d49_45a1_6e64_a046_06825037f689 -->|method| ccdecf0e_8fe7_58c4_3e76_d28e988ff88f
  bfb80a95_942f_57e1_a608_ea5fffec7a44["shouldDecodeInteger()"]
  5bef0d49_45a1_6e64_a046_06825037f689 -->|method| bfb80a95_942f_57e1_a608_ea5fffec7a44
  34148bf7_a431_f23d_c6be_878057e62564["shouldDecodeBulkString()"]
  5bef0d49_45a1_6e64_a046_06825037f689 -->|method| 34148bf7_a431_f23d_c6be_878057e62564
  bb39c86e_0fb9_c718_6e97_9d54252b7bd9["shouldDecodeEmptyBulkString()"]
  5bef0d49_45a1_6e64_a046_06825037f689 -->|method| bb39c86e_0fb9_c718_6e97_9d54252b7bd9
  60e6a7ef_64ab_1b28_8d9d_1c71ff07e6f1["shouldDecodeNullBulkString()"]
  5bef0d49_45a1_6e64_a046_06825037f689 -->|method| 60e6a7ef_64ab_1b28_8d9d_1c71ff07e6f1

Relationship Graph

Source Code

codec-redis/src/test/java/io/netty/handler/codec/redis/RedisDecoderTest.java lines 45–344

public class RedisDecoderTest {

    private EmbeddedChannel channel;

    @BeforeEach
    public void setup() throws Exception {
        channel = newChannel(false);
    }

    private static EmbeddedChannel newChannel(boolean decodeInlineCommands) {
        return new EmbeddedChannel(
                new RedisDecoder(decodeInlineCommands),
                new RedisBulkStringAggregator(),
                new RedisArrayAggregator());
    }

    @AfterEach
    public void teardown() throws Exception {
        assertFalse(channel.finish());
    }

    @Test
    public void splitEOLDoesNotInfiniteLoop() throws Exception {
        assertFalse(channel.writeInbound(byteBufOf("$6\r\nfoobar\r")));
        assertTrue(channel.writeInbound(byteBufOf("\n")));

        RedisMessage msg = channel.readInbound();
        assertTrue(msg instanceof FullBulkStringRedisMessage);
        ReferenceCountUtil.release(msg);
    }

    @Test
    public void shouldNotDecodeInlineCommandByDefault() {
        assertThrows(DecoderException.class, new Executable() {
            @Override
            public void execute() {
                assertFalse(channel.writeInbound(byteBufOf("P")));
                assertFalse(channel.writeInbound(byteBufOf("I")));
                assertFalse(channel.writeInbound(byteBufOf("N")));
                assertFalse(channel.writeInbound(byteBufOf("G")));
                assertTrue(channel.writeInbound(byteBufOf("\r\n")));

                channel.readInbound();
            }
        });
    }

    @Test
    public void shouldDecodeInlineCommand() {
        channel = newChannel(true);

        assertFalse(channel.writeInbound(byteBufOf("P")));
        assertFalse(channel.writeInbound(byteBufOf("I")));
        assertFalse(channel.writeInbound(byteBufOf("N")));
        assertFalse(channel.writeInbound(byteBufOf("G")));
        assertTrue(channel.writeInbound(byteBufOf("\r\n")));

        InlineCommandRedisMessage msg = channel.readInbound();

        assertEquals("PING", msg.content());

        ReferenceCountUtil.release(msg);
    }

    @Test
    public void shouldDecodeSimpleString() {
        assertFalse(channel.writeInbound(byteBufOf("+")));
        assertFalse(channel.writeInbound(byteBufOf("O")));
        assertFalse(channel.writeInbound(byteBufOf("K")));
        assertTrue(channel.writeInbound(byteBufOf("\r\n")));

        SimpleStringRedisMessage msg = channel.readInbound();

        assertEquals("OK", msg.content());

        ReferenceCountUtil.release(msg);
    }

    @Test
    public void shouldDecodeTwoSimpleStrings() {
        assertFalse(channel.writeInbound(byteBufOf("+")));

Frequently Asked Questions

What is the RedisDecoderTest class?
RedisDecoderTest is a class in the netty codebase, defined in codec-redis/src/test/java/io/netty/handler/codec/redis/RedisDecoderTest.java.
Where is RedisDecoderTest defined?
RedisDecoderTest is defined in codec-redis/src/test/java/io/netty/handler/codec/redis/RedisDecoderTest.java at line 45.

Analyze Your Own Codebase

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

Try Supermodel Free