Search in sources :

Example 21 with Try

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);
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Try(io.vavr.control.Try) CharSequence(java.lang.CharSequence) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Test(org.junit.Test) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Try(io.vavr.control.Try) Test(org.junit.Test)

Example 22 with Try

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);
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Try(io.vavr.control.Try) CharSequence(java.lang.CharSequence) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Test(org.junit.Test) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Try(io.vavr.control.Try) Test(org.junit.Test)

Example 23 with Try

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);
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Try(io.vavr.control.Try) CharSequence(java.lang.CharSequence) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Test(org.junit.Test) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Try(io.vavr.control.Try) Test(org.junit.Test)

Example 24 with Try

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();
}
Also used : Try(io.vavr.control.Try) Test(org.junit.Test)

Example 25 with Try

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();
}
Also used : Try(io.vavr.control.Try) Test(org.junit.Test)

Aggregations

Try (io.vavr.control.Try)32 Test (org.junit.Test)31 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)11 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)10 CharSequence (java.lang.CharSequence)8 CheckedRunnable (io.vavr.CheckedRunnable)6 Duration (java.time.Duration)6 Supplier (java.util.function.Supplier)5 Before (org.junit.Before)4 BDDMockito (org.mockito.BDDMockito)4 HelloWorldService (io.github.resilience4j.test.HelloWorldService)3 API (io.vavr.API)3 API.$ (io.vavr.API.$)3 CheckedFunction0 (io.vavr.CheckedFunction0)3 Predicates (io.vavr.Predicates)3 Function (java.util.function.Function)3 WebServiceException (javax.xml.ws.WebServiceException)3 Mockito (org.mockito.Mockito)3 IntervalFunction (io.github.resilience4j.retry.IntervalFunction)2 Retry (io.github.resilience4j.retry.Retry)2