public static HttpRequestMessage getRequestFromChannel(Channel ch) {
        return ch.attr(ATTR_ZUUL_REQ).get();
    }
@Test
    void headersAllCopied() {
        ClientRequestReceiver receiver = new ClientRequestReceiver(null);
        EmbeddedChannel channel = new EmbeddedChannel(new HttpRequestEncoder());
        PassportLoggingHandler loggingHandler = new PassportLoggingHandler(new DefaultRegistry());

        // Required for messages
        channel.attr(SourceAddressChannelHandler.ATTR_SERVER_LOCAL_PORT).set(1234);
        channel.pipeline().addLast(new HttpServerCodec());
        channel.pipeline().addLast(receiver);
        channel.pipeline().addLast(loggingHandler);

        HttpRequest httpRequest = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, "/post");
        httpRequest.headers().add("Header1", "Value1");
        httpRequest.headers().add("Header2", "Value2");
        httpRequest.headers().add("Duplicate", "Duplicate1");
        httpRequest.headers().add("Duplicate", "Duplicate2");

        channel.writeOutbound(httpRequest);
        ByteBuf byteBuf = channel.readOutbound();
        channel.writeInbound(byteBuf);
        channel.readInbound();
        channel.close();

        HttpRequestMessage request = ClientRequestReceiver.getRequestFromChannel(channel);
        Headers headers = request.getHeaders();
        assertEquals(4, headers.size());
        assertEquals("Value1", headers.getFirst("Header1"));
        assertEquals("Value2", headers.getFirst("Header2"));

        List<String> duplicates = headers.getAll("Duplicate");
        assertEquals(Arrays.asList("Duplicate1", "Duplicate2"), duplicates);
    }