/** * Equivalent to {@code toTry("toTry")}. * @see #toTry(String) */ default Task<Try<T>> toTry() { return toTry("toTry"); }
@Test public void testHappyPath() throws InterruptedException { final Task<Try<String>> task = Task.callable("test", () -> "hello").toTry(); runAndWait("TestWithTry.testHappyPath", task); assertFalse(task.get().isFailed()); assertEquals("hello", task.get().get()); }
@Test public void testToTryCancelled() throws InterruptedException { Task<String> cancelMain = delayedValue("value", 6000, TimeUnit.MILLISECONDS); Task<Try<String>> task = cancelMain.toTry(); run(task); assertTrue(cancelMain.cancel(new Exception("canceled"))); task.await(); assertTrue(task.isDone()); assertTrue(task.isFailed()); assertTrue(Exceptions.isCancellation(task.getError())); logTracingResults("AbstractTaskTest.testToTryCancelled", task); }
@Test public void testError() throws InterruptedException { @SuppressWarnings("unused") final Task<Try<String>> task = Task.callable("test", () -> { if (true) { throw new RuntimeException("boom"); } return "hello"; } ).toTry(); runAndWait("TestWithTry.testError", task); assertTrue(task.get().isFailed()); assertTrue(task.get().getError() instanceof RuntimeException); assertEquals(task.get().getError().getMessage(), "boom"); }
public void testToTry(int expectedNumberOfTasks) { Task<Try<Integer>> success = getSuccessTask().map("strlen", String::length).toTry(); runAndWait("AbstractTaskTest.testToTrySuccess", success); assertFalse(success.get().isFailed()); assertEquals((int) success.get().get(), TASK_VALUE.length()); assertEquals(countTasks(success.getTrace()), expectedNumberOfTasks); Task<Try<Integer>> failure = getFailureTask().map("strlen", String::length).toTry(); runAndWait("AbstractTaskTest.testToTryFailure", failure); assertTrue(failure.get().isFailed()); assertEquals(failure.get().getError().getMessage(), TASK_ERROR_MESSAGE); assertEquals(countTasks(failure.getTrace()), expectedNumberOfTasks); }
@Test public void testConfiguredD2TimeoutOutboundOp() { setInboundRequestContext(new InboundRequestContextBuilder().setName("withD2Timeout").build()); Task<?> task = greetingDel(9999L).toTry(); runAndWait(getTestClassName() + ".testConfiguredD2TimeoutOutboundOp", task); assertTrue(hasTask("withTimeout 5000ms src: withD2Timeout.*/greetings.*", task.getTrace())); }
@Test public void testConfiguredTimeoutOutboundOp() { try { setInboundRequestContext(new InboundRequestContextBuilder() .setName("blah") .setMethod("GET") .build()); Task<?> task = greetingDel(9999L).toTry(); runAndWait(getTestClassName() + ".testConfiguredTimeoutOutboundOp", task); assertTrue(hasTask("withTimeout 10001ms src: *.*/greetings.*", task.getTrace())); } finally { clearInboundRequestContext(); } }
/** * Equivalent to {@code toTry("toTry")}. * @see #toTry(String) */ default Task<Try<T>> toTry() { return toTry("toTry"); }