public CompletableFuture<Void> compensate(URL lra, Exchange exchange) {
        HttpRequest request = prepareRequest(URI.create(lra.toString() + COORDINATOR_PATH_CANCEL), exchange)
                .setHeader(CONTENT_TYPE, TEXT_PLAIN_CONTENT)
                .PUT(HttpRequest.BodyPublishers.ofString(""))
                .build();

        CompletableFuture<HttpResponse<String>> future = client.sendAsync(request, HttpResponse.BodyHandlers.ofString());

        return future.thenApply(response -> {
            if (response.statusCode() != HttpURLConnection.HTTP_OK) {
                throw new RuntimeCamelException("Cannot compensate LRA");
            }

            return null;
        });
    }
@DisplayName("Tests whether LRAClient is calling prepareRequest with exchange from compensate()")
    @Test
    void testCallsPrepareRequestWithExchangeInCompensate() throws MalformedURLException {
        LRASagaService sagaService = new LRASagaService();
        applyMockProperties(sagaService);
        LRAClient client = new LRAClient(sagaService) {
            protected HttpRequest.Builder prepareRequest(URI uri, Exchange exchange) {
                throw new ExchangeRuntimeException(exchange);
            }
        };
        Exchange exchange = Mockito.mock(Exchange.class);
        Assertions.assertThrows(ExchangeRuntimeException.class,
                () -> client.compensate(new URL("https://localhost/saga"), exchange));
    }