/src/main/java/com/atlassian/bamboo/plugin/dotnet/tests/nunit/NUnitRunnerConfigurator.java
Java | 120 lines | 99 code | 16 blank | 5 comment | 4 complexity | a8f19d1f889eb3c64d31b2342c14f7f8 MD5 | raw file
Possible License(s): BSD-3-Clause
- package com.atlassian.bamboo.plugin.dotnet.tests.nunit;
-
- import com.atlassian.bamboo.build.Job;
- import com.atlassian.bamboo.collections.ActionParametersMap;
- import com.atlassian.bamboo.plugin.dotnet.support.AbstractDotNetTaskConfigurator;
- import com.atlassian.bamboo.task.BuildTaskRequirementSupport;
- import com.atlassian.bamboo.task.TaskDefinition;
- import com.atlassian.bamboo.task.TaskTestResultsSupport;
- import com.atlassian.bamboo.utils.error.ErrorCollection;
- import com.atlassian.bamboo.v2.build.agent.capability.Requirement;
- import com.google.common.collect.Sets;
- import org.apache.commons.lang3.StringUtils;
- import org.apache.log4j.Logger;
- import org.jetbrains.annotations.NotNull;
- import org.jetbrains.annotations.Nullable;
-
- import java.util.Map;
- import java.util.Set;
-
- /**
- * Defines configuration requirements for {@link NUnitRunnerTaskType} tasks. For full details on the features and
- * switches supported by the nunit console, see @see <a href="http://www.nunit.org/index.php?p=consoleCommandLine&r=2.4">NUnit's documentation</a>.
- */
- public class NUnitRunnerConfigurator extends AbstractDotNetTaskConfigurator implements TaskTestResultsSupport, BuildTaskRequirementSupport
- {
- @SuppressWarnings("UnusedDeclaration")
- private static final Logger log = Logger.getLogger(NUnitRunnerConfigurator.class);
-
- private static final String DEFAULT_TEST_FILE = "TestResult.xml";
-
- private static final Set<String> FIELDS_TO_COPY = Sets.newHashSet(
- NUnitRunnerTaskType.LABEL,
- NUnitRunnerTaskType.TEST_FILES,
- NUnitRunnerTaskType.RESULTS_FILE,
- NUnitRunnerTaskType.TESTS_TO_RUN,
- NUnitRunnerTaskType.INCLUDED_TEST_CATEGORIES,
- NUnitRunnerTaskType.EXCLUDED_TEST_CATEGORIES,
- NUnitRunnerTaskType.COMMAND_OPTIONS,
- NUnitRunnerTaskType.ENVIRONMENT
- );
-
- @Override
- public void validate(@NotNull ActionParametersMap params, @NotNull ErrorCollection errorCollection)
- {
- super.validate(params, errorCollection);
-
- final String label = params.getString(NUnitRunnerTaskType.LABEL);
- if (StringUtils.isEmpty(label))
- {
- errorCollection.addError(NUnitRunnerTaskType.LABEL, textProvider.getText("nunit.label.error"));
- }
-
- final String testFiles = params.getString(NUnitRunnerTaskType.TEST_FILES);
- if (StringUtils.isEmpty(testFiles))
- {
- errorCollection.addError(NUnitRunnerTaskType.TEST_FILES, textProvider.getText("nunit.testFiles.error"));
- }
-
- final String resultsFile = params.getString(NUnitRunnerTaskType.RESULTS_FILE);
- if (StringUtils.isNotBlank(resultsFile))
- {
- if (!resultsFile.endsWith(".xml"))
- {
- errorCollection.addError(NUnitRunnerTaskType.RESULTS_FILE, textProvider.getText("nunit.resultsFile.incorrectExtension"));
- }
- }
- else
- {
- errorCollection.addError(NUnitRunnerTaskType.RESULTS_FILE, textProvider.getText("nunit.resultsFile.missing"));
- }
- }
-
- @Override
- public void populateContextForCreate(@NotNull final Map<String, Object> context)
- {
- // Fill in defaults
- super.populateContextForCreate(context);
- context.put(NUnitRunnerTaskType.RESULTS_FILE, DEFAULT_TEST_FILE);
- }
-
- @Override
- public void populateContextForView(@NotNull Map<String, Object> context, @NotNull TaskDefinition taskDefinition)
- {
- super.populateContextForView(context, taskDefinition);
- taskConfiguratorHelper.populateContextWithConfiguration(context, taskDefinition, FIELDS_TO_COPY);
- }
-
- @Override
- public void populateContextForEdit(@NotNull Map<String, Object> context, @NotNull TaskDefinition taskDefinition)
- {
- super.populateContextForEdit(context, taskDefinition);
- taskConfiguratorHelper.populateContextWithConfiguration(context, taskDefinition, FIELDS_TO_COPY);
- }
-
- @NotNull
- @Override
- public Map<String, String> generateTaskConfigMap(@NotNull ActionParametersMap params, @Nullable TaskDefinition previousTaskDefinition)
- {
- final Map<String, String> map = super.generateTaskConfigMap(params, previousTaskDefinition);
- taskConfiguratorHelper.populateTaskConfigMapWithActionParameters(map, params, FIELDS_TO_COPY);
- return map;
- }
-
- @Override
- public boolean taskProducesTestResults(@NotNull final TaskDefinition taskDefinition)
- {
- return true;
- }
-
- @NotNull
- @Override
- public Set<Requirement> calculateRequirements(@NotNull final TaskDefinition taskDefinition, @NotNull final Job job)
- {
- Set<Requirement> requirements = Sets.newHashSet();
- taskConfiguratorHelper.addSystemRequirementFromConfiguration(requirements, taskDefinition,
- NUnitRunnerTaskType.LABEL, NUnitRunnerTaskType.NUNIT_CAPABILITY_PREFIX);
- return requirements;
- }
-
- }