private ServerHttpRequestDecorator decorate(final ServerWebExchange exchange, final CachedBodyOutputMessage outputMessage) {
        return new ServerHttpRequestDecorator(exchange.getRequest()) {
            @Override
            public Flux<DataBuffer> getBody() {
                return outputMessage.getBody();
            }
        };
    }
@Test
    public void testDecorate() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {

        ServerWebExchange webExchangeTextPlain =
                MockServerWebExchange.from(MockServerHttpRequest
                        .post("http://localhost:8080")
                        .contentType(MediaType.TEXT_PLAIN)
                        .contentLength(4)
                        .body("test"));
        FileSizeFilter fileSizeFilterError = new FileSizeFilter(1);
        Method declaredMethod = FileSizeFilter.class.getDeclaredMethod("decorate", ServerWebExchange.class, CachedBodyOutputMessage.class);
        CachedBodyOutputMessage cachedBodyOutputMessage = mock(CachedBodyOutputMessage.class);
        declaredMethod.setAccessible(true);
        ServerHttpRequestDecorator decorator = (ServerHttpRequestDecorator) declaredMethod.invoke(fileSizeFilterError, webExchangeTextPlain, cachedBodyOutputMessage);
        Assertions.assertEquals(decorator.getBody(), cachedBodyOutputMessage.getBody());
    }