}
@Test
@PrepareForTest(Hudson.class)
public void testHasCyclicCascadingLink() throws Exception {
FreeStyleProject project1 = new FreeStyleProjectMock("p1");
FreeStyleProjectMock project2 = new FreeStyleProjectMock("p2");
FreeStyleProjectMock project3 = new FreeStyleProjectMock("p3");
FreeStyleProjectMock project4 = new FreeStyleProjectMock("p4");
List<Job> jobs = new ArrayList<Job>();
jobs.add(project1);
jobs.add(project2);
jobs.add(project3);
jobs.add(project4);
Hudson hudson = createMock(Hudson.class);
mockStatic(Hudson.class);
expect(hudson.getAllItems(Job.class)).andReturn(jobs).anyTimes();
expect(Hudson.getInstance()).andReturn(hudson).anyTimes();
replay(Hudson.class, hudson);
project2.setCascadingProject(project1);
CascadingUtil.linkCascadingProjectsToChild(project1, "p2");
project3.setCascadingProject(project1);
CascadingUtil.linkCascadingProjectsToChild(project1, "p3");
project4.setCascadingProject(project3);
CascadingUtil.linkCascadingProjectsToChild(project3, "p4");
verifyCyclicCascadingLink(true, project2, project1);
verifyCyclicCascadingLink(true, project3, project1);
verifyCyclicCascadingLink(true, project4, project3);