use of io.vavr.control.Try in project javaslang by javaslang.
the class Function8Test method shouldLiftTryPartialFunction.
@Test
public void shouldLiftTryPartialFunction() {
AtomicInteger integer = new AtomicInteger();
Function8<Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer> divByZero = (i1, i2, i3, i4, i5, i6, i7, i8) -> 10 / integer.get();
Function8<Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Try<Integer>> divByZeroTry = Function8.liftTry(divByZero);
Try<Integer> res = divByZeroTry.apply(0, 0, 0, 0, 0, 0, 0, 0);
assertThat(res.isFailure()).isTrue();
assertThat(res.getCause()).isNotNull();
assertThat(res.getCause().getMessage()).isEqualToIgnoringCase("/ by zero");
integer.incrementAndGet();
res = divByZeroTry.apply(1, 2, 3, 4, 5, 6, 7, 8);
assertThat(res.isSuccess()).isTrue();
assertThat(res.get()).isEqualTo(10);
}
use of io.vavr.control.Try in project javaslang by javaslang.
the class Function5Test method shouldLiftTryPartialFunction.
@Test
public void shouldLiftTryPartialFunction() {
AtomicInteger integer = new AtomicInteger();
Function5<Integer, Integer, Integer, Integer, Integer, Integer> divByZero = (i1, i2, i3, i4, i5) -> 10 / integer.get();
Function5<Integer, Integer, Integer, Integer, Integer, Try<Integer>> divByZeroTry = Function5.liftTry(divByZero);
Try<Integer> res = divByZeroTry.apply(0, 0, 0, 0, 0);
assertThat(res.isFailure()).isTrue();
assertThat(res.getCause()).isNotNull();
assertThat(res.getCause().getMessage()).isEqualToIgnoringCase("/ by zero");
integer.incrementAndGet();
res = divByZeroTry.apply(1, 2, 3, 4, 5);
assertThat(res.isSuccess()).isTrue();
assertThat(res.get()).isEqualTo(10);
}
use of io.vavr.control.Try in project javaslang by javaslang.
the class Function7Test method shouldLiftTryPartialFunction.
@Test
public void shouldLiftTryPartialFunction() {
AtomicInteger integer = new AtomicInteger();
Function7<Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer> divByZero = (i1, i2, i3, i4, i5, i6, i7) -> 10 / integer.get();
Function7<Integer, Integer, Integer, Integer, Integer, Integer, Integer, Try<Integer>> divByZeroTry = Function7.liftTry(divByZero);
Try<Integer> res = divByZeroTry.apply(0, 0, 0, 0, 0, 0, 0);
assertThat(res.isFailure()).isTrue();
assertThat(res.getCause()).isNotNull();
assertThat(res.getCause().getMessage()).isEqualToIgnoringCase("/ by zero");
integer.incrementAndGet();
res = divByZeroTry.apply(1, 2, 3, 4, 5, 6, 7);
assertThat(res.isSuccess()).isTrue();
assertThat(res.get()).isEqualTo(10);
}
use of io.vavr.control.Try in project resilience4j by resilience4j.
the class TimeLimiterTest method decorateFutureSupplier.
@Test
public void decorateFutureSupplier() throws Throwable {
when(timeLimiter.getTimeLimiterConfig()).thenReturn(shortConfig);
Future<Integer> future = EXECUTOR_SERVICE.submit(() -> {
Thread.sleep(SLEEP_DURATION.toMillis());
return 1;
});
Supplier<Future<Integer>> supplier = () -> future;
Callable<Integer> decorated = TimeLimiter.decorateFutureSupplier(timeLimiter, supplier);
Try decoratedResult = Try.success(decorated).mapTry(Callable::call);
then(decoratedResult.isFailure()).isTrue();
then(decoratedResult.getCause()).isInstanceOf(TimeoutException.class);
then(future.isCancelled()).isTrue();
when(timeLimiter.getTimeLimiterConfig()).thenReturn(longConfig);
Future<Integer> secondFuture = EXECUTOR_SERVICE.submit(() -> {
Thread.sleep(SLEEP_DURATION.toMillis());
return 1;
});
supplier = () -> secondFuture;
decorated = TimeLimiter.decorateFutureSupplier(timeLimiter, supplier);
Try secondResult = Try.success(decorated).mapTry(Callable::call);
then(secondResult.isSuccess()).isTrue();
}
use of io.vavr.control.Try in project resilience4j by resilience4j.
the class TimeLimiterTest method executeFutureSupplier.
@Test
public void executeFutureSupplier() throws Throwable {
Future<Integer> future = EXECUTOR_SERVICE.submit(() -> {
Thread.sleep(SLEEP_DURATION.toMillis());
return 1;
});
Supplier<Future<Integer>> supplier = () -> future;
Try decoratedResult = Try.of(() -> TimeLimiter.of(shortConfig).executeFutureSupplier(supplier));
then(decoratedResult.isFailure()).isTrue();
then(decoratedResult.getCause()).isInstanceOf(TimeoutException.class);
then(future.isCancelled()).isTrue();
Future<Integer> secondFuture = EXECUTOR_SERVICE.submit(() -> {
Thread.sleep(SLEEP_DURATION.toMillis());
return 1;
});
Supplier<Future<Integer>> secondSupplier = () -> secondFuture;
Try secondResult = Try.of(() -> TimeLimiter.of(longConfig).executeFutureSupplier(secondSupplier));
then(secondResult.isSuccess()).isTrue();
}
Aggregations