Java tutorial
/** * This file is part of git-as-svn. It is subject to the license terms * in the LICENSE file found in the top-level directory of this distribution * and at http://www.gnu.org/licenses/gpl-2.0.html. No part of git-as-svn, * including this file, may be copied, modified, propagated, or distributed * except according to the terms contained in the LICENSE file. */ package svnserver; import org.eclipse.jgit.internal.storage.dfs.DfsRepositoryDescription; import org.eclipse.jgit.internal.storage.dfs.InMemoryRepository; import org.eclipse.jgit.lib.Repository; import org.jetbrains.annotations.NotNull; import java.io.*; import java.nio.charset.StandardCharsets; /** * Common test functions. * * @author Artem V. Navrotskiy <bozaro@users.noreply.github.com> */ public class TestHelper { public static void saveFile(@NotNull File file, @NotNull String content) throws IOException { try (OutputStream stream = new FileOutputStream(file)) { stream.write(content.getBytes(StandardCharsets.UTF_8)); } } public static File findGitPath() { final File root = new File(".").getAbsoluteFile(); File path = root; while (true) { final File repo = new File(path, ".git"); if (repo.exists()) { return repo; } path = path.getParentFile(); if (path == null) { throw new IllegalStateException("Repository not found from directiry: " + root.getAbsolutePath()); } } } @SuppressWarnings("ResultOfMethodCallIgnored") public static File createTempDir(@NotNull String prefix) throws IOException { final File tmp = new File(findGitPath().getParentFile(), "build/tmp/"); tmp.mkdirs(); final File dir = File.createTempFile(prefix + "-", "", tmp); dir.delete(); dir.mkdir(); return dir; } public static void deleteDirectory(@NotNull File file) throws IOException { if (file.isDirectory()) { final File[] files = file.listFiles(); if (files != null) { for (File entry : files) { deleteDirectory(entry); } } } if (!file.delete()) { throw new FileNotFoundException("Failed to delete file: " + file); } } public static Repository emptyRepository() throws IOException { final Repository repository = new InMemoryRepository(new DfsRepositoryDescription(null)); repository.create(); return repository; } }