package hudson.matrix; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.List; import org.junit.Rule; import org.junit.Test; import org.jvnet.hudson.test.JenkinsRule; import hudson.model.AbstractProject; import hudson.model.FreeStyleBuild; import hudson.model.FreeStyleProject; import hudson.model.Result; import hudson.tasks.BuildTrigger; import hudson.util.RunList; /** * @author Stefan Wolf */ public class MatrixProjectDependencyTest { @Rule public JenkinsRule j = new JenkinsRule(); /** * Checks if the MatrixProject adds and Triggers downstream Projects via * the DependencyGraph */ @Test public void matrixProjectTriggersDependencies() throws Exception { MatrixProject matrixProject = j.createProject(MatrixProject.class); FreeStyleProject freestyleProject = j.createFreeStyleProject(); matrixProject.getPublishersList().add(new BuildTrigger(freestyleProject.getName(), false)); j.jenkins.rebuildDependencyGraph(); j.buildAndAssertSuccess(matrixProject); j.waitUntilNoActivity(); RunList<FreeStyleBuild> builds = freestyleProject.getBuilds(); assertEquals("There should only be one FreestyleBuild", 1, builds.size()); FreeStyleBuild build = builds.iterator().next(); assertEquals(Result.SUCCESS, build.getResult()); List<AbstractProject> downstream = j.jenkins.getDependencyGraph().getDownstream(matrixProject); assertTrue(downstream.contains(freestyleProject)); } }