package org.jenkinsci.plugins.ghprb.manager.impl;
import static org.fest.assertions.Assertions.assertThat;
import static org.mockito.BDDMockito.given;
import java.util.HashMap;
import java.util.Map;
import hudson.matrix.MatrixBuild;
import hudson.matrix.MatrixProject;
import org.jenkinsci.plugins.ghprb.GhprbITBaseTestCase;
import org.jenkinsci.plugins.ghprb.GhprbTestUtil;
import org.jenkinsci.plugins.ghprb.manager.GhprbBuildManager;
import org.jenkinsci.plugins.ghprb.manager.factory.GhprbBuildManagerFactoryUtil;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.jvnet.hudson.test.JenkinsRule;
import org.mockito.runners.MockitoJUnitRunner;
/**
* @author mdelapenya (Manuel de la Peña)
*/
@RunWith(MockitoJUnitRunner.class)
public class GhprbDefaultBuildManagerTest extends GhprbITBaseTestCase {
@Rule
public JenkinsRule jenkinsRule = new JenkinsRule();
private MatrixProject project;
@Before
public void setUp() throws Exception {
// GhprbTestUtil.mockGithubUserPage();
project = jenkinsRule.getInstance().createProject(MatrixProject.class, "MTXPRJ");
Map<String, Object> config = new HashMap<String, Object>(1);
config.put("publishedURL", "defaultPublishedURL");
super.beforeTest(config, null, project);
}
@Test
public void shouldCalculateUrlFromDefault() throws Exception {
// GIVEN
givenThatGhprbHasBeenTriggeredForAMatrixProject();
// THEN
assertThat(project.getBuilds().toArray().length).isEqualTo(1);
MatrixBuild matrixBuild = project.getBuilds().getFirstBuild();
GhprbBuildManager buildManager = GhprbBuildManagerFactoryUtil.getBuildManager(matrixBuild);
assertThat(buildManager).isInstanceOf(GhprbDefaultBuildManager.class);
assertThat(buildManager.calculateBuildUrl("defaultPublishedURL")).isEqualTo("defaultPublishedURL/" + matrixBuild.getUrl());
}
private void givenThatGhprbHasBeenTriggeredForAMatrixProject() throws Exception {
given(commitPointer.getSha()).willReturn("sha");
given(ghPullRequest.getNumber()).willReturn(1);
given(ghRepository.getPullRequest(1)).willReturn(ghPullRequest);
GhprbTestUtil.triggerRunAndWait(10, trigger, project);
}
}