public class org.graalvm.component.installer.persist.DirectoryChannelFactoryTest extends org.graalvm.component.installer.CommandTestBase implements org.graalvm.component.installer.CommandInput$CatalogFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.component.installer.persist.DirectoryChannelFactoryTest
  super_class: org.graalvm.component.installer.CommandTestBase
{
  org.graalvm.component.installer.remote.RemoteCatalogDownloader downloader;
    descriptor: Lorg/graalvm/component/installer/remote/RemoteCatalogDownloader;
    flags: (0x0000) 

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.persist.DirectoryChannelFactoryTest this
         0: .line 50
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.CommandTestBase.<init>:()V
            return
        end local 0 // org.graalvm.component.installer.persist.DirectoryChannelFactoryTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/component/installer/persist/DirectoryChannelFactoryTest;

  public void testEmptyDownloaderProducesNothing();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.component.installer.persist.DirectoryChannelFactoryTest this
         0: .line 55
            aload 0 /* this */
            new org.graalvm.component.installer.remote.RemoteCatalogDownloader
            dup
            aload 0 /* this */
            aload 0 /* this */
            aconst_null
            invokespecial org.graalvm.component.installer.remote.RemoteCatalogDownloader.<init>:(Lorg/graalvm/component/installer/CommandInput;Lorg/graalvm/component/installer/Feedback;Ljava/net/URL;)V
            putfield org.graalvm.component.installer.persist.DirectoryChannelFactoryTest.downloader:Lorg/graalvm/component/installer/remote/RemoteCatalogDownloader;
         1: .line 57
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.persist.DirectoryChannelFactoryTest.getRegistry:()Lorg/graalvm/component/installer/ComponentCatalog;
            ldc "org.graalvm.ruby"
            invokeinterface org.graalvm.component.installer.ComponentCatalog.findComponent:(Ljava/lang/String;)Lorg/graalvm/component/installer/model/ComponentInfo;
            astore 1 /* info */
        start local 1 // org.graalvm.component.installer.model.ComponentInfo info
         2: .line 58
            aload 1 /* info */
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
         3: .line 59
            return
        end local 1 // org.graalvm.component.installer.model.ComponentInfo info
        end local 0 // org.graalvm.component.installer.persist.DirectoryChannelFactoryTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/component/installer/persist/DirectoryChannelFactoryTest;
            2    4     1  info  Lorg/graalvm/component/installer/model/ComponentInfo;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testLoadFromEmptyDirectory();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // org.graalvm.component.installer.persist.DirectoryChannelFactoryTest this
         0: .line 63
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryChannelFactoryTest.testFolder:Lorg/junit/rules/TemporaryFolder;
            invokevirtual org.junit.rules.TemporaryFolder.newFolder:()Ljava/io/File;
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            astore 1 /* nf */
        start local 1 // java.nio.file.Path nf
         1: .line 64
            aload 0 /* this */
            ldc "data/truffleruby3.jar"
            invokevirtual org.graalvm.component.installer.persist.DirectoryChannelFactoryTest.dataFile:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 2 /* ruby033 */
        start local 2 // java.nio.file.Path ruby033
         2: .line 65
            aload 2 /* ruby033 */
            aload 1 /* nf */
            aload 2 /* ruby033 */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.CopyOption
            invokestatic java.nio.file.Files.copy:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
            pop
         3: .line 67
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryChannelFactoryTest.storage:Lorg/graalvm/component/installer/commands/MockStorage;
            getfield org.graalvm.component.installer.commands.MockStorage.graalInfo:Ljava/util/Map;
            ldc "graalvm_version"
            ldc "0.33-dev"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 69
            aload 0 /* this */
            new org.graalvm.component.installer.remote.RemoteCatalogDownloader
            dup
            aload 0 /* this */
            aload 0 /* this */
            aconst_null
            invokespecial org.graalvm.component.installer.remote.RemoteCatalogDownloader.<init>:(Lorg/graalvm/component/installer/CommandInput;Lorg/graalvm/component/installer/Feedback;Ljava/net/URL;)V
            putfield org.graalvm.component.installer.persist.DirectoryChannelFactoryTest.downloader:Lorg/graalvm/component/installer/remote/RemoteCatalogDownloader;
         5: .line 70
            new org.graalvm.component.installer.SoftwareChannelSource
            dup
            aload 1 /* nf */
            invokeinterface java.nio.file.Path.toUri:()Ljava/net/URI;
            invokevirtual java.net.URI.toString:()Ljava/lang/String;
            invokespecial org.graalvm.component.installer.SoftwareChannelSource.<init>:(Ljava/lang/String;)V
            astore 3 /* scs */
        start local 3 // org.graalvm.component.installer.SoftwareChannelSource scs
         6: .line 71
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryChannelFactoryTest.downloader:Lorg/graalvm/component/installer/remote/RemoteCatalogDownloader;
            aload 3 /* scs */
            invokevirtual org.graalvm.component.installer.remote.RemoteCatalogDownloader.addLocalChannelSource:(Lorg/graalvm/component/installer/SoftwareChannelSource;)V
         7: .line 73
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.persist.DirectoryChannelFactoryTest.getRegistry:()Lorg/graalvm/component/installer/ComponentCatalog;
            ldc "ruby"
            invokeinterface org.graalvm.component.installer.ComponentCatalog.findComponent:(Ljava/lang/String;)Lorg/graalvm/component/installer/model/ComponentInfo;
            astore 4 /* info */
        start local 4 // org.graalvm.component.installer.model.ComponentInfo info
         8: .line 74
            aload 4 /* info */
            invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
         9: .line 75
            return
        end local 4 // org.graalvm.component.installer.model.ComponentInfo info
        end local 3 // org.graalvm.component.installer.SoftwareChannelSource scs
        end local 2 // java.nio.file.Path ruby033
        end local 1 // java.nio.file.Path nf
        end local 0 // org.graalvm.component.installer.persist.DirectoryChannelFactoryTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/graalvm/component/installer/persist/DirectoryChannelFactoryTest;
            1   10     1       nf  Ljava/nio/file/Path;
            2   10     2  ruby033  Ljava/nio/file/Path;
            6   10     3      scs  Lorg/graalvm/component/installer/SoftwareChannelSource;
            8   10     4     info  Lorg/graalvm/component/installer/model/ComponentInfo;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public org.graalvm.component.installer.ComponentCatalog createComponentCatalog(org.graalvm.component.installer.CommandInput);
    descriptor: (Lorg/graalvm/component/installer/CommandInput;)Lorg/graalvm/component/installer/ComponentCatalog;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.graalvm.component.installer.persist.DirectoryChannelFactoryTest this
        start local 1 // org.graalvm.component.installer.CommandInput input
         0: .line 79
            new org.graalvm.component.installer.model.CatalogContents
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.component.installer.persist.DirectoryChannelFactoryTest.downloader:Lorg/graalvm/component/installer/remote/RemoteCatalogDownloader;
            invokevirtual org.graalvm.component.installer.remote.RemoteCatalogDownloader.getStorage:()Lorg/graalvm/component/installer/model/ComponentStorage;
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.persist.DirectoryChannelFactoryTest.getLocalRegistry:()Lorg/graalvm/component/installer/model/ComponentRegistry;
            invokespecial org.graalvm.component.installer.model.CatalogContents.<init>:(Lorg/graalvm/component/installer/Feedback;Lorg/graalvm/component/installer/model/ComponentStorage;Lorg/graalvm/component/installer/model/ComponentRegistry;)V
            areturn
        end local 1 // org.graalvm.component.installer.CommandInput input
        end local 0 // org.graalvm.component.installer.persist.DirectoryChannelFactoryTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/component/installer/persist/DirectoryChannelFactoryTest;
            0    1     1  input  Lorg/graalvm/component/installer/CommandInput;
    MethodParameters:
       Name  Flags
      input  

  public org.graalvm.component.installer.CommandInput$CatalogFactory getCatalogFactory();
    descriptor: ()Lorg/graalvm/component/installer/CommandInput$CatalogFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.persist.DirectoryChannelFactoryTest this
         0: .line 84
            aload 0 /* this */
            areturn
        end local 0 // org.graalvm.component.installer.persist.DirectoryChannelFactoryTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/component/installer/persist/DirectoryChannelFactoryTest;

  public java.util.List<org.graalvm.component.installer.model.GraalEdition> listEditions(org.graalvm.component.installer.model.ComponentRegistry);
    descriptor: (Lorg/graalvm/component/installer/model/ComponentRegistry;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.graalvm.component.installer.persist.DirectoryChannelFactoryTest this
        start local 1 // org.graalvm.component.installer.model.ComponentRegistry targetGraalVM
         0: .line 89
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
        end local 1 // org.graalvm.component.installer.model.ComponentRegistry targetGraalVM
        end local 0 // org.graalvm.component.installer.persist.DirectoryChannelFactoryTest this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/graalvm/component/installer/persist/DirectoryChannelFactoryTest;
            0    1     1  targetGraalVM  Lorg/graalvm/component/installer/model/ComponentRegistry;
    Signature: (Lorg/graalvm/component/installer/model/ComponentRegistry;)Ljava/util/List<Lorg/graalvm/component/installer/model/GraalEdition;>;
    MethodParameters:
               Name  Flags
      targetGraalVM  
}
SourceFile: "DirectoryChannelFactoryTest.java"
InnerClasses:
  public abstract CatalogFactory = org.graalvm.component.installer.CommandInput$CatalogFactory of org.graalvm.component.installer.CommandInput