use of hudson.model.Job in project hudson-2.x by hudson.
the class CascadingUtilTest method testUnlinkProjectFromCascadingParents.
@Test
@PrepareForTest(Hudson.class)
public void testUnlinkProjectFromCascadingParents() throws Exception {
//Prepare data
FreeStyleProject project1 = new FreeStyleProjectMock("project1");
FreeStyleProjectMock child1 = new FreeStyleProjectMock("child1");
String cascadingName = "newCascadingProject";
FreeStyleProjectMock child = new FreeStyleProjectMock(cascadingName);
child1.setCascadingProject(project1);
CascadingUtil.linkCascadingProjectsToChild(child1, cascadingName);
List<Job> jobs = new ArrayList<Job>();
jobs.add(project1);
jobs.add(child1);
jobs.add(child);
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);
//Can't unlink from null project
assertFalse(CascadingUtil.unlinkProjectFromCascadingParents(null, cascadingName));
//Can't unlink null cascading name
assertFalse(CascadingUtil.unlinkProjectFromCascadingParents(project1, null));
//Verify whether cascadingName is present in parent and child
assertTrue(project1.getCascadingChildrenNames().contains(cascadingName));
assertTrue(child1.getCascadingChildrenNames().contains(cascadingName));
boolean result = CascadingUtil.unlinkProjectFromCascadingParents(child1, cascadingName);
assertTrue(result);
//Name should disappear from hierarchy.
assertFalse(project1.getCascadingChildrenNames().contains(cascadingName));
assertFalse(child1.getCascadingChildrenNames().contains(cascadingName));
CascadingUtil.linkCascadingProjectsToChild(project1, cascadingName);
assertTrue(project1.getCascadingChildrenNames().contains(cascadingName));
result = CascadingUtil.unlinkProjectFromCascadingParents(child1, cascadingName);
assertTrue(result);
assertFalse(project1.getCascadingChildrenNames().contains(cascadingName));
}
use of hudson.model.Job in project hudson-2.x by hudson.
the class CascadingUtilTest method testHasCyclicCascadingLink.
@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);
verifyCyclicCascadingLink(true, project4, project1);
verifyCyclicCascadingLink(false, project3, project2);
verifyCyclicCascadingLink(false, project1, project2);
verifyCyclicCascadingLink(false, project2, project3);
verifyCyclicCascadingLink(false, null, project1);
verifyCyclicCascadingLink(false, null, project4);
verify(Hudson.class, hudson);
}
use of hudson.model.Job in project hudson-2.x by hudson.
the class CascadingUtilTest method testBuildExternalProperties.
@Test
@PrepareForTest({ Hudson.class, StaplerRequest.class })
public void testBuildExternalProperties() throws Exception {
Job job = new FreeStyleProjectMock("job");
StaplerRequest req = createMock(StaplerRequest.class);
String javadocArchiverKey = "hudson-tasks-JavadocArchiver";
JSONObject archiver = new JSONObject();
archiver.put("javadoc_dir", "dir");
archiver.put("keep_all", true);
JSONObject json = new JSONObject();
json.put(javadocArchiverKey, archiver);
Hudson hudson = createMock(Hudson.class);
Descriptor<Publisher> javadocDescriptor = new JavadocArchiver.DescriptorImpl();
expect(hudson.getDescriptorOrDie(JavadocArchiver.class)).andReturn(javadocDescriptor);
JavadocArchiver javadocArchiver = new JavadocArchiver("dir", true);
expect(req.bindJSON(JavadocArchiver.class, archiver)).andReturn(javadocArchiver).anyTimes();
List<Descriptor<Publisher>> descriptors = new ArrayList<Descriptor<Publisher>>();
descriptors.add(javadocDescriptor);
mockStatic(Hudson.class);
expect(Hudson.getInstance()).andReturn(hudson).anyTimes();
replay(Hudson.class, hudson, req);
assertNull(CascadingUtil.getExternalProjectProperty(job, javadocArchiverKey).getValue());
CascadingUtil.buildExternalProperties(req, archiver, descriptors, job);
assertNull(CascadingUtil.getExternalProjectProperty(job, javadocArchiverKey).getValue());
CascadingUtil.buildExternalProperties(req, json, descriptors, job);
assertNotNull(CascadingUtil.getExternalProjectProperty(job, javadocArchiverKey).getValue());
verifyAll();
}
use of hudson.model.Job in project hudson-2.x by hudson.
the class CascadingUtilTest method testUnlinkProjectFromCascadingParents2.
@Test
@PrepareForTest(Hudson.class)
public void testUnlinkProjectFromCascadingParents2() throws Exception {
FreeStyleProject project1 = new FreeStyleProjectMock("p1");
FreeStyleProjectMock project2 = new FreeStyleProjectMock("p2");
FreeStyleProjectMock project3 = new FreeStyleProjectMock("p3");
project2.setCascadingProject(project1);
CascadingUtil.linkCascadingProjectsToChild(project1, "p2");
project3.setCascadingProject(project2);
CascadingUtil.linkCascadingProjectsToChild(project2, "p3");
List<Job> jobs = new ArrayList<Job>();
jobs.add(project1);
jobs.add(project2);
jobs.add(project3);
Hudson hudson = createMock(Hudson.class);
mockStatic(Hudson.class);
expect(hudson.getAllItems(Job.class)).andReturn(jobs);
expect(Hudson.getInstance()).andReturn(hudson);
replay(Hudson.class, hudson);
CascadingUtil.unlinkProjectFromCascadingParents(project1, "p2");
//Project3 should disappear from project1's children.
assertTrue(project1.getCascadingChildrenNames().isEmpty());
}
use of hudson.model.Job in project hudson-2.x by hudson.
the class MetaProject method find.
public static MetaProject find(final UUID id) {
checkNotNull(id);
Job job = JobUuid.find(id);
if (job instanceof AbstractProject) {
return new MetaProject((AbstractProject) job);
}
return null;
}
Aggregations