Java tutorial
/* * z2env.org - (c) ZFabrik Software KG * * Licensed under Apache 2. * * www.z2-environment.net */ package org.z2env.gitcr.test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.z2env.impl.helper.GitTools.isOriginReachable; import static org.z2env.impl.helper.GitTools.isValidRepository; import java.io.File; import java.net.URL; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.transport.URIish; import org.junit.Test; import org.z2env.impl.helper.GitTools.ValidationResult; import org.z2env.util.fs.FileUtils; public class TestGitTools { @Test public void testReachable() throws Exception { assertTrue(isOriginReachable(new URIish("file:/"))); assertTrue(isOriginReachable(new URIish("http://www.z2-environment.net/"))); assertFalse(isOriginReachable(new URIish("http://www.z2-environment.nett/"))); } @Test public void validIsValidRepository() throws Exception { assertValid(isValidRepository(new URIish("http://git.z2-environment.net/z2-core"))); assertValid(isValidRepository(new URIish(findGitRepoDir()))); assertValid(isValidRepository(new URIish("ssh://zfabrik@z2-environment.net/~/git/z2-core"))); assertValid(isValidRepository(new URIish("ssh://zfabrik@z2-environment.net/~/git-svn/z2-base.base"))); } @Test public void invalidIsValidRepository() throws Exception { assertInvalid(isValidRepository(new URIish("http://git.z2-environment.net/z2-does-not-exist"))); assertInvalid(isValidRepository(new URIish("ssh://zfabrik@z2-environment.net/~/git/does-not-exists"))); assertInvalid(isValidRepository(new URIish("ssh://zfabrik@z2-environment.nett/~/git/does-not-exists"))); assertInvalid(isValidRepository(new URIish("file:/does/not/exist"))); assertInvalid(isValidRepository(new URIish("/does/not/exist"))); } @Test public void cannotTellIsValidRepository() throws Exception { assertEquals(ValidationResult.cannotTell, isValidRepository(new URIish("git://git.z2-environment.net/z2-does-not-exist"))); } @Test public void testEmptyBareRepo() throws Exception { File tmpFile = null; try { tmpFile = File.createTempFile("TestGitTools_", ".tmp"); tmpFile.delete(); Git.init().setBare(true).setDirectory(tmpFile).call(); assertValid(isValidRepository(new URIish(tmpFile.getCanonicalPath()))); } finally { if (tmpFile != null) { FileUtils.delete(tmpFile); } } } @Test public void testSshClone() throws Exception { File tmpFile = null; try { tmpFile = File.createTempFile("TestGitTools_", ".tmp"); tmpFile.delete(); Git.cloneRepository().setURI("ssh://zfabrik@z2-environment.net/~/git/z2-core").setDirectory(tmpFile) .call(); assertValid(isValidRepository(new URIish(tmpFile.getCanonicalPath()))); } finally { if (tmpFile != null) { FileUtils.delete(tmpFile); } } } private void assertValid(ValidationResult result) { assertEquals(ValidationResult.valid, result); } private void assertInvalid(ValidationResult result) { assertEquals(ValidationResult.invalid, result); } private String findGitRepoDir() throws Exception { File f = new File(".").getCanonicalFile(); while (f != null && !new File(f, ".git").exists()) { f = f.getParentFile(); } URL result = (f != null) ? new File(f, ".git").toURI().toURL() : null; return result.toString(); } }