package org.jenkinsci.plugins.openshift;
import com.openshift.client.IApplication;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
@RunWith(MockitoJUnitRunner.class)
public class GitClientTest {
@Mock
private IApplication app;
private static Repository repository;
@BeforeClass
public static void globalTestSetup() throws IOException {
// prepare a new folder
File localPath = createPath("TestGitRepository");
// create the directory
repository = FileRepositoryBuilder.create(new File(localPath, ".git"));
repository.create();
}
@Before
public void generalMockSetup() throws Exception {
// mock
Mockito.when(app.getName()).thenReturn("testapp");
Mockito.when(app.getGitUrl()).thenReturn(repository.getDirectory().getAbsolutePath());
}
@Test
public void deploy() throws Exception {
// deploy
String deployment = ClassLoader.getSystemResource("deployment/app.war").getFile();
GitClient gitClient = new GitClient(app);
gitClient.deploy(Arrays.asList(deployment), createPath("TestWorkingCopy"), "/deployments");
// verify
TestUtils.gitRepoContainsFile(repository, "deployment/ROOT.war");
}
@Test
public void testJava7Marker() throws Exception {
// deploy
String deployment = ClassLoader.getSystemResource("deployment/app.war").getFile();
GitClient gitClient = new GitClient(app);
gitClient.deploy(Arrays.asList(deployment), createPath("TestWorkingCopy"), "/deployments");
// verify
TestUtils.gitRepoContainsFile(repository, "deployment/ROOT.war");
}
private static File createPath(String path) throws IOException {
File file = File.createTempFile(path, "");
file.delete();
return file;
}
}