PageRenderTime 56ms CodeModel.GetById 30ms RepoModel.GetById 0ms app.codeStats 0ms

/src/test/java/com/atlassian/bamboo/plugins/nodejs/tasks/mocha/parser/MochaParserTaskExporterTest.java

https://bitbucket.org/atlassian/bamboo-nodejs-plugin
Java | 171 lines | 121 code | 32 blank | 18 comment | 2 complexity | fb14eff0d813a046c22887a162d53aa5 MD5 | raw file
  1. package com.atlassian.bamboo.plugins.nodejs.tasks.mocha.parser;
  2. import com.atlassian.bamboo.specs.api.validators.common.ValidationProblem;
  3. import com.atlassian.bamboo.specs.builders.task.MochaParserTask;
  4. import com.atlassian.bamboo.specs.builders.task.TestParserTask;
  5. import com.atlassian.bamboo.specs.model.task.MochaParserTaskProperties;
  6. import com.atlassian.bamboo.specs.model.task.TestParserTaskProperties;
  7. import com.atlassian.bamboo.task.TaskConfigConstants;
  8. import com.atlassian.bamboo.task.TaskContainer;
  9. import com.atlassian.bamboo.task.TaskDefinition;
  10. import com.atlassian.bamboo.task.TaskDefinitionImpl;
  11. import com.atlassian.bamboo.task.export.TaskValidationContext;
  12. import com.google.common.collect.ImmutableMap;
  13. import junitparams.JUnitParamsRunner;
  14. import junitparams.Parameters;
  15. import org.junit.Rule;
  16. import org.junit.Test;
  17. import org.junit.runner.RunWith;
  18. import org.mockito.InjectMocks;
  19. import org.mockito.junit.MockitoJUnit;
  20. import org.mockito.junit.MockitoRule;
  21. import java.util.List;
  22. import java.util.Map;
  23. import static com.atlassian.bamboo.specs.api.util.EntityPropertiesBuilders.build;
  24. import static java.util.Arrays.asList;
  25. import static org.hamcrest.CoreMatchers.is;
  26. import static org.hamcrest.CoreMatchers.nullValue;
  27. import static org.hamcrest.MatcherAssert.assertThat;
  28. import static org.hamcrest.Matchers.empty;
  29. import static org.mockito.Mockito.mock;
  30. @RunWith(JUnitParamsRunner.class)
  31. public class MochaParserTaskExporterTest {
  32. @Rule
  33. public final MockitoRule mockitoRule = MockitoJUnit.rule();
  34. @InjectMocks
  35. private MochaParserTaskExporter mochaParserTaskExporter;
  36. @Test
  37. public void testDeprecatedToTaskConfiguration() {
  38. // provided
  39. final String testFilePattern = "mocha-results.json";
  40. final String workingSubdirectory = "plugin";
  41. final boolean pickUpTestResultsCreatedOutsideOfThisBuild = true;
  42. final TaskContainer taskContainer = mock(TaskContainer.class);
  43. final MochaParserTask mochaParserTask = new MochaParserTask()
  44. .testFilePattern(testFilePattern)
  45. .workingSubdirectory(workingSubdirectory)
  46. .pickUpTestResultsCreatedOutsideOfThisBuild(pickUpTestResultsCreatedOutsideOfThisBuild);
  47. final MochaParserTaskProperties mochaParserTaskProperties = build(mochaParserTask);
  48. // when
  49. final Map<String, String> configuration = mochaParserTaskExporter.toTaskConfiguration(taskContainer, mochaParserTaskProperties);
  50. // then
  51. assertThat(configuration.get(MochaParserConfigurator.PATTERN), is(testFilePattern));
  52. assertThat(configuration.get(TaskConfigConstants.CFG_WORKING_SUBDIRECTORY), is(workingSubdirectory));
  53. assertThat(configuration.get(TaskConfigConstants.CFG_TEST_OUTDATED_RESULTS_FILE), is(Boolean.toString(pickUpTestResultsCreatedOutsideOfThisBuild)));
  54. }
  55. @Test
  56. public void testCurrentToTaskConfiguration() {
  57. // provided
  58. final String testFilePattern = "mocha-results.json";
  59. final boolean pickUpTestResultsCreatedOutsideOfThisBuild = true;
  60. final TaskContainer taskContainer = mock(TaskContainer.class);
  61. final TestParserTask testParserTask = TestParserTask.createMochaParserTask()
  62. .resultDirectories(testFilePattern)
  63. .pickUpTestResultsCreatedOutsideOfThisBuild(pickUpTestResultsCreatedOutsideOfThisBuild);
  64. final TestParserTaskProperties testParserTaskProperties = build(testParserTask);
  65. // when
  66. final Map<String, String> configuration = mochaParserTaskExporter.toTaskConfiguration(taskContainer, testParserTaskProperties);
  67. // then
  68. assertThat(configuration.get(MochaParserConfigurator.PATTERN), is(testFilePattern));
  69. assertThat(configuration.get(TaskConfigConstants.CFG_WORKING_SUBDIRECTORY), is(nullValue()));
  70. assertThat(configuration.get(TaskConfigConstants.CFG_TEST_OUTDATED_RESULTS_FILE), is(Boolean.toString(pickUpTestResultsCreatedOutsideOfThisBuild)));
  71. }
  72. @Test
  73. public void testDeprecatedToSpecsEntity() {
  74. // provided
  75. final String testFilePattern = "mocha-results.json";
  76. final String workingSubdirectory = "plugin";
  77. final boolean outdatedResults = true;
  78. final Map<String, String> configuration = ImmutableMap.<String, String>builder()
  79. .put(MochaParserConfigurator.PATTERN, testFilePattern)
  80. .put(TaskConfigConstants.CFG_WORKING_SUBDIRECTORY, workingSubdirectory)
  81. .put(TaskConfigConstants.CFG_TEST_OUTDATED_RESULTS_FILE, Boolean.toString(outdatedResults))
  82. .build();
  83. final TaskDefinition taskDefinition = new TaskDefinitionImpl(100L, "pluginKey", null, true, configuration, false);
  84. // when
  85. final MochaParserTaskProperties taskProperties = (MochaParserTaskProperties) build(mochaParserTaskExporter.toSpecsEntity(taskDefinition));
  86. // then
  87. assertThat(taskProperties.getTestFilePattern(), is(testFilePattern));
  88. assertThat(taskProperties.getWorkingSubdirectory(), is(workingSubdirectory));
  89. assertThat(taskProperties.isPickUpTestResultsCreatedOutsideOfThisBuild(), is(outdatedResults));
  90. }
  91. @Test
  92. @Parameters
  93. public void testCurrentToSpecsEntity(String workingSubdirectory) {
  94. // provided
  95. final String testFilePattern = "**/plugin1/mocha.json, **/plugin2/mocha.json";
  96. final boolean outdatedResults = true;
  97. final ImmutableMap.Builder<String, String> configurationBuilder = ImmutableMap.<String, String>builder()
  98. .put(MochaParserConfigurator.PATTERN, testFilePattern)
  99. .put(TaskConfigConstants.CFG_TEST_OUTDATED_RESULTS_FILE, Boolean.toString(outdatedResults));
  100. if (workingSubdirectory != null) {
  101. configurationBuilder.put(TaskConfigConstants.CFG_WORKING_SUBDIRECTORY, workingSubdirectory);
  102. }
  103. final Map<String, String> configuration = configurationBuilder.build();
  104. final TaskDefinition taskDefinition = new TaskDefinitionImpl(100L, "pluginKey", null, true, configuration, false);
  105. // when
  106. final TestParserTaskProperties taskProperties = (TestParserTaskProperties) build(mochaParserTaskExporter.toSpecsEntity(taskDefinition));
  107. // then
  108. assertThat(taskProperties.getResultDirectories(), is(asList("**/plugin1/mocha.json", "**/plugin2/mocha.json")));
  109. assertThat(taskProperties.getPickUpTestResultsCreatedOutsideOfThisBuild(), is(outdatedResults));
  110. }
  111. private Object[] parametersForTestCurrentToSpecsEntity() {
  112. return new Object[]{
  113. new Object[]{null},
  114. new Object[]{""},
  115. new Object[]{" "}};
  116. }
  117. @Test
  118. public void testDeprecatedValidation() {
  119. // provided
  120. final TaskValidationContext taskValidationContext = mock(TaskValidationContext.class);
  121. final MochaParserTask mochaParserTask = new MochaParserTask();
  122. final MochaParserTaskProperties mochaParserTaskProperties = build(mochaParserTask);
  123. // when
  124. final List<ValidationProblem> validationProblems = mochaParserTaskExporter.validate(taskValidationContext, mochaParserTaskProperties);
  125. // then
  126. assertThat(validationProblems, is(empty()));
  127. }
  128. @Test
  129. public void testCurrentValidation() {
  130. // provided
  131. final TaskValidationContext taskValidationContext = mock(TaskValidationContext.class);
  132. final TestParserTask testParserTask = TestParserTask.createMochaParserTask().defaultResultDirectory();
  133. final TestParserTaskProperties mochaParserTaskProperties = build(testParserTask);
  134. // when
  135. final List<ValidationProblem> validationProblems = mochaParserTaskExporter.validate(taskValidationContext, mochaParserTaskProperties);
  136. // then
  137. assertThat(validationProblems, is(empty()));
  138. }
  139. }