@Override public boolean failed() { return fut.failed(); } };
@Test public void testFailFutureToHandler() { Throwable cause = new Throwable(); Consumer<Handler<AsyncResult<String>>> consumer = handler -> { handler.handle(Future.failedFuture(cause)); }; Future<String> fut = Future.future(); consumer.accept(fut); assertTrue(fut.isComplete()); assertTrue(fut.failed()); assertEquals(cause, fut.cause()); }
@Test public void shouldExecuteFutureAndReturnWithException() { // Given CircuitBreaker circuitBreaker = CircuitBreaker.ofDefaults("testName"); CircuitBreaker.Metrics metrics = circuitBreaker.getMetrics(); assertThat(metrics.getNumberOfBufferedCalls()).isEqualTo(0); // Given the HelloWorldService throws an exception BDDMockito.given(helloWorldService.returnHelloWorld()).willReturn(Future.failedFuture(new RuntimeException("BAM!"))); //When Future<String> future = VertxCircuitBreaker.executeFuture(circuitBreaker, helloWorldService::returnHelloWorld); //Then assertThat(future.failed()).isTrue(); assertThat(future.cause()).isInstanceOf(RuntimeException.class); assertThat(metrics.getNumberOfBufferedCalls()).isEqualTo(1); assertThat(metrics.getNumberOfFailedCalls()).isEqualTo(1); assertThat(metrics.getNumberOfSuccessfulCalls()).isEqualTo(0); // Then the helloWorldService should be invoked 1 time BDDMockito.then(helloWorldService).should(Mockito.times(1)).returnHelloWorld(); }
@Override public boolean failed(int index) { return future(index).failed(); }
@Test public void testStateAfterCompletion() { Object foo = new Object(); Future<Object> future = Future.succeededFuture(foo); assertTrue(future.succeeded()); assertFalse(future.failed()); assertTrue(future.isComplete()); assertEquals(foo, future.result()); assertNull(future.cause()); Exception cause = new Exception(); future = Future.failedFuture(cause); assertFalse(future.succeeded()); assertTrue(future.failed()); assertTrue(future.isComplete()); assertNull(future.result()); assertEquals(cause, future.cause()); }
Throwable assertFailed() { assertTrue(future.isComplete()); assertFalse(future.succeeded()); assertTrue(future.failed()); assertEquals(null, future.result()); assertEquals(1, count.get()); AsyncResult<T> ar = result.get(); assertNotNull(ar); assertFalse(ar.succeeded()); assertTrue(ar.failed()); assertNull(ar.result()); return future.cause(); } }
@Test public void testFailFutureToHandler() { Throwable cause = new Throwable(); Consumer<Handler<AsyncResult<String>>> consumer = handler -> { handler.handle(Future.failedFuture(cause)); }; Future<String> fut = Future.future(); consumer.accept(fut); assertTrue(fut.isComplete()); assertTrue(fut.failed()); assertEquals(cause, fut.cause()); }
void assertSucceeded(T expected) { assertTrue(future.isComplete()); assertTrue(future.succeeded()); assertFalse(future.failed()); assertNull(future.cause()); assertEquals(expected, future.result()); assertEquals(1, count.get()); AsyncResult<T> ar = result.get(); assertNotNull(ar); assertTrue(ar.succeeded()); assertFalse(ar.failed()); assertNull(ar.cause()); assertEquals(expected, future.result()); }
@Test public void testStateAfterCompletion() { Object foo = new Object(); Future<Object> future = Future.succeededFuture(foo); assertTrue(future.succeeded()); assertFalse(future.failed()); assertTrue(future.isComplete()); assertEquals(foo, future.result()); assertNull(future.cause()); Exception cause = new Exception(); future = Future.failedFuture(cause); assertFalse(future.succeeded()); assertTrue(future.failed()); assertTrue(future.isComplete()); assertNull(future.result()); assertEquals(cause, future.cause()); }
void assertNotCompleted() { assertFalse(future.isComplete()); assertFalse(future.succeeded()); assertFalse(future.failed()); assertNull(future.cause()); assertNull(future.result()); assertEquals(0, count.get()); assertNull(result.get()); }
@Test public void testFailedMapperFutureRecover() { Future<String> f = Future.future(); Future<String> r = f.recover(t -> { throw new RuntimeException("throw"); }); f.fail("recovered"); assertTrue(r.failed()); assertEquals(r.cause().getMessage(), "throw"); }
assertThat(future.failed()).isTrue(); assertThat(future.cause()).isInstanceOf(CircuitBreakerOpenException.class); assertThat(metrics.getNumberOfBufferedCalls()).isEqualTo(2);
assertEquals(location, redirection.result().absoluteURI()); } else { assertTrue(redirection == null || redirection.failed());
@Override public boolean failed() { return future.failed(); } }
@Override public boolean failed() { return fut.failed(); } };
@Override public boolean failed(int index) { return future(index).failed(); }
Throwable assertFailed() { assertTrue(future.isComplete()); assertFalse(future.succeeded()); assertTrue(future.failed()); assertEquals(null, future.result()); assertEquals(1, count.get()); AsyncResult<T> ar = result.get(); assertNotNull(ar); assertFalse(ar.succeeded()); assertTrue(ar.failed()); assertNull(ar.result()); return future.cause(); } }
void assertSucceeded(T expected) { assertTrue(future.isComplete()); assertTrue(future.succeeded()); assertFalse(future.failed()); assertNull(future.cause()); assertEquals(expected, future.result()); assertEquals(1, count.get()); AsyncResult<T> ar = result.get(); assertNotNull(ar); assertTrue(ar.succeeded()); assertFalse(ar.failed()); assertNull(ar.cause()); assertEquals(expected, future.result()); }
void assertNotCompleted() { assertFalse(future.isComplete()); assertFalse(future.succeeded()); assertFalse(future.failed()); assertNull(future.cause()); assertNull(future.result()); assertEquals(0, count.get()); assertNull(result.get()); }
@Test public void testFailedMapperFutureRecover() { Future<String> f = Future.future(); Future<String> r = f.recover(t -> { throw new RuntimeException("throw"); }); f.fail("recovered"); assertTrue(r.failed()); assertEquals(r.cause().getMessage(), "throw"); }