Home / Class/ StompSubframeEncoderTest Class — netty Architecture

StompSubframeEncoderTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  0e44bb12_a1e9_f7b7_24f3_1c502d6e2848["StompSubframeEncoderTest"]
  68f89d4f_e677_be09_e518_0ffed55e3e70["StompSubframeEncoderTest.java"]
  0e44bb12_a1e9_f7b7_24f3_1c502d6e2848 -->|defined in| 68f89d4f_e677_be09_e518_0ffed55e3e70
  bddabe5b_4e32_4db7_70b9_fc34872117cc["setup()"]
  0e44bb12_a1e9_f7b7_24f3_1c502d6e2848 -->|method| bddabe5b_4e32_4db7_70b9_fc34872117cc
  224f785a_33de_53c1_5e37_ea33231476ff["teardown()"]
  0e44bb12_a1e9_f7b7_24f3_1c502d6e2848 -->|method| 224f785a_33de_53c1_5e37_ea33231476ff
  70dcc9ea_b30c_e151_5e0a_93c4aa7ce299["testFrameAndContentEncoding()"]
  0e44bb12_a1e9_f7b7_24f3_1c502d6e2848 -->|method| 70dcc9ea_b30c_e151_5e0a_93c4aa7ce299
  a6cb727d_af8b_0f2f_ed48_8cb35492fdd5["testUtf8FrameEncoding()"]
  0e44bb12_a1e9_f7b7_24f3_1c502d6e2848 -->|method| a6cb727d_af8b_0f2f_ed48_8cb35492fdd5
  902b4a42_733f_2560_18f2_9cb0522d94f8["testOneBufferForStompFrameWithEmptyContent()"]
  0e44bb12_a1e9_f7b7_24f3_1c502d6e2848 -->|method| 902b4a42_733f_2560_18f2_9cb0522d94f8
  6eae7a7c_cecc_2d07_f3dd_34e1c2a73558["testEscapeStompHeaders()"]
  0e44bb12_a1e9_f7b7_24f3_1c502d6e2848 -->|method| 6eae7a7c_cecc_2d07_f3dd_34e1c2a73558
  e5fea667_d008_bb06_ade3_08d35174c872["testNotEscapeStompHeadersForConnectCommand()"]
  0e44bb12_a1e9_f7b7_24f3_1c502d6e2848 -->|method| e5fea667_d008_bb06_ade3_08d35174c872
  159b246b_28dd_7ed3_b858_b57ada44e99e["testNotEscapeStompHeadersForConnectedCommand()"]
  0e44bb12_a1e9_f7b7_24f3_1c502d6e2848 -->|method| 159b246b_28dd_7ed3_b858_b57ada44e99e

Relationship Graph

Source Code

codec-stomp/src/test/java/io/netty/handler/codec/stomp/StompSubframeEncoderTest.java lines 36–163

public class StompSubframeEncoderTest {

    private EmbeddedChannel channel;

    @BeforeEach
    public void setup() throws Exception {
        channel = new EmbeddedChannel(new StompSubframeEncoder());
    }

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

    @Test
    public void testFrameAndContentEncoding() {
        StompHeadersSubframe frame = new DefaultStompHeadersSubframe(StompCommand.CONNECT);
        StompHeaders headers = frame.headers();
        headers.set(StompHeaders.HOST, "stomp.github.org");
        headers.set(StompHeaders.ACCEPT_VERSION, "1.1,1.2");
        channel.writeOutbound(frame);
        channel.writeOutbound(LastStompContentSubframe.EMPTY_LAST_CONTENT);
        ByteBuf aggregatedBuffer = Unpooled.buffer();
        ByteBuf byteBuf = channel.readOutbound();
        assertNotNull(byteBuf);
        aggregatedBuffer.writeBytes(byteBuf);
        byteBuf.release();

        byteBuf = channel.readOutbound();
        assertNotNull(byteBuf);
        aggregatedBuffer.writeBytes(byteBuf);
        byteBuf.release();

        aggregatedBuffer.resetReaderIndex();
        String content = aggregatedBuffer.toString(CharsetUtil.UTF_8);
        assertEquals(StompTestConstants.CONNECT_FRAME, content);
        aggregatedBuffer.release();
    }

    @Test
    public void testUtf8FrameEncoding() {
        StompFrame frame = new DefaultStompFrame(StompCommand.SEND,
                                                 Unpooled.wrappedBuffer("body".getBytes(CharsetUtil.UTF_8)));
        StompHeaders incoming = frame.headers();
        incoming.set(StompHeaders.DESTINATION, "/queue/№11±♛нетти♕");
        incoming.set(StompHeaders.CONTENT_TYPE, AsciiString.of("text/plain"));

        channel.writeOutbound(frame);

        ByteBuf fullFrame = channel.readOutbound();
        assertEquals(SEND_FRAME_UTF8, fullFrame.toString(CharsetUtil.UTF_8));
        assertTrue(fullFrame.release());
    }

    @Test
    public void testOneBufferForStompFrameWithEmptyContent() {
        StompFrame connectedFrame = new DefaultStompFrame(StompCommand.CONNECTED);
        connectedFrame.headers().set(StompHeaders.VERSION, "1.2");

        assertTrue(channel.writeOutbound(connectedFrame));

        ByteBuf stompBuffer = channel.readOutbound();

        assertNotNull(stompBuffer);
        assertNull(channel.readOutbound());
        assertEquals("CONNECTED\nversion:1.2\n\n\0", stompBuffer.toString(CharsetUtil.UTF_8));
        assertTrue(stompBuffer.release());
    }

    @Test
    void testEscapeStompHeaders() {
        StompFrame messageFrame = new DefaultStompFrame(StompCommand.MESSAGE);
        messageFrame.headers()
                  .add(StompHeaders.MESSAGE_ID, "100")
                  .add(StompHeaders.SUBSCRIPTION, "1")
                  .add(StompHeaders.DESTINATION, "/queue/a:")
                  .add("header\\\r\n:Name", "header\\\r\n:Value")
                  .add("header_\\_\r_\n_:_Name", "header_\\_\r_\n_:_Value")
                  .add("headerName:", ":headerValue");

        assertTrue(channel.writeOutbound(messageFrame));

Frequently Asked Questions

What is the StompSubframeEncoderTest class?
StompSubframeEncoderTest is a class in the netty codebase, defined in codec-stomp/src/test/java/io/netty/handler/codec/stomp/StompSubframeEncoderTest.java.
Where is StompSubframeEncoderTest defined?
StompSubframeEncoderTest is defined in codec-stomp/src/test/java/io/netty/handler/codec/stomp/StompSubframeEncoderTest.java at line 36.

Analyze Your Own Codebase

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

Try Supermodel Free