From: Sébastien Lesaint Date: Thu, 29 Aug 2019 13:01:10 +0000 (+0200) Subject: use testFixtures instead of test configuration of ce-task X-Git-Tag: 8.0~173 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=b9f3ad2e06030ff955a33d8e4638fa5d38d01732;p=sonarqube.git use testFixtures instead of test configuration of ce-task --- diff --git a/server/sonar-ce-task-projectanalysis/build.gradle b/server/sonar-ce-task-projectanalysis/build.gradle index e9eca578474..99971d84553 100644 --- a/server/sonar-ce-task-projectanalysis/build.gradle +++ b/server/sonar-ce-task-projectanalysis/build.gradle @@ -57,7 +57,7 @@ dependencies { testCompile 'org.mockito:mockito-core' testCompile 'org.reflections:reflections' testCompile project(':sonar-testing-harness') - testCompile project(path: ":server:sonar-ce-task", configuration: "tests") + testCompile testFixtures(project(':server:sonar-ce-task')) testCompile testFixtures(project(':server:sonar-server-common')) } diff --git a/server/sonar-ce-task/build.gradle b/server/sonar-ce-task/build.gradle index 7509cd5dbb5..6a18c0ce329 100644 --- a/server/sonar-ce-task/build.gradle +++ b/server/sonar-ce-task/build.gradle @@ -24,8 +24,8 @@ dependencies { compile project(':server:sonar-server-common') compile project(':sonar-core') - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') + compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') compileOnly 'com.google.code.findbugs:jsr305' testCompile 'ch.qos.logback:logback-access' @@ -36,22 +36,13 @@ dependencies { testCompile 'junit:junit' testCompile 'org.apache.logging.log4j:log4j-api' testCompile 'org.apache.logging.log4j:log4j-core' - testCompile 'org.assertj:assertj-core' testCompile 'org.assertj:assertj-guava' testCompile 'org.mockito:mockito-core' testCompile 'org.reflections:reflections' testCompile testFixtures(project(':server:sonar-db-dao')) -} -task testJar(type: Jar) { - classifier = 'tests' - from sourceSets.test.output -} - -configurations { - tests -} + testFixturesApi 'org.assertj:assertj-core' + testFixturesApi project(path: ':sonar-plugin-api', configuration: 'shadow') -artifacts { - tests testJar + testFixturesCompileOnly 'com.google.code.findbugs:jsr305' } diff --git a/server/sonar-ce-task/src/test/java/org/sonar/ce/task/ChangeLogLevel.java b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/ChangeLogLevel.java deleted file mode 100644 index e9135a09281..00000000000 --- a/server/sonar-ce-task/src/test/java/org/sonar/ce/task/ChangeLogLevel.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.ce.task; - -import org.sonar.api.utils.log.Logger; -import org.sonar.api.utils.log.LoggerLevel; -import org.sonar.api.utils.log.Loggers; - -public final class ChangeLogLevel implements AutoCloseable { - private final Logger logger; - private final LoggerLevel previous; - - public ChangeLogLevel(Class clazz, LoggerLevel newLevel) { - this.logger = Loggers.get(clazz); - this.previous = logger.getLevel(); - logger.setLevel(newLevel); - } - - @Override - public void close() { - logger.setLevel(previous); - } -} diff --git a/server/sonar-ce-task/src/test/java/org/sonar/ce/task/step/TestComputationStepContext.java b/server/sonar-ce-task/src/test/java/org/sonar/ce/task/step/TestComputationStepContext.java deleted file mode 100644 index 8e984b09d48..00000000000 --- a/server/sonar-ce-task/src/test/java/org/sonar/ce/task/step/TestComputationStepContext.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.ce.task.step; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Nullable; - -import static com.google.common.base.Preconditions.checkArgument; -import static java.util.Objects.requireNonNull; -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Implementation of {@link ComputationStep.Context} for unit tests. - */ -public class TestComputationStepContext implements ComputationStep.Context { - - private final TestStatistics statistics = new TestStatistics(); - - @Override - public TestStatistics getStatistics() { - return statistics; - } - - public static class TestStatistics implements ComputationStep.Statistics { - private final Map map = new HashMap<>(); - - @Override - public ComputationStep.Statistics add(String key, Object value) { - requireNonNull(key, "Statistic has null key"); - requireNonNull(value, () -> String.format("Statistic with key [%s] has null value", key)); - checkArgument(!key.equalsIgnoreCase("time"), "Statistic with key [time] is not accepted"); - checkArgument(!map.containsKey(key), "Statistic with key [%s] is already present", key); - map.put(key, value); - return this; - } - - public Map getAll() { - return map; - } - - public Object get(String key) { - return requireNonNull(map.get(key)); - } - - public TestStatistics assertValue(String key, @Nullable Object expectedValue) { - if (expectedValue == null) { - assertThat(map.get(key)).as(key).isNull(); - } else { - assertThat(map.get(key)).as(key).isEqualTo(expectedValue); - } - return this; - } - } -} diff --git a/server/sonar-ce-task/src/testFixtures/java/org/sonar/ce/task/ChangeLogLevel.java b/server/sonar-ce-task/src/testFixtures/java/org/sonar/ce/task/ChangeLogLevel.java new file mode 100644 index 00000000000..e9135a09281 --- /dev/null +++ b/server/sonar-ce-task/src/testFixtures/java/org/sonar/ce/task/ChangeLogLevel.java @@ -0,0 +1,40 @@ +/* + * SonarQube + * Copyright (C) 2009-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.ce.task; + +import org.sonar.api.utils.log.Logger; +import org.sonar.api.utils.log.LoggerLevel; +import org.sonar.api.utils.log.Loggers; + +public final class ChangeLogLevel implements AutoCloseable { + private final Logger logger; + private final LoggerLevel previous; + + public ChangeLogLevel(Class clazz, LoggerLevel newLevel) { + this.logger = Loggers.get(clazz); + this.previous = logger.getLevel(); + logger.setLevel(newLevel); + } + + @Override + public void close() { + logger.setLevel(previous); + } +} diff --git a/server/sonar-ce-task/src/testFixtures/java/org/sonar/ce/task/step/TestComputationStepContext.java b/server/sonar-ce-task/src/testFixtures/java/org/sonar/ce/task/step/TestComputationStepContext.java new file mode 100644 index 00000000000..8e984b09d48 --- /dev/null +++ b/server/sonar-ce-task/src/testFixtures/java/org/sonar/ce/task/step/TestComputationStepContext.java @@ -0,0 +1,72 @@ +/* + * SonarQube + * Copyright (C) 2009-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.ce.task.step; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Nullable; + +import static com.google.common.base.Preconditions.checkArgument; +import static java.util.Objects.requireNonNull; +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Implementation of {@link ComputationStep.Context} for unit tests. + */ +public class TestComputationStepContext implements ComputationStep.Context { + + private final TestStatistics statistics = new TestStatistics(); + + @Override + public TestStatistics getStatistics() { + return statistics; + } + + public static class TestStatistics implements ComputationStep.Statistics { + private final Map map = new HashMap<>(); + + @Override + public ComputationStep.Statistics add(String key, Object value) { + requireNonNull(key, "Statistic has null key"); + requireNonNull(value, () -> String.format("Statistic with key [%s] has null value", key)); + checkArgument(!key.equalsIgnoreCase("time"), "Statistic with key [time] is not accepted"); + checkArgument(!map.containsKey(key), "Statistic with key [%s] is already present", key); + map.put(key, value); + return this; + } + + public Map getAll() { + return map; + } + + public Object get(String key) { + return requireNonNull(map.get(key)); + } + + public TestStatistics assertValue(String key, @Nullable Object expectedValue) { + if (expectedValue == null) { + assertThat(map.get(key)).as(key).isNull(); + } else { + assertThat(map.get(key)).as(key).isEqualTo(expectedValue); + } + return this; + } + } +}