@Override
    public CompletableFuture<Void> beginStep(Exchange exchange, CamelSagaStep step) {
        LRASagaStep sagaStep;
        try {
            sagaStep = LRASagaStep.fromCamelSagaStep(step, exchange);
        } catch (RuntimeException ex) {
            return CompletableFuture.supplyAsync(() -> {
                throw ex;
            });
        }
        return sagaService.getClient().join(this.lraURL, sagaStep, exchange);
    }
@DisplayName("Tests whether join is called on LRAClient")
    @Test
    void testBeginStep() throws Exception {
        CamelSagaStep step = new CamelSagaStep(null, null, Collections.emptyMap(), null);

        CompletableFuture<Void> expected = CompletableFuture.completedFuture(null);
        Mockito.when(client.join(Mockito.eq(url), Mockito.any(LRASagaStep.class), Mockito.eq(exchange))).thenReturn(expected);

        CompletableFuture<Void> actual = coordinator.beginStep(exchange, step);
        Assertions.assertSame(expected, actual);

        Mockito.verify(sagaService).getClient();
        Mockito.verify(client).join(Mockito.eq(url), Mockito.any(LRASagaStep.class), Mockito.eq(exchange));
    }