package hudson.plugins.jira; import hudson.EnvVars; import hudson.model.AbstractBuild; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; import org.junit.Test; import org.mockito.ArgumentCaptor; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; public class JiraEnvironmentContributingActionTest { private static final String JIRA_URL = "http://example.com"; private static final String JIRA_URL_PROPERTY_NAME = "JIRA_URL"; private static final String ISSUES_PROPERTY_NAME = "JIRA_ISSUES"; private static final String ISSUES_LIST = "ISS-1,ISS-2"; @Test public void buildEnvVarsEnvIsNull() { JiraEnvironmentContributingAction action = new JiraEnvironmentContributingAction(ISSUES_LIST, JIRA_URL); AbstractBuild build = mock(AbstractBuild.class); action.buildEnvVars(build, null); // just expecting no exception } @Test public void buildEnvVarsAddVariables() { JiraEnvironmentContributingAction action = new JiraEnvironmentContributingAction(ISSUES_LIST, JIRA_URL); AbstractBuild build = mock(AbstractBuild.class); EnvVars envVars = mock(EnvVars.class); action.buildEnvVars(build, envVars); ArgumentCaptor<String> keys = ArgumentCaptor.forClass(String.class); ArgumentCaptor<String> values = ArgumentCaptor.forClass(String.class); verify(envVars, times(2)).put(keys.capture(), values.capture()); assertThat(keys.getAllValues().get(0), is(ISSUES_PROPERTY_NAME)); assertThat(values.getAllValues().get(0), is(ISSUES_LIST)); assertThat(keys.getAllValues().get(1), is(JIRA_URL_PROPERTY_NAME)); assertThat(values.getAllValues().get(1), is(JIRA_URL)); } }