public class io.vertx.ext.unit.impl.TestSuiteImpl implements io.vertx.ext.unit.TestSuite
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.ext.unit.impl.TestSuiteImpl
  super_class: java.lang.Object
{
  private static volatile io.vertx.core.Handler<io.vertx.ext.unit.impl.TestSuiteRunner> defaultRunner;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
    Signature: Lio/vertx/core/Handler<Lio/vertx/ext/unit/impl/TestSuiteRunner;>;

  private final java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile io.vertx.core.Handler<io.vertx.ext.unit.TestContext> before;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Lio/vertx/core/Handler<Lio/vertx/ext/unit/TestContext;>;

  private volatile io.vertx.core.Handler<io.vertx.ext.unit.TestContext> beforeEach;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Lio/vertx/core/Handler<Lio/vertx/ext/unit/TestContext;>;

  private volatile io.vertx.core.Handler<io.vertx.ext.unit.TestContext> after;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Lio/vertx/core/Handler<Lio/vertx/ext/unit/TestContext;>;

  private volatile io.vertx.core.Handler<io.vertx.ext.unit.TestContext> afterEach;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Lio/vertx/core/Handler<Lio/vertx/ext/unit/TestContext;>;

  private final java.util.List<io.vertx.ext.unit.impl.TestCaseImpl> testCases;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lio/vertx/ext/unit/impl/TestCaseImpl;>;

  static void setDefaultRunner(io.vertx.core.Handler<io.vertx.ext.unit.impl.TestSuiteRunner>);
    descriptor: (Lio/vertx/core/Handler;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.Handler runner
         0: .line 30
            aload 0 /* runner */
            putstatic io.vertx.ext.unit.impl.TestSuiteImpl.defaultRunner:Lio/vertx/core/Handler;
         1: .line 31
            return
        end local 0 // io.vertx.core.Handler runner
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  runner  Lio/vertx/core/Handler<Lio/vertx/ext/unit/impl/TestSuiteRunner;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/ext/unit/impl/TestSuiteRunner;>;)V
    MethodParameters:
        Name  Flags
      runner  

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
        start local 1 // java.lang.String name
         0: .line 40
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 38
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield io.vertx.ext.unit.impl.TestSuiteImpl.testCases:Ljava/util/List;
         2: .line 41
            aload 0 /* this */
            aload 1 /* name */
            putfield io.vertx.ext.unit.impl.TestSuiteImpl.name:Ljava/lang/String;
         3: .line 42
            return
        end local 1 // java.lang.String name
        end local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/vertx/ext/unit/impl/TestSuiteImpl;
            0    4     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public void <init>(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=2
        start local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
        start local 1 // java.lang.Object testSuiteObject
         0: .line 44
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 38
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield io.vertx.ext.unit.impl.TestSuiteImpl.testCases:Ljava/util/List;
         2: .line 45
            aload 1 /* testSuiteObject */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 2 /* suiteClass */
        start local 2 // java.lang.Class suiteClass
         3: .line 46
            aload 0 /* this */
            aload 2 /* suiteClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            putfield io.vertx.ext.unit.impl.TestSuiteImpl.name:Ljava/lang/String;
         4: .line 47
            aload 2 /* suiteClass */
            invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 27
      StackMap locals: io.vertx.ext.unit.impl.TestSuiteImpl java.lang.Object java.lang.Class top int int java.lang.reflect.Method[]
      StackMap stack:
         5: aload 6
            iload 4
            aaload
            astore 3 /* method */
        start local 3 // java.lang.reflect.Method method
         6: .line 48
            aload 3 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            istore 7 /* modifiers */
        start local 7 // int modifiers
         7: .line 49
            aload 3 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            astore 8 /* methodName */
        start local 8 // java.lang.String methodName
         8: .line 50
            iload 7 /* modifiers */
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 26
            iload 7 /* modifiers */
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifne 26
         9: .line 51
            aload 3 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lio/vertx/ext/unit/TestContext;
            aastore
            invokestatic java.util.Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z
            ifeq 26
        10: .line 52
            aload 3 /* method */
            aload 1 /* testSuiteObject */
            invokedynamic handle(Ljava/lang/reflect/Method;Ljava/lang/Object;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/ext/unit/impl/TestSuiteImpl.lambda$0(Ljava/lang/reflect/Method;Ljava/lang/Object;Lio/vertx/ext/unit/TestContext;)V (6)
                  (Lio/vertx/ext/unit/TestContext;)V
            astore 9 /* handler */
        start local 9 // io.vertx.core.Handler handler
        11: .line 61
            aload 8 /* methodName */
            dup
            astore 10
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 4
          -1392885889: 12
             92734940: 13
            518077984: 14
           1018793469: 15
              default: 24
          }
      StackMap locals: io.vertx.ext.unit.impl.TestSuiteImpl java.lang.Object java.lang.Class java.lang.reflect.Method int int java.lang.reflect.Method[] int java.lang.String io.vertx.core.Handler java.lang.String
      StackMap stack:
        12: aload 10
            ldc "before"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 16
            goto 24
      StackMap locals:
      StackMap stack:
        13: aload 10
            ldc "after"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 18
            goto 24
      StackMap locals:
      StackMap stack:
        14: aload 10
            ldc "beforeEach"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 20
            goto 24
      StackMap locals:
      StackMap stack:
        15: aload 10
            ldc "afterEach"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
            goto 24
        16: .line 63
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* handler */
            invokevirtual io.vertx.ext.unit.impl.TestSuiteImpl.before:(Lio/vertx/core/Handler;)Lio/vertx/ext/unit/TestSuite;
            pop
        17: .line 64
            goto 26
        18: .line 66
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* handler */
            invokevirtual io.vertx.ext.unit.impl.TestSuiteImpl.after:(Lio/vertx/core/Handler;)Lio/vertx/ext/unit/TestSuite;
            pop
        19: .line 67
            goto 26
        20: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* handler */
            invokevirtual io.vertx.ext.unit.impl.TestSuiteImpl.beforeEach:(Lio/vertx/core/Handler;)Lio/vertx/ext/unit/TestSuite;
            pop
        21: .line 70
            goto 26
        22: .line 72
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* handler */
            invokevirtual io.vertx.ext.unit.impl.TestSuiteImpl.afterEach:(Lio/vertx/core/Handler;)Lio/vertx/ext/unit/TestSuite;
            pop
        23: .line 73
            goto 26
        24: .line 75
      StackMap locals:
      StackMap stack:
            aload 8 /* methodName */
            ldc "test"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 26
            aload 8 /* methodName */
            invokevirtual java.lang.String.length:()I
            iconst_4
            if_icmple 26
        25: .line 76
            aload 0 /* this */
            aload 8 /* methodName */
            aload 9 /* handler */
            invokevirtual io.vertx.ext.unit.impl.TestSuiteImpl.test:(Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/ext/unit/TestSuite;
            pop
        end local 9 // io.vertx.core.Handler handler
        end local 8 // java.lang.String methodName
        end local 7 // int modifiers
        end local 3 // java.lang.reflect.Method method
        26: .line 47
      StackMap locals: io.vertx.ext.unit.impl.TestSuiteImpl java.lang.Object java.lang.Class top int int java.lang.reflect.Method[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        27: iload 4
            iload 5
            if_icmplt 5
        28: .line 82
            return
        end local 2 // java.lang.Class suiteClass
        end local 1 // java.lang.Object testSuiteObject
        end local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   29     0             this  Lio/vertx/ext/unit/impl/TestSuiteImpl;
            0   29     1  testSuiteObject  Ljava/lang/Object;
            3   29     2       suiteClass  Ljava/lang/Class<*>;
            6   26     3           method  Ljava/lang/reflect/Method;
            7   26     7        modifiers  I
            8   26     8       methodName  Ljava/lang/String;
           11   26     9          handler  Lio/vertx/core/Handler<Lio/vertx/ext/unit/TestContext;>;
    MethodParameters:
                 Name  Flags
      testSuiteObject  

  public java.util.List<io.vertx.ext.unit.impl.TestCaseImpl> testCases();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
         0: .line 85
            aload 0 /* this */
            getfield io.vertx.ext.unit.impl.TestSuiteImpl.testCases:Ljava/util/List;
            areturn
        end local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/unit/impl/TestSuiteImpl;
    Signature: ()Ljava/util/List<Lio/vertx/ext/unit/impl/TestCaseImpl;>;

  public io.vertx.ext.unit.TestSuite before(io.vertx.core.Handler<io.vertx.ext.unit.TestContext>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/ext/unit/TestSuite;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
        start local 1 // io.vertx.core.Handler callback
         0: .line 90
            aload 0 /* this */
            aload 1 /* callback */
            putfield io.vertx.ext.unit.impl.TestSuiteImpl.before:Lio/vertx/core/Handler;
         1: .line 91
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler callback
        end local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/vertx/ext/unit/impl/TestSuiteImpl;
            0    2     1  callback  Lio/vertx/core/Handler<Lio/vertx/ext/unit/TestContext;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/ext/unit/TestContext;>;)Lio/vertx/ext/unit/TestSuite;
    MethodParameters:
          Name  Flags
      callback  

  public io.vertx.ext.unit.TestSuite beforeEach(io.vertx.core.Handler<io.vertx.ext.unit.TestContext>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/ext/unit/TestSuite;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
        start local 1 // io.vertx.core.Handler callback
         0: .line 96
            aload 0 /* this */
            aload 1 /* callback */
            putfield io.vertx.ext.unit.impl.TestSuiteImpl.beforeEach:Lio/vertx/core/Handler;
         1: .line 97
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler callback
        end local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/vertx/ext/unit/impl/TestSuiteImpl;
            0    2     1  callback  Lio/vertx/core/Handler<Lio/vertx/ext/unit/TestContext;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/ext/unit/TestContext;>;)Lio/vertx/ext/unit/TestSuite;
    MethodParameters:
          Name  Flags
      callback  

  public io.vertx.ext.unit.TestSuite after(io.vertx.core.Handler<io.vertx.ext.unit.TestContext>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/ext/unit/TestSuite;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
        start local 1 // io.vertx.core.Handler handler
         0: .line 102
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.ext.unit.impl.TestSuiteImpl.after:Lio/vertx/core/Handler;
         1: .line 103
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/ext/unit/impl/TestSuiteImpl;
            0    2     1  handler  Lio/vertx/core/Handler<Lio/vertx/ext/unit/TestContext;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/ext/unit/TestContext;>;)Lio/vertx/ext/unit/TestSuite;
    MethodParameters:
         Name  Flags
      handler  

  public io.vertx.ext.unit.TestSuite afterEach(io.vertx.core.Handler<io.vertx.ext.unit.TestContext>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/ext/unit/TestSuite;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
        start local 1 // io.vertx.core.Handler handler
         0: .line 108
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.ext.unit.impl.TestSuiteImpl.afterEach:Lio/vertx/core/Handler;
         1: .line 109
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/ext/unit/impl/TestSuiteImpl;
            0    2     1  handler  Lio/vertx/core/Handler<Lio/vertx/ext/unit/TestContext;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/ext/unit/TestContext;>;)Lio/vertx/ext/unit/TestSuite;
    MethodParameters:
         Name  Flags
      handler  

  public io.vertx.ext.unit.TestSuite test(java.lang.String, io.vertx.core.Handler<io.vertx.ext.unit.TestContext>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/ext/unit/TestSuite;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
        start local 1 // java.lang.String name
        start local 2 // io.vertx.core.Handler testCase
         0: .line 114
            aload 0 /* this */
            aload 1 /* name */
            iconst_1
            aload 2 /* testCase */
            invokevirtual io.vertx.ext.unit.impl.TestSuiteImpl.test:(Ljava/lang/String;ILio/vertx/core/Handler;)Lio/vertx/ext/unit/TestSuite;
            areturn
        end local 2 // io.vertx.core.Handler testCase
        end local 1 // java.lang.String name
        end local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/vertx/ext/unit/impl/TestSuiteImpl;
            0    1     1      name  Ljava/lang/String;
            0    1     2  testCase  Lio/vertx/core/Handler<Lio/vertx/ext/unit/TestContext;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/ext/unit/TestContext;>;)Lio/vertx/ext/unit/TestSuite;
    MethodParameters:
          Name  Flags
      name      
      testCase  

  public io.vertx.ext.unit.TestSuite test(java.lang.String, int, io.vertx.core.Handler<io.vertx.ext.unit.TestContext>);
    descriptor: (Ljava/lang/String;ILio/vertx/core/Handler;)Lio/vertx/ext/unit/TestSuite;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
        start local 1 // java.lang.String name
        start local 2 // int repeat
        start local 3 // io.vertx.core.Handler testCase
         0: .line 119
            aload 0 /* this */
            getfield io.vertx.ext.unit.impl.TestSuiteImpl.testCases:Ljava/util/List;
            new io.vertx.ext.unit.impl.TestCaseImpl
            dup
            aload 1 /* name */
            iload 2 /* repeat */
            aload 3 /* testCase */
            invokespecial io.vertx.ext.unit.impl.TestCaseImpl.<init>:(Ljava/lang/String;ILio/vertx/core/Handler;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 120
            aload 0 /* this */
            areturn
        end local 3 // io.vertx.core.Handler testCase
        end local 2 // int repeat
        end local 1 // java.lang.String name
        end local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/vertx/ext/unit/impl/TestSuiteImpl;
            0    2     1      name  Ljava/lang/String;
            0    2     2    repeat  I
            0    2     3  testCase  Lio/vertx/core/Handler<Lio/vertx/ext/unit/TestContext;>;
    Signature: (Ljava/lang/String;ILio/vertx/core/Handler<Lio/vertx/ext/unit/TestContext;>;)Lio/vertx/ext/unit/TestSuite;
    MethodParameters:
          Name  Flags
      name      
      repeat    
      testCase  

  public io.vertx.ext.unit.TestCompletion run();
    descriptor: ()Lio/vertx/ext/unit/TestCompletion;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
         0: .line 125
            aload 0 /* this */
            aconst_null
            new io.vertx.ext.unit.TestOptions
            dup
            invokespecial io.vertx.ext.unit.TestOptions.<init>:()V
            invokevirtual io.vertx.ext.unit.impl.TestSuiteImpl.run:(Lio/vertx/core/Vertx;Lio/vertx/ext/unit/TestOptions;)Lio/vertx/ext/unit/TestCompletion;
            areturn
        end local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/unit/impl/TestSuiteImpl;

  public io.vertx.ext.unit.TestCompletion run(io.vertx.core.Vertx);
    descriptor: (Lio/vertx/core/Vertx;)Lio/vertx/ext/unit/TestCompletion;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
        start local 1 // io.vertx.core.Vertx vertx
         0: .line 130
            aload 0 /* this */
            aload 1 /* vertx */
            new io.vertx.ext.unit.TestOptions
            dup
            invokespecial io.vertx.ext.unit.TestOptions.<init>:()V
            invokevirtual io.vertx.ext.unit.impl.TestSuiteImpl.run:(Lio/vertx/core/Vertx;Lio/vertx/ext/unit/TestOptions;)Lio/vertx/ext/unit/TestCompletion;
            areturn
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/ext/unit/impl/TestSuiteImpl;
            0    1     1  vertx  Lio/vertx/core/Vertx;
    MethodParameters:
       Name  Flags
      vertx  

  public io.vertx.ext.unit.TestCompletion run(io.vertx.ext.unit.TestOptions);
    descriptor: (Lio/vertx/ext/unit/TestOptions;)Lio/vertx/ext/unit/TestCompletion;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
        start local 1 // io.vertx.ext.unit.TestOptions options
         0: .line 135
            aload 0 /* this */
            aconst_null
            aload 1 /* options */
            invokevirtual io.vertx.ext.unit.impl.TestSuiteImpl.run:(Lio/vertx/core/Vertx;Lio/vertx/ext/unit/TestOptions;)Lio/vertx/ext/unit/TestCompletion;
            areturn
        end local 1 // io.vertx.ext.unit.TestOptions options
        end local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/vertx/ext/unit/impl/TestSuiteImpl;
            0    1     1  options  Lio/vertx/ext/unit/TestOptions;
    MethodParameters:
         Name  Flags
      options  

  public io.vertx.ext.unit.TestCompletion run(io.vertx.core.Vertx, io.vertx.ext.unit.TestOptions);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/ext/unit/TestOptions;)Lio/vertx/ext/unit/TestCompletion;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
        start local 1 // io.vertx.core.Vertx vertx
        start local 2 // io.vertx.ext.unit.TestOptions options
         0: .line 140
            aload 2 /* options */
            invokevirtual io.vertx.ext.unit.TestOptions.getReporters:()Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            aload 1 /* vertx */
            invokedynamic apply(Lio/vertx/core/Vertx;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/ext/unit/impl/TestSuiteImpl.lambda$1(Lio/vertx/core/Vertx;Lio/vertx/ext/unit/report/ReportOptions;)Lio/vertx/ext/unit/report/Reporter; (6)
                  (Lio/vertx/ext/unit/report/ReportOptions;)Lio/vertx/ext/unit/report/Reporter;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/IntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)Ljava/lang/Object;
                  io/vertx/ext/unit/impl/TestSuiteImpl.lambda$2(I)[Lio/vertx/ext/unit/report/Reporter; (6)
                  (I)[Lio/vertx/ext/unit/report/Reporter;
            invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
            checkcast io.vertx.ext.unit.report.Reporter[]
            astore 3 /* reporters */
        start local 3 // io.vertx.ext.unit.report.Reporter[] reporters
         1: .line 141
            new io.vertx.ext.unit.impl.TestCompletionImpl
            dup
            aload 3 /* reporters */
            invokespecial io.vertx.ext.unit.impl.TestCompletionImpl.<init>:([Lio/vertx/ext/unit/report/Reporter;)V
            astore 4 /* completion */
        start local 4 // io.vertx.ext.unit.impl.TestCompletionImpl completion
         2: .line 142
            aload 0 /* this */
            invokevirtual io.vertx.ext.unit.impl.TestSuiteImpl.runner:()Lio/vertx/ext/unit/impl/TestSuiteRunner;
         3: .line 143
            aload 1 /* vertx */
            invokevirtual io.vertx.ext.unit.impl.TestSuiteRunner.setVertx:(Lio/vertx/core/Vertx;)Lio/vertx/ext/unit/impl/TestSuiteRunner;
         4: .line 144
            aload 2 /* options */
            invokevirtual io.vertx.ext.unit.TestOptions.getTimeout:()J
            invokevirtual io.vertx.ext.unit.impl.TestSuiteRunner.setTimeout:(J)Lio/vertx/ext/unit/impl/TestSuiteRunner;
         5: .line 145
            aload 2 /* options */
            invokevirtual io.vertx.ext.unit.TestOptions.isUseEventLoop:()Ljava/lang/Boolean;
            invokevirtual io.vertx.ext.unit.impl.TestSuiteRunner.setUseEventLoop:(Ljava/lang/Boolean;)Lio/vertx/ext/unit/impl/TestSuiteRunner;
         6: .line 146
            aload 4 /* completion */
            invokevirtual io.vertx.ext.unit.impl.TestSuiteRunner.setReporter:(Lio/vertx/core/Handler;)Lio/vertx/ext/unit/impl/TestSuiteRunner;
         7: .line 142
            astore 5 /* runner */
        start local 5 // io.vertx.ext.unit.impl.TestSuiteRunner runner
         8: .line 147
            getstatic io.vertx.ext.unit.impl.TestSuiteImpl.defaultRunner:Lio/vertx/core/Handler;
            ifnull 11
         9: .line 148
            getstatic io.vertx.ext.unit.impl.TestSuiteImpl.defaultRunner:Lio/vertx/core/Handler;
            aload 5 /* runner */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        10: .line 149
            goto 12
        11: .line 150
      StackMap locals: io.vertx.ext.unit.report.Reporter[] io.vertx.ext.unit.impl.TestCompletionImpl io.vertx.ext.unit.impl.TestSuiteRunner
      StackMap stack:
            aload 5 /* runner */
            invokevirtual io.vertx.ext.unit.impl.TestSuiteRunner.run:()V
        12: .line 152
      StackMap locals:
      StackMap stack:
            aload 4 /* completion */
            areturn
        end local 5 // io.vertx.ext.unit.impl.TestSuiteRunner runner
        end local 4 // io.vertx.ext.unit.impl.TestCompletionImpl completion
        end local 3 // io.vertx.ext.unit.report.Reporter[] reporters
        end local 2 // io.vertx.ext.unit.TestOptions options
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lio/vertx/ext/unit/impl/TestSuiteImpl;
            0   13     1       vertx  Lio/vertx/core/Vertx;
            0   13     2     options  Lio/vertx/ext/unit/TestOptions;
            1   13     3   reporters  [Lio/vertx/ext/unit/report/Reporter;
            2   13     4  completion  Lio/vertx/ext/unit/impl/TestCompletionImpl;
            8   13     5      runner  Lio/vertx/ext/unit/impl/TestSuiteRunner;
    MethodParameters:
         Name  Flags
      vertx    
      options  

  public io.vertx.ext.unit.impl.TestSuiteRunner runner();
    descriptor: ()Lio/vertx/ext/unit/impl/TestSuiteRunner;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=1, args_size=1
        start local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
         0: .line 156
            new io.vertx.ext.unit.impl.TestSuiteRunner
            dup
            aload 0 /* this */
            getfield io.vertx.ext.unit.impl.TestSuiteImpl.name:Ljava/lang/String;
            aload 0 /* this */
            getfield io.vertx.ext.unit.impl.TestSuiteImpl.before:Lio/vertx/core/Handler;
            aload 0 /* this */
            getfield io.vertx.ext.unit.impl.TestSuiteImpl.after:Lio/vertx/core/Handler;
            aload 0 /* this */
            getfield io.vertx.ext.unit.impl.TestSuiteImpl.beforeEach:Lio/vertx/core/Handler;
            aload 0 /* this */
            getfield io.vertx.ext.unit.impl.TestSuiteImpl.afterEach:Lio/vertx/core/Handler;
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield io.vertx.ext.unit.impl.TestSuiteImpl.testCases:Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokespecial io.vertx.ext.unit.impl.TestSuiteRunner.<init>:(Ljava/lang/String;Lio/vertx/core/Handler;Lio/vertx/core/Handler;Lio/vertx/core/Handler;Lio/vertx/core/Handler;Ljava/util/List;)V
            areturn
        end local 0 // io.vertx.ext.unit.impl.TestSuiteImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/unit/impl/TestSuiteImpl;

  private static void lambda$0(java.lang.reflect.Method, java.lang.Object, io.vertx.ext.unit.TestContext);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/Object;Lio/vertx/ext/unit/TestContext;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=4, args_size=3
        start local 2 // io.vertx.ext.unit.TestContext context
         0: .line 54
            aload 0
            aload 1
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* context */
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 55
            goto 7
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
         2: astore 3 /* e */
        start local 3 // java.lang.IllegalAccessException e
         3: .line 56
            aload 3 /* e */
            invokestatic io.vertx.ext.unit.impl.Helper.uncheckedThrow:(Ljava/lang/Throwable;)V
        end local 3 // java.lang.IllegalAccessException e
         4: goto 7
         5: .line 57
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 3 /* e */
        start local 3 // java.lang.reflect.InvocationTargetException e
         6: .line 58
            aload 3 /* e */
            invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
            invokestatic io.vertx.ext.unit.impl.Helper.uncheckedThrow:(Ljava/lang/Throwable;)V
        end local 3 // java.lang.reflect.InvocationTargetException e
         7: .line 60
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.vertx.ext.unit.TestContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     2  context  Lio/vertx/ext/unit/TestContext;
            3    4     3        e  Ljava/lang/IllegalAccessException;
            6    7     3        e  Ljava/lang/reflect/InvocationTargetException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalAccessException
           0     1       5  Class java.lang.reflect.InvocationTargetException

  private static io.vertx.ext.unit.report.Reporter lambda$1(io.vertx.core.Vertx, io.vertx.ext.unit.report.ReportOptions);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/ext/unit/report/ReportOptions;)Lio/vertx/ext/unit/report/Reporter;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // io.vertx.ext.unit.report.ReportOptions reportOptions
         0: .line 140
            aload 0
            aload 1 /* reportOptions */
            invokestatic io.vertx.ext.unit.report.Reporter.reporter:(Lio/vertx/core/Vertx;Lio/vertx/ext/unit/report/ReportOptions;)Lio/vertx/ext/unit/report/Reporter;
            areturn
        end local 1 // io.vertx.ext.unit.report.ReportOptions reportOptions
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     1  reportOptions  Lio/vertx/ext/unit/report/ReportOptions;

  private static io.vertx.ext.unit.report.Reporter[] lambda$2(int);
    descriptor: (I)[Lio/vertx/ext/unit/report/Reporter;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            iload 0
            anewarray io.vertx.ext.unit.report.Reporter
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "TestSuiteImpl.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles