@@ -0,0 +1,1888 @@
+/*%0A * Bach - Java Shell Builder%0A * Copyright (C) 2019 Christian Stein%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *     https://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0A%0Apackage de.sormuras.bach;%0A%0Aimport org.junit.jupiter.api.Test;%0Aimport org.junit.jupiter.api.io.TempDir;%0A%0Aimport java.net.URI;%0Aimport java.nio.file.Path;%0Aimport java.util.List;%0A%0Aimport static org.junit.jupiter.api.Assertions.assertDoesNotThrow;%0Aimport static org.junit.jupiter.api.Assertions.assertEquals;%0Aimport static org.junit.jupiter.api.Assertions.assertLinesMatch;%0A%0Aclass MainrunnerTests %7B%0A%0A  /** https://github.com/sormuras/mainrunner/releases */%0A  private static final String VERSION = %222.0.5%22;%0A%0A  @Test%0A  void buildMainrunner(@TempDir Path temp) throws Exception %7B%0A    var uri = URI.create(%22https://github.com/sormuras/mainrunner/archive/%22 + VERSION + %22.zip%22);%0A    var zip = new Downloader(new TestRun(temp, temp), temp).download(uri);%0A    var extract =%0A        new ProcessBuilder(%22jar%22, %22--extract%22, %22--file%22, zip.getFileName().toString())%0A            .directory(temp.toFile())%0A            .inheritIO()%0A            .start();%0A    assertEquals(0, extract.waitFor(), extract.toString());%0A%0A    var test = new TestRun(temp, temp);%0A    var bach = new Bach(test);%0A    assertDoesNotThrow(bach::build, test::toString); // not test.toString()%0A%0A    assertLinesMatch(List.of(), test.errLines());%0A    assertLinesMatch(List.of(%22TODO%22), test.outLines());%0A  %7D%0A%7D%0A

Load and extract "Mainrunner" project sample