package br.gov.servicos.editor.fixtures; import br.gov.servicos.editor.git.RepositorioConfig; import lombok.Getter; import lombok.SneakyThrows; import lombok.experimental.FieldDefaults; import org.apache.commons.io.FileUtils; import org.eclipse.jgit.api.Git; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import java.nio.file.Files; import java.nio.file.Path; import static lombok.AccessLevel.PRIVATE; @Configuration @FieldDefaults(level = PRIVATE, makeFinal = true) @Profile("teste") public class RepositorioConfigParaTeste { Path origin; @Getter Path localCloneRepositorio; @SneakyThrows public RepositorioConfigParaTeste() { origin = Files.createTempDirectory("editor-origin"); localCloneRepositorio = Files.createTempDirectory("editor-clone"); reset(); } @SneakyThrows public void reset() { FileUtils.deleteDirectory(origin.toFile()); FileUtils.deleteDirectory(localCloneRepositorio.toFile()); Files.createDirectories(origin); Files.createDirectories(localCloneRepositorio); Git.init().setBare(true).setDirectory(origin.toFile()).call(); origin.toFile().deleteOnExit(); localCloneRepositorio.toFile().deleteOnExit(); } @Bean public RepositorioConfig testConfig() { return new RepositorioConfig(origin.toString(), "", true, true, localCloneRepositorio.toFile()); } }