Skip to content

Commit

Permalink
JENKINS-32170 - add Cli Parameter submission for JiraIssueParameterDe…
Browse files Browse the repository at this point in the history
…finition
  • Loading branch information
rantoniuk committed Jan 18, 2016
1 parent 11df13c commit 73bdc42
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 18 deletions.
Expand Up @@ -15,25 +15,24 @@
*/
package hudson.plugins.jira.listissuesparameter;

import static hudson.Util.fixNull;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.Stapler;
import org.kohsuke.stapler.StaplerRequest;

import com.atlassian.jira.rest.client.api.domain.Issue;

import hudson.Extension;
import hudson.cli.CLICommand;
import hudson.model.Job;
import hudson.model.ParameterDefinition;
import hudson.model.ParameterValue;
import hudson.plugins.jira.JiraSession;
import hudson.plugins.jira.JiraSite;
import net.sf.json.JSONObject;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.Stapler;
import org.kohsuke.stapler.StaplerRequest;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import static hudson.Util.fixNull;

public class JiraIssueParameterDefinition extends ParameterDefinition {
private static final long serialVersionUID = 3927562542249244416L;
Expand Down Expand Up @@ -64,6 +63,11 @@ public ParameterValue createValue(StaplerRequest req, JSONObject formData) {
return value;
}

@Override
public ParameterValue createValue(CLICommand command, String value) throws IOException, InterruptedException {
return new JiraIssueParameterValue(getName(), value);
}

public List<JiraIssueParameterDefinition.Result> getIssues() throws IOException {
Job<?, ?> context = Stapler.getCurrentRequest().findAncestorObject(Job.class);

Expand Down
Expand Up @@ -40,8 +40,7 @@ public void buildEnvironment(final Run<?, ?> run, final EnvVars env) {
}

@Override
public VariableResolver<String> createVariableResolver(
final AbstractBuild<?, ?> build) {
public VariableResolver<String> createVariableResolver(final AbstractBuild<?, ?> build) {
return new VariableResolver<String>() {
public String resolve(final String name) {
return JiraIssueParameterValue.this.name.equals(name) ? getValue().toString() : null;
Expand Down
Expand Up @@ -3,6 +3,7 @@
import hudson.EnvVars;
import hudson.model.AbstractBuild;
import hudson.model.ParameterValue;
import hudson.model.Run;
import hudson.util.VariableResolver;
import org.kohsuke.stapler.DataBoundConstructor;

Expand All @@ -11,7 +12,7 @@ public class JiraVersionParameterValue extends ParameterValue {
/**
*
*/
private static final long serialVersionUID = 7715888375360839483L;
private static final long serialVersionUID = 7715888375360839484L;

private String version;

Expand All @@ -23,13 +24,12 @@ public JiraVersionParameterValue(final String name, final String version) {
}

@Override
public void buildEnvVars(final AbstractBuild<?, ?> build, final EnvVars env) {
env.put(getName(), getVersion());
public void buildEnvironment(final Run<?, ?> run, final EnvVars env) {
env.put(getName(), getValue().toString());
}

@Override
public VariableResolver<String> createVariableResolver(
final AbstractBuild<?, ?> build) {
public VariableResolver<String> createVariableResolver(final AbstractBuild<?, ?> build) {
return new VariableResolver<String>() {
public String resolve(final String name) {
return JiraVersionParameterValue.this.name.equals(name) ? getVersion() : null;
Expand Down
@@ -0,0 +1,54 @@
package hudson.plugins.jira.listissuesparameter;

import hudson.cli.BuildCommand;
import hudson.cli.CLICommandInvoker;
import hudson.model.FreeStyleProject;
import hudson.model.ParametersDefinitionProperty;
import hudson.plugins.jira.versionparameter.JiraVersionParameterDefinition;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.jvnet.hudson.test.JenkinsRule;

import static org.junit.Assert.*;
import static hudson.cli.CLICommandInvoker.Matcher.*;


public class CliParameterTests {

@Rule
public JenkinsRule jenkins = new JenkinsRule();

@Rule
public TemporaryFolder temporaryFolderRule = new TemporaryFolder();

@Test
public void testJiraIssueParameterViaCli() throws Exception {
FreeStyleProject project = jenkins.createFreeStyleProject();

project.addProperty(
new ParametersDefinitionProperty(
new JiraIssueParameterDefinition("jiraissue","description","filter")
)
);

CLICommandInvoker invoker = new CLICommandInvoker(jenkins, new BuildCommand());
CLICommandInvoker.Result result = invoker.invokeWithArgs(project.getName(),"-p","jiraissue=TEST-1");
assertThat(result, succeeded());
}

@Test
public void testJiraVersionParameterViaCli() throws Exception {
FreeStyleProject project = jenkins.createFreeStyleProject();

project.addProperty(
new ParametersDefinitionProperty(
new JiraVersionParameterDefinition("jiraversion","description","PROJ","RELEASE","true","false")
)
);

CLICommandInvoker invoker = new CLICommandInvoker(jenkins, new BuildCommand());
CLICommandInvoker.Result result = invoker.invokeWithArgs(project.getName(),"-p","jiraversion=1.0");
assertThat(result, succeeded());
}
}

0 comments on commit 73bdc42

Please sign in to comment.