package com.offbytwo.jenkins.integration; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.util.List; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.jvnet.hudson.test.JenkinsRule; import com.offbytwo.jenkins.JenkinsServer; import com.offbytwo.jenkins.model.BuildCause; import com.offbytwo.jenkins.model.BuildResult; import com.offbytwo.jenkins.model.BuildWithDetails; import com.offbytwo.jenkins.model.JobWithDetails; import hudson.model.Cause; import hudson.model.FreeStyleProject; import hudson.model.ParametersAction; import hudson.model.StringParameterValue; public class BuildWithDetailsIT { private final String JENKINS_WITH_DETAILS_TEST_JOB = "build_with_details"; private JenkinsServer server; @Rule public JenkinsRule jenkinsRule = new JenkinsRule(); @Before public void setUp() throws Exception { jenkinsRule.getInstance().getCrumbIssuer().getCrumb(); jenkinsRule.getInstance().getCrumbIssuer().getCrumbRequestField(); server = new JenkinsServer(jenkinsRule.getURL().toURI()); } @Test public void checkCauses() throws Exception { FreeStyleProject pr = jenkinsRule.getInstance().createProject(FreeStyleProject.class, JENKINS_WITH_DETAILS_TEST_JOB); pr.scheduleBuild2(0, new Cause.UserIdCause(), new ParametersAction(new StringParameterValue("BUILD NUMBER", "FirstBuild"))).get(); JobWithDetails job = server.getJobs().get(JENKINS_WITH_DETAILS_TEST_JOB).details(); BuildWithDetails build = job.getBuilds().get(0).details(); assertEquals(BuildResult.SUCCESS, build.getResult()); List<BuildCause> causes = build.getCauses(); assertNotNull(causes); assertThat(build.getBuiltOn()).isEmpty(); } }