package hudson.matrix;
import java.util.List;
import org.jvnet.hudson.test.HudsonTestCase;
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 extends HudsonTestCase {
/**
* Checks if the MatrixProject adds and Triggers downstream Projects via
* the DependencyGraph
*/
public void testMatrixProjectTriggersDependencies() throws Exception {
MatrixProject matrixProject = createMatrixProject();
FreeStyleProject freestyleProject = createFreeStyleProject();
matrixProject.getPublishersList().add(new BuildTrigger(freestyleProject.getName(), false));
hudson.rebuildDependencyGraph();
buildAndAssertSuccess(matrixProject);
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 = hudson.getDependencyGraph().getDownstream(matrixProject);
assertTrue(downstream.contains(freestyleProject));
}
}