// Path: src/test/java/org/simondean/vertx/async/unit/examples/WaterfallExample.java
// public class WaterfallExample extends BaseExample {
//   private final boolean succeed;
//   private Integer result;
// 
//   public WaterfallExample(boolean succeed) {
//     this.succeed = succeed;
//   }
// 
//   public void waterfallExample(AsyncResultHandler<Integer> handler) {
//     Async.waterfall()
//       .<String>task(taskHandler -> {
//         String result = getSomeResult();
//         taskHandler.handle(DefaultAsyncResult.succeed(result));
//       })
//       .<Integer>task((result, taskHandler) -> {
//         someAsyncMethodThatTakesAResultAndHandler(result, taskHandler);
//       })
//       .run(result -> {
//         if (result.failed()) {
//           handler.handle(DefaultAsyncResult.fail(result.cause()));
//           return;
//         }
// 
//         Integer resultValue = result.result();
//         doSomethingWithTheResults(resultValue);
// 
//         handler.handle(DefaultAsyncResult.succeed(resultValue));
//       });
//   }
// 
//   private String getSomeResult() {
//     return "42";
//   }
// 
//   private void someAsyncMethodThatTakesAResultAndHandler(String result, AsyncResultHandler<Integer> handler) {
//     if (!succeed) {
//       handler.handle(DefaultAsyncResult.fail(new Exception("Fail")));
//       return;
//     }
// 
//     handler.handle(DefaultAsyncResult.succeed(Integer.parseInt(result)));
//   }
// 
//   private void doSomethingWithTheResults(Integer result) {
//     this.result = result;
//   }
// 
//   public Integer result() {
//     return result;
//   }
// }


import org.junit.Test;
import org.simondean.vertx.async.unit.examples.WaterfallExample;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
package org.simondean.vertx.async.unit;




public class WaterfallExampleTest {
  @Test
  public void itHandlesSuccess() {
// Path: src/test/java/org/simondean/vertx/async/unit/examples/WaterfallExample.java
// public class WaterfallExample extends BaseExample {
//   private final boolean succeed;
//   private Integer result;
// 
//   public WaterfallExample(boolean succeed) {
//     this.succeed = succeed;
//   }
// 
//   public void waterfallExample(AsyncResultHandler<Integer> handler) {
//     Async.waterfall()
//       .<String>task(taskHandler -> {
//         String result = getSomeResult();
//         taskHandler.handle(DefaultAsyncResult.succeed(result));
//       })
//       .<Integer>task((result, taskHandler) -> {
//         someAsyncMethodThatTakesAResultAndHandler(result, taskHandler);
//       })
//       .run(result -> {
//         if (result.failed()) {
//           handler.handle(DefaultAsyncResult.fail(result.cause()));
//           return;
//         }
// 
//         Integer resultValue = result.result();
//         doSomethingWithTheResults(resultValue);
// 
//         handler.handle(DefaultAsyncResult.succeed(resultValue));
//       });
//   }
// 
//   private String getSomeResult() {
//     return "42";
//   }
// 
//   private void someAsyncMethodThatTakesAResultAndHandler(String result, AsyncResultHandler<Integer> handler) {
//     if (!succeed) {
//       handler.handle(DefaultAsyncResult.fail(new Exception("Fail")));
//       return;
//     }
// 
//     handler.handle(DefaultAsyncResult.succeed(Integer.parseInt(result)));
//   }
// 
//   private void doSomethingWithTheResults(Integer result) {
//     this.result = result;
//   }
// 
//   public Integer result() {
//     return result;
//   }
// }


// Path: src/test/java/org/simondean/vertx/async/unit/WaterfallExampleTest.java
import org.junit.Test;
import org.simondean.vertx.async.unit.examples.WaterfallExample;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;

package org.simondean.vertx.async.unit;




public class WaterfallExampleTest {
  @Test
  public void itHandlesSuccess() {
    WaterfallExample example = new WaterfallExample(true);