diff --git a/src/main/java/org/jenkinsci/plugins/gwt/ParameterActionUtil.java b/src/main/java/org/jenkinsci/plugins/gwt/ParameterActionUtil.java index 7ea9b6f..4584fc1 100644 --- a/src/main/java/org/jenkinsci/plugins/gwt/ParameterActionUtil.java +++ b/src/main/java/org/jenkinsci/plugins/gwt/ParameterActionUtil.java @@ -12,10 +12,13 @@ import hudson.model.StringParameterValue; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.UUID; public class ParameterActionUtil { + private static final String UUID_PARAMETER_NAME = "jenkins-generic-webhook-trigger-plugin_uuid"; + public static ParametersAction createParameterAction( final ParametersDefinitionProperty parametersDefinitionProperty, final Map resolvedVariables, @@ -25,11 +28,9 @@ public static ParametersAction createParameterAction( final boolean triggerOneBuildPerInvocation = !allowSeveralTriggersPerBuild; if (triggerOneBuildPerInvocation) { parameterList.add(new StringParameterValue( - "jenkins-generic-webhook-trigger-plugin_uuid", - UUID.randomUUID().toString(), - null)); + UUID_PARAMETER_NAME, UUID.randomUUID().toString(), null)); } - return new ParametersAction(parameterList); + return new ParametersAction(parameterList, Set.of(UUID_PARAMETER_NAME)); } /** To keep any default values set there. */ diff --git a/src/test/java/org/jenkinsci/plugins/gwt/ParameterActionUtilTest.java b/src/test/java/org/jenkinsci/plugins/gwt/ParameterActionUtilTest.java index 4c60df0..99368c4 100644 --- a/src/test/java/org/jenkinsci/plugins/gwt/ParameterActionUtilTest.java +++ b/src/test/java/org/jenkinsci/plugins/gwt/ParameterActionUtilTest.java @@ -2,14 +2,19 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.jenkinsci.plugins.gwt.ParameterActionUtil.createParameterAction; +import static org.mockito.Mockito.mock; import com.google.common.collect.ImmutableMap; import hudson.model.BooleanParameterDefinition; +import hudson.model.FreeStyleBuild; +import hudson.model.FreeStyleProject; import hudson.model.ParametersAction; import hudson.model.ParametersDefinitionProperty; import hudson.model.StringParameterDefinition; +import java.io.IOException; import java.util.HashMap; import java.util.Map; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; class ParameterActionUtilTest { @@ -113,4 +118,21 @@ void testThatUniqueParameterIsAddedWhenallowSeveralTriggersPerBuildFalse() { assertThat(actualWithFalse.getAllParameters().get(0).getValue()) // .isNotNull(); } + + @Test + void testThatParameterIsAccessible() throws IOException { + final ParametersDefinitionProperty parametersDefinitionProperty = new ParametersDefinitionProperty(); + final ParametersAction actualWithFalse = createParameterAction(parametersDefinitionProperty, Map.of(), false); + FreeStyleBuild mockBuild = new FreeStyleBuild(mock(FreeStyleProject.class)); + actualWithFalse.onAttached(mockBuild); + assertThat(actualWithFalse.getParameters()) // + .hasSize(1); + assertThat(actualWithFalse.getParameters().get(0).getValue()) // + .isNotNull(); + } + + @AfterEach + void tearDown() { + System.clearProperty(ParametersAction.KEEP_UNDEFINED_PARAMETERS_SYSTEM_PROPERTY_NAME); + } }