@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()); }
dst.fail(tryR.getError()); } else { dst.done(tryR.get());
@Override protected void executeBatchWithContext(final G group, final Batch<K, T> batch, final Context ctx) { Task<Map<K, Try<T>>> task = taskForBatch(group, batch.keys()); Task<Map<K, Try<T>>> completing = task.andThen("completePromises", map -> { batch.foreach((key, promise) -> { Try<T> result = map.get(key); if (result != null) { if (result.isFailed()) { promise.fail(result.getError()); } else { promise.done(result.get()); } } else { promise.fail(new Exception("Result for key: " + key + " not found in batch response")); } }); }); completing.getShallowTraceBuilder().setSystemHidden(true); Task<Map<K, Try<T>>> withFailureHandling = completing.onFailure("handleFailures", t -> { batch.failAll(t); }); withFailureHandling.getShallowTraceBuilder().setSystemHidden(true); ctx.run(withFailureHandling); }
@Test public void testTransformSuccessToSuccess() { Task<String> success = getSuccessTask(); Task<String> transformed = success.transform(tryT -> Success.of(tryT.get() + "transformed")); runAndWait("AbstractTaskTest.testTransformSuccessToSuccess", transformed); assertEquals(transformed.get(), success.get() + "transformed"); }
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); }
@Override protected void executeBatchWithContext(final G group, final Batch<K, T> batch, final Context ctx) { Task<Map<K, Try<T>>> task = taskForBatch(group, batch.keys()); Task<Map<K, Try<T>>> completing = task.andThen("completePromises", map -> { batch.foreach((key, promise) -> { Try<T> result = map.get(key); if (result != null) { if (result.isFailed()) { promise.fail(result.getError()); } else { promise.done(result.get()); } } else { promise.fail(new Exception("Result for key: " + key + " not found in batch response")); } }); }); completing.getShallowTraceBuilder().setSystemHidden(true); Task<Map<K, Try<T>>> withFailureHandling = completing.onFailure("handleFailures", t -> { batch.failAll(t); }); withFailureHandling.getShallowTraceBuilder().setSystemHidden(true); ctx.run(withFailureHandling); }
dst.fail(tryR.getError()); } else { dst.done(tryR.get());