/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.camel.component.git; import java.io.File; import java.io.IOException; import org.apache.camel.test.junit4.CamelTestSupport; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.storage.file.FileRepositoryBuilder; public class GitTestSupport extends CamelTestSupport { public final String gitLocalRepo = "testRepo"; public final String filenameToAdd = "filetest.txt"; public final String filenameBranchToAdd = "filetest1.txt"; public final String commitMessage = "Test commit"; public final String commitMessageAll = "Test commit all"; public final String commitMessageBranch = "Test commit on a branch"; public final String branchTest = "testBranch"; public final String tagTest = "testTag"; public final String remoteUriTest = "https://github.com/oscerd/json-webserver-example.git"; @Override public void setUp() throws Exception { super.setUp(); File localPath = File.createTempFile(gitLocalRepo, ""); localPath.delete(); File path = new File(gitLocalRepo); path.deleteOnExit(); } @Override public void tearDown() throws Exception { super.tearDown(); File path = new File(gitLocalRepo); deleteDirectory(path); } protected Repository getTestRepository() throws IOException, IllegalStateException, GitAPIException { File gitRepo = new File(gitLocalRepo, ".git"); Git.init().setDirectory(new File(gitLocalRepo, "")).setBare(false).call(); // now open the resulting repository with a FileRepositoryBuilder FileRepositoryBuilder builder = new FileRepositoryBuilder(); Repository repo = builder.setGitDir(gitRepo).readEnvironment() // scan // environment // GIT_* // variables .findGitDir() // scan up the file system tree .build(); return repo; } protected Git getGitTestRepository() throws IOException, IllegalStateException, GitAPIException { return new Git(getTestRepository()); } protected void validateGitLogs(Git git, String... messages) throws GitAPIException { Iterable<RevCommit> logs = git.log().call(); int count = 0; for (RevCommit rev : logs) { assertEquals(messages[count], rev.getShortMessage()); count++; } assertEquals(messages.length, count); } }