@Test
public void testAction4() {

    final AtomicInteger value = new AtomicInteger();
    Action4<Integer, Integer, Integer, Integer> action = new Action4<Integer, Integer, Integer, Integer>() {
        @Override
        public void call(Integer t1, Integer t2, Integer t3, Integer t4) {
            value.set(t1 | t2 | t3 | t4);
        }
    };
    Async.toAsync(action, Schedulers.immediate())
            .call(1, 2, 4, 8)
            .subscribe(new TestObserver<Object>(observer));
    verify(observer, never()).onError(any(Throwable.class));
    verify(observer, times(1)).onNext(null);
    verify(observer, times(1)).onCompleted();
    Assert.assertEquals(15, value.get());
}