// Path: src/main/java/org/simondean/vertx/async/Async.java
// public final class Async {
//   private Async() {}
// 
//   public static <T> Series<T> series() {
//     return new SeriesImpl<>();
//   }
// 
//   public static WaterfallBuilder waterfall() {
//     return new WaterfallBuilderImpl();
//   }
// 
//   public static <T> IterableBuilder<T> iterable(Iterable<T> iterable) {
//     return new IterableBuilderImpl(iterable);
//   }
// 
//   public static RetryBuilder retry() {
//     return new RetryBuilderImpl();
//   }
// 
//   public static ForeverBuilder forever() {
//     return new ForeverBuilderImpl();
//   }
// }
// 
// Path: src/main/java/org/simondean/vertx/async/ObjectWrapper.java
// public class ObjectWrapper<T> {
//   private T object;
// 
//   public ObjectWrapper() {
//   }
// 
//   public ObjectWrapper(T object) {
//     this.object = object;
//   }
// 
//   public void setObject(T object) {
//     this.object = object;
//   }
// 
//   public T getObject() {
//     return object;
//   }
// }


import org.junit.Test;
import org.simondean.vertx.async.Async;
import org.simondean.vertx.async.ObjectWrapper;
import org.simondean.vertx.async.unit.fakes.*;
import java.util.ArrayList;
import static org.assertj.core.api.Assertions.assertThat;
package org.simondean.vertx.async.unit;




public class EachTest {
  @Test
  public void itStillExecutesWhenThereAreNoItems() {
    ArrayList<String> items = new ArrayList<>();

    FakeFailingAsyncFunction<String, Void> each = new FakeFailingAsyncFunction<>(new Throwable("Failed"));

// Path: src/main/java/org/simondean/vertx/async/Async.java
// public final class Async {
//   private Async() {}
// 
//   public static <T> Series<T> series() {
//     return new SeriesImpl<>();
//   }
// 
//   public static WaterfallBuilder waterfall() {
//     return new WaterfallBuilderImpl();
//   }
// 
//   public static <T> IterableBuilder<T> iterable(Iterable<T> iterable) {
//     return new IterableBuilderImpl(iterable);
//   }
// 
//   public static RetryBuilder retry() {
//     return new RetryBuilderImpl();
//   }
// 
//   public static ForeverBuilder forever() {
//     return new ForeverBuilderImpl();
//   }
// }
// 
// Path: src/main/java/org/simondean/vertx/async/ObjectWrapper.java
// public class ObjectWrapper<T> {
//   private T object;
// 
//   public ObjectWrapper() {
//   }
// 
//   public ObjectWrapper(T object) {
//     this.object = object;
//   }
// 
//   public void setObject(T object) {
//     this.object = object;
//   }
// 
//   public T getObject() {
//     return object;
//   }
// }


// Path: src/test/java/org/simondean/vertx/async/unit/EachTest.java
import org.junit.Test;
import org.simondean.vertx.async.Async;
import org.simondean.vertx.async.ObjectWrapper;
import org.simondean.vertx.async.unit.fakes.*;
import java.util.ArrayList;
import static org.assertj.core.api.Assertions.assertThat;

package org.simondean.vertx.async.unit;




public class EachTest {
  @Test
  public void itStillExecutesWhenThereAreNoItems() {
    ArrayList<String> items = new ArrayList<>();

    FakeFailingAsyncFunction<String, Void> each = new FakeFailingAsyncFunction<>(new Throwable("Failed"));

    ObjectWrapper<Integer> handlerCallCount = new ObjectWrapper<>(0);