Search in sources :

Example 1 with IsApplicable

use of org.llorllale.cactoos.matchers.IsApplicable in project cactoos by yegor256.

the class AsyncTest method runsInBackgroundWithoutFuture.

@Test
void runsInBackgroundWithoutFuture() {
    final CountDownLatch latch = new CountDownLatch(1);
    new Assertion<>("Must run in the background without us touching the Future", new Async<>(new FuncOf<>(input -> latch.countDown(), true)), new IsApplicable<>(true, new Satisfies<>(future -> latch.await(1L, TimeUnit.SECONDS)))).affirm();
}
Also used : TimeUnit(java.util.concurrent.TimeUnit) Test(org.junit.jupiter.api.Test) CountDownLatch(java.util.concurrent.CountDownLatch) IsApplicable(org.llorllale.cactoos.matchers.IsApplicable) Assertion(org.llorllale.cactoos.matchers.Assertion) IsEqual(org.hamcrest.core.IsEqual) ThreadFactory(java.util.concurrent.ThreadFactory) Executors(java.util.concurrent.Executors) Satisfies(org.llorllale.cactoos.matchers.Satisfies) IsApplicable(org.llorllale.cactoos.matchers.IsApplicable) CountDownLatch(java.util.concurrent.CountDownLatch) Test(org.junit.jupiter.api.Test)

Example 2 with IsApplicable

use of org.llorllale.cactoos.matchers.IsApplicable in project cactoos by yegor256.

the class AsyncTest method runsInBackgroundWithExecutorService.

@Test
void runsInBackgroundWithExecutorService() {
    final String name = "secret name for thread executor";
    final ThreadFactory factory = r -> new Thread(r, name);
    final CountDownLatch latch = new CountDownLatch(1);
    new Assertion<>("Must run in the background with specific thread executor", new Async<>(new FuncOf<>(input -> {
        if (!input.equals(Thread.currentThread().getName())) {
            throw new IllegalStateException("Another thread executor was used");
        }
        latch.countDown();
    }, true), Executors.newSingleThreadExecutor(factory)), new IsApplicable<>(name, new Satisfies<>(future -> {
        future.get();
        return latch.getCount() == 0;
    }))).affirm();
}
Also used : TimeUnit(java.util.concurrent.TimeUnit) Test(org.junit.jupiter.api.Test) CountDownLatch(java.util.concurrent.CountDownLatch) IsApplicable(org.llorllale.cactoos.matchers.IsApplicable) Assertion(org.llorllale.cactoos.matchers.Assertion) IsEqual(org.hamcrest.core.IsEqual) ThreadFactory(java.util.concurrent.ThreadFactory) Executors(java.util.concurrent.Executors) Satisfies(org.llorllale.cactoos.matchers.Satisfies) ThreadFactory(java.util.concurrent.ThreadFactory) IsApplicable(org.llorllale.cactoos.matchers.IsApplicable) CountDownLatch(java.util.concurrent.CountDownLatch) Test(org.junit.jupiter.api.Test)

Example 3 with IsApplicable

use of org.llorllale.cactoos.matchers.IsApplicable in project cactoos by yegor256.

the class AsyncTest method runsInBackgroundWithThreadFactory.

@Test
void runsInBackgroundWithThreadFactory() {
    final String name = "secret name for thread factory";
    final ThreadFactory factory = r -> new Thread(r, name);
    final CountDownLatch latch = new CountDownLatch(1);
    new Assertion<>("Must run in the background with specific thread factory", new Async<>(new FuncOf<>(input -> {
        if (!input.equals(Thread.currentThread().getName())) {
            throw new IllegalStateException("Another thread factory was used");
        }
        latch.countDown();
    }, true), factory), new IsApplicable<>(name, new Satisfies<>(future -> {
        future.get();
        return latch.getCount() == 0;
    }))).affirm();
}
Also used : TimeUnit(java.util.concurrent.TimeUnit) Test(org.junit.jupiter.api.Test) CountDownLatch(java.util.concurrent.CountDownLatch) IsApplicable(org.llorllale.cactoos.matchers.IsApplicable) Assertion(org.llorllale.cactoos.matchers.Assertion) IsEqual(org.hamcrest.core.IsEqual) ThreadFactory(java.util.concurrent.ThreadFactory) Executors(java.util.concurrent.Executors) Satisfies(org.llorllale.cactoos.matchers.Satisfies) ThreadFactory(java.util.concurrent.ThreadFactory) IsApplicable(org.llorllale.cactoos.matchers.IsApplicable) CountDownLatch(java.util.concurrent.CountDownLatch) Test(org.junit.jupiter.api.Test)

Aggregations

CountDownLatch (java.util.concurrent.CountDownLatch)3 Executors (java.util.concurrent.Executors)3 ThreadFactory (java.util.concurrent.ThreadFactory)3 TimeUnit (java.util.concurrent.TimeUnit)3 IsEqual (org.hamcrest.core.IsEqual)3 Test (org.junit.jupiter.api.Test)3 Assertion (org.llorllale.cactoos.matchers.Assertion)3 IsApplicable (org.llorllale.cactoos.matchers.IsApplicable)3 Satisfies (org.llorllale.cactoos.matchers.Satisfies)3