Home / Class/ WebSocketClientExtensionHandlerTest Class — netty Architecture

WebSocketClientExtensionHandlerTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  2abc6c0d_8cdb_d5d2_1b96_701b273a7099["WebSocketClientExtensionHandlerTest"]
  ca26efc3_e3b3_b50b_9afc_b8596fd47cf7["WebSocketClientExtensionHandlerTest.java"]
  2abc6c0d_8cdb_d5d2_1b96_701b273a7099 -->|defined in| ca26efc3_e3b3_b50b_9afc_b8596fd47cf7
  a38887a7_33cd_1f00_9a8d_1ac1e503f519["testMainSuccess()"]
  2abc6c0d_8cdb_d5d2_1b96_701b273a7099 -->|method| a38887a7_33cd_1f00_9a8d_1ac1e503f519
  0f2e4470_3fed_e2fe_ef22_19c77719c983["testFallbackSuccess()"]
  2abc6c0d_8cdb_d5d2_1b96_701b273a7099 -->|method| 0f2e4470_3fed_e2fe_ef22_19c77719c983
  198c79bd_897a_4eb2_cc44_66aa3f02cd85["testAllSuccess()"]
  2abc6c0d_8cdb_d5d2_1b96_701b273a7099 -->|method| 198c79bd_897a_4eb2_cc44_66aa3f02cd85
  723bae43_b3d5_199f_591a_8a6b6a21e511["testIfMainAndFallbackUseRSV1WillFail()"]
  2abc6c0d_8cdb_d5d2_1b96_701b273a7099 -->|method| 723bae43_b3d5_199f_591a_8a6b6a21e511

Relationship Graph

Source Code

codec-http/src/test/java/io/netty/handler/codec/http/websocketx/extensions/WebSocketClientExtensionHandlerTest.java lines 40–277

public class WebSocketClientExtensionHandlerTest {

    WebSocketClientExtensionHandshaker mainHandshakerMock =
            mock(WebSocketClientExtensionHandshaker.class, "mainHandshaker");
    WebSocketClientExtensionHandshaker fallbackHandshakerMock =
            mock(WebSocketClientExtensionHandshaker.class, "fallbackHandshaker");
    WebSocketClientExtension mainExtensionMock =
            mock(WebSocketClientExtension.class, "mainExtension");
    WebSocketClientExtension fallbackExtensionMock =
            mock(WebSocketClientExtension.class, "fallbackExtension");

    @Test
    public void testMainSuccess() {
        // initialize
        when(mainHandshakerMock.newRequestData()).
                thenReturn(new WebSocketExtensionData("main", Collections.<String, String>emptyMap()));
        when(mainHandshakerMock.handshakeExtension(any(WebSocketExtensionData.class))).thenReturn(mainExtensionMock);
        when(fallbackHandshakerMock.newRequestData()).
                thenReturn(new WebSocketExtensionData("fallback", Collections.<String, String>emptyMap()));
        when(mainExtensionMock.rsv()).thenReturn(WebSocketExtension.RSV1);
        when(mainExtensionMock.newExtensionEncoder()).thenReturn(new DummyEncoder());
        when(mainExtensionMock.newExtensionDecoder()).thenReturn(new DummyDecoder());

        // execute
        EmbeddedChannel ch = new EmbeddedChannel(new WebSocketClientExtensionHandler(
                mainHandshakerMock, fallbackHandshakerMock));

        HttpRequest req = newUpgradeRequest(null);
        ch.writeOutbound(req);

        HttpRequest req2 = ch.readOutbound();
        List<WebSocketExtensionData> reqExts = WebSocketExtensionUtil.extractExtensions(
                req2.headers().get(HttpHeaderNames.SEC_WEBSOCKET_EXTENSIONS));

        HttpResponse res = newUpgradeResponse("main");
        ch.writeInbound(res);

        HttpResponse res2 = ch.readInbound();
        List<WebSocketExtensionData> resExts = WebSocketExtensionUtil.extractExtensions(
                res2.headers().get(HttpHeaderNames.SEC_WEBSOCKET_EXTENSIONS));

        // test
        assertEquals(2, reqExts.size());
        assertEquals("main", reqExts.get(0).name());
        assertEquals("fallback", reqExts.get(1).name());

        assertEquals(1, resExts.size());
        assertEquals("main", resExts.get(0).name());
        assertTrue(resExts.get(0).parameters().isEmpty());
        assertNotNull(ch.pipeline().get(DummyDecoder.class));
        assertNotNull(ch.pipeline().get(DummyEncoder.class));

        verify(mainHandshakerMock).newRequestData();
        verify(mainHandshakerMock).handshakeExtension(any(WebSocketExtensionData.class));
        verify(fallbackHandshakerMock).newRequestData();
        verify(mainExtensionMock, atLeastOnce()).rsv();
        verify(mainExtensionMock).newExtensionEncoder();
        verify(mainExtensionMock).newExtensionDecoder();
    }

    @Test
    public void testFallbackSuccess() {
        // initialize
        when(mainHandshakerMock.newRequestData()).
                thenReturn(new WebSocketExtensionData("main", Collections.<String, String>emptyMap()));
        when(mainHandshakerMock.handshakeExtension(any(WebSocketExtensionData.class))).thenReturn(null);
        when(fallbackHandshakerMock.newRequestData()).
                thenReturn(new WebSocketExtensionData("fallback", Collections.<String, String>emptyMap()));
        when(fallbackHandshakerMock.handshakeExtension(
                any(WebSocketExtensionData.class))).thenReturn(fallbackExtensionMock);
        when(fallbackExtensionMock.rsv()).thenReturn(WebSocketExtension.RSV1);
        when(fallbackExtensionMock.newExtensionEncoder()).thenReturn(new DummyEncoder());
        when(fallbackExtensionMock.newExtensionDecoder()).thenReturn(new DummyDecoder());

        // execute
        EmbeddedChannel ch = new EmbeddedChannel(new WebSocketClientExtensionHandler(
                mainHandshakerMock, fallbackHandshakerMock));

        HttpRequest req = newUpgradeRequest(null);
        ch.writeOutbound(req);

Frequently Asked Questions

What is the WebSocketClientExtensionHandlerTest class?
WebSocketClientExtensionHandlerTest is a class in the netty codebase, defined in codec-http/src/test/java/io/netty/handler/codec/http/websocketx/extensions/WebSocketClientExtensionHandlerTest.java.
Where is WebSocketClientExtensionHandlerTest defined?
WebSocketClientExtensionHandlerTest is defined in codec-http/src/test/java/io/netty/handler/codec/http/websocketx/extensions/WebSocketClientExtensionHandlerTest.java at line 40.

Analyze Your Own Codebase

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

Try Supermodel Free