@Override
    public Mono<MatchResult> matches(ServerWebExchange exchange) {
        return isWebSocketUpgrade(exchange.getRequest().getHeaders()) ? match() : notMatch();
    }
@Test
    void shouldMatchIfWebSocketProtocol() {
        var httpRequest = MockServerHttpRequest.get("")
            .header(HttpHeaders.CONNECTION, HttpHeaders.UPGRADE)
            .header(HttpHeaders.UPGRADE, "websocket")
            .build();
        var wsExchange = MockServerWebExchange.from(httpRequest);
        var wsMatcher = new WebSocketServerWebExchangeMatcher();
        StepVerifier.create(wsMatcher.matches(wsExchange))
            .consumeNextWith(result -> assertTrue(result.isMatch()))
            .verifyComplete();
    }