Search in sources :

Example 11 with MatcherOf

use of org.cactoos.matchers.MatcherOf in project cactoos by yegor256.

the class AsyncFuncTest method runsInBackgroundWithExecutorService.

@Test
public void runsInBackgroundWithExecutorService() {
    final String name = "secret name for thread executor";
    final ThreadFactory factory = r -> new Thread(r, name);
    final CountDownLatch latch = new CountDownLatch(1);
    MatcherAssert.assertThat("Can't run in the background with specific thread executor", new AsyncFunc<>(input -> {
        if (!input.equals(Thread.currentThread().getName())) {
            throw new IllegalStateException("Another thread executor was used");
        }
        latch.countDown();
    }, Executors.newSingleThreadExecutor(factory)), new FuncApplies<>(name, new MatcherOf<Future<Void>>(future -> {
        future.get();
        return latch.getCount() == 0;
    })));
}
Also used : TimeUnit(java.util.concurrent.TimeUnit) CountDownLatch(java.util.concurrent.CountDownLatch) Future(java.util.concurrent.Future) MatcherAssert(org.hamcrest.MatcherAssert) FuncApplies(org.cactoos.matchers.FuncApplies) Matchers(org.hamcrest.Matchers) Test(org.junit.Test) Proc(org.cactoos.Proc) ThreadFactory(java.util.concurrent.ThreadFactory) Executors(java.util.concurrent.Executors) MatcherOf(org.cactoos.matchers.MatcherOf) ThreadFactory(java.util.concurrent.ThreadFactory) MatcherOf(org.cactoos.matchers.MatcherOf) CountDownLatch(java.util.concurrent.CountDownLatch) Test(org.junit.Test)

Aggregations

MatcherOf (org.cactoos.matchers.MatcherOf)11 Test (org.junit.Test)11 MatcherAssert (org.hamcrest.MatcherAssert)8 TextOf (org.cactoos.text.TextOf)5 Matchers (org.hamcrest.Matchers)5 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)4 CountDownLatch (java.util.concurrent.CountDownLatch)3 Executors (java.util.concurrent.Executors)3 Future (java.util.concurrent.Future)3 ThreadFactory (java.util.concurrent.ThreadFactory)3 TimeUnit (java.util.concurrent.TimeUnit)3 Proc (org.cactoos.Proc)3 FuncApplies (org.cactoos.matchers.FuncApplies)3 TextHasString (org.cactoos.matchers.TextHasString)3 FileOutputStream (java.io.FileOutputStream)2 OutputStreamWriter (java.io.OutputStreamWriter)2 Path (java.nio.file.Path)2 SubText (org.cactoos.text.SubText)2 UpperText (org.cactoos.text.UpperText)2 ByteArrayInputStream (java.io.ByteArrayInputStream)1