diff --git a/pom.xml b/pom.xml index 61a1a7f..538ab55 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ io.jenkins.tools.bom bom-${jenkins.baseline}.x - 3814.v9563d972079a_ + 3850.vb_c5319efa_e29 pom import @@ -92,18 +92,6 @@ throttle-concurrents test - - org.junit.jupiter - junit-jupiter - 5.10.0 - test - - - org.mockito - mockito-inline - 4.0.0 - test - @@ -120,4 +108,4 @@ - + \ No newline at end of file diff --git a/src/main/java/org/jvnet/jenkins/plugins/nodelabelparameter/parameterizedtrigger/NodeLabelBuildParameter.java b/src/main/java/org/jvnet/jenkins/plugins/nodelabelparameter/parameterizedtrigger/NodeLabelBuildParameter.java index a66f924..787957e 100644 --- a/src/main/java/org/jvnet/jenkins/plugins/nodelabelparameter/parameterizedtrigger/NodeLabelBuildParameter.java +++ b/src/main/java/org/jvnet/jenkins/plugins/nodelabelparameter/parameterizedtrigger/NodeLabelBuildParameter.java @@ -38,12 +38,12 @@ public Action getAction(AbstractBuild build, TaskListener listener) throws labelExpanded = TokenMacro.expandAll(build, listener, labelExpanded); } catch (MacroEvaluationException e) { labelExpanded = nodeLabel; - listener.getLogger().println("Token expansion failed."); e.printStackTrace(listener.getLogger()); } LabelParameterValue parameterValue = new LabelParameterValue(name, labelExpanded, false, new AllNodeEligibility()); listener.getLogger().println("define: " + parameterValue); + return new ParametersAction(parameterValue); } @@ -54,4 +54,4 @@ public String getDisplayName() { return "NodeLabel parameter"; } } -} +} \ No newline at end of file diff --git a/src/test/java/org/jvnet/jenkins/plugins/nodelabelparameter/parameterizedtrigger/NodeLabelBuildParameterTest.java b/src/test/java/org/jvnet/jenkins/plugins/nodelabelparameter/parameterizedtrigger/NodeLabelBuildParameterTest.java index 00d303f..da1af81 100644 --- a/src/test/java/org/jvnet/jenkins/plugins/nodelabelparameter/parameterizedtrigger/NodeLabelBuildParameterTest.java +++ b/src/test/java/org/jvnet/jenkins/plugins/nodelabelparameter/parameterizedtrigger/NodeLabelBuildParameterTest.java @@ -23,9 +23,6 @@ */ package org.jvnet.jenkins.plugins.nodelabelparameter.parameterizedtrigger; -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.*; - import hudson.model.AbstractBuild; import hudson.model.Action; import hudson.model.AutoCompletionCandidates; @@ -45,11 +42,11 @@ import hudson.tasks.BuildStepMonitor; import hudson.tasks.BuildWrapper; import hudson.util.FormValidation; +import hudson.util.StreamTaskListener; +import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.ArrayList; import java.util.List; -import org.jenkinsci.plugins.tokenmacro.MacroEvaluationException; -import org.jenkinsci.plugins.tokenmacro.TokenMacro; import org.junit.Assert; import org.junit.Rule; import org.junit.Test; @@ -62,7 +59,6 @@ import org.jvnet.jenkins.plugins.nodelabelparameter.NodeParameterValue; import org.jvnet.jenkins.plugins.nodelabelparameter.node.AllNodeEligibility; import org.jvnet.jenkins.plugins.nodelabelparameter.wrapper.TriggerNextBuildWrapper; -import org.mockito.Mockito; public class NodeLabelBuildParameterTest { @@ -279,26 +275,24 @@ public void testValidateBuildNoExceptionIfConcurrentBuildsAllowed() throws Excep @Test public void testMacroEvaluationExceptionHandling() throws Exception { - String name = "TestName"; - String nodeLabel = "DefaultLabel"; + String name = "Dummy"; + String nodeLabel = "${TEST, arg = \"a \n b \r\n c\"}\n"; + // nodeLabel string causes the MacroEvaluationException to occur NodeLabelBuildParameter nodeLabelBuildParameter = new NodeLabelBuildParameter(name, nodeLabel); - // Mock the AbstractBuild, TaskListener and its logger - AbstractBuild build = mock(AbstractBuild.class); - TaskListener listener = mock(TaskListener.class); - PrintStream logger = mock(PrintStream.class); - when(listener.getLogger()).thenReturn(logger); - - // Mock TokenMacro to throw MacroEvaluationException - Mockito.mockStatic(TokenMacro.class); - when(TokenMacro.expandAll(build, listener, nodeLabel)) - .thenThrow(new MacroEvaluationException("Token expansion failed.")); - - Action result = nodeLabelBuildParameter.getAction(build, listener); - - // Verify - assertNotNull(result, "The result action should not be null."); - verify(listener.getLogger(), times(1)).println(contains("define:")); - verify(logger, atLeastOnce()).println(contains("Token expansion failed.")); + + ByteArrayOutputStream logStream = new ByteArrayOutputStream(); + TaskListener listener = new StreamTaskListener(new PrintStream(logStream)); + + FreeStyleProject project = j.createFreeStyleProject("projectB"); + FreeStyleBuild build = new FreeStyleBuild(project); + AbstractBuild abstractBuild = build; + + Action result = nodeLabelBuildParameter.getAction(abstractBuild, listener); + + Assert.assertNotNull("The result action should not be null.", result); + String loggedOutput = logStream.toString(); + Assert.assertTrue( + loggedOutput, loggedOutput.contains("org.jenkinsci.plugins.tokenmacro.MacroEvaluationException")); } @Test