diff --git a/src/main/java/se/diabol/jenkins/workflow/WorkflowPipelineView.java b/src/main/java/se/diabol/jenkins/workflow/WorkflowPipelineView.java index ce0e796eb..c54dd26a3 100644 --- a/src/main/java/se/diabol/jenkins/workflow/WorkflowPipelineView.java +++ b/src/main/java/se/diabol/jenkins/workflow/WorkflowPipelineView.java @@ -256,6 +256,14 @@ public boolean contains(TopLevelItem item) { return getItems().contains(item); } + @Override + public ItemGroup getOwnerItemGroup() { + if (getOwner() == null) { + return null; + } + return super.getOwnerItemGroup(); + } + @Override protected void submit(StaplerRequest req) throws IOException, ServletException, Descriptor.FormException { req.bindJSON(this, req.getSubmittedForm()); diff --git a/src/test/java/se/diabol/jenkins/workflow/model/ComponentTest.java b/src/test/java/se/diabol/jenkins/workflow/model/ComponentTest.java index 591eb135e..56c508ae9 100644 --- a/src/test/java/se/diabol/jenkins/workflow/model/ComponentTest.java +++ b/src/test/java/se/diabol/jenkins/workflow/model/ComponentTest.java @@ -22,7 +22,10 @@ import static org.junit.Assert.assertTrue; import org.jenkinsci.plugins.workflow.job.WorkflowJob; +import org.junit.Rule; import org.junit.Test; +import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.WithoutJenkins; import org.kohsuke.stapler.export.Exported; import java.lang.annotation.Annotation; @@ -32,7 +35,11 @@ public class ComponentTest { + @Rule + public JenkinsRule jenkins = new JenkinsRule(); + @Test + @WithoutJenkins public void shouldBeConsideredWorkflowComponent() { assertTrue(new Component(null, null, null).isWorkflowComponent()); } @@ -40,12 +47,13 @@ public void shouldBeConsideredWorkflowComponent() { @Test public void shouldProperlyFormatExpectedWorkflowUrl() { final String expectedName = "JobName"; - WorkflowJob workflowJob = new WorkflowJob(null, expectedName); + WorkflowJob workflowJob = new WorkflowJob(jenkins.jenkins, expectedName); Component component = new Component("Workflow component", workflowJob, null); assertThat(component.getWorkflowUrl(), is("job/" + expectedName + "/")); } @Test + @WithoutJenkins public void shouldExposeWorkflowJob() { final WorkflowJob workflowJob = new WorkflowJob(null, "Name"); Component component = new Component("Component", workflowJob, null); @@ -53,6 +61,7 @@ public void shouldExposeWorkflowJob() { } @Test + @WithoutJenkins public void shouldExposePipelines() { final List pipelines = new ArrayList(); Component component = new Component("Component", null, pipelines); @@ -60,6 +69,7 @@ public void shouldExposePipelines() { } @Test + @WithoutJenkins public void shouldHaveProperToString() { final String componentName = "Component Name"; Component component = new Component(componentName, null, Collections.emptyList()); @@ -69,6 +79,7 @@ public void shouldHaveProperToString() { } @Test + @WithoutJenkins public void shouldHaveExportedProperties() throws NoSuchMethodException { assertTrue(methodHasExportedAnnoation("isWorkflowComponent")); assertTrue(methodHasExportedAnnoation("getWorkflowUrl"));