diff --git a/allure-generator/src/main/java/io/qameta/allure/ga/GaPlugin.java b/allure-generator/src/main/java/io/qameta/allure/ga/GaPlugin.java index eb19384dd..2b8c1b7d9 100644 --- a/allure-generator/src/main/java/io/qameta/allure/ga/GaPlugin.java +++ b/allure-generator/src/main/java/io/qameta/allure/ga/GaPlugin.java @@ -156,15 +156,17 @@ private static Optional getHostSafe(final String url) { return Optional.empty(); } - private static String getExecutorType(final List launchesResults) { + /* package-private */ + static String getExecutorType(final List launchesResults) { return launchesResults.stream() .map(results -> results.getExtra(EXECUTORS_BLOCK_NAME)) .filter(Optional::isPresent) + .findFirst() + .filter(Optional::isPresent) .map(Optional::get) .map(ExecutorInfo::getType) .map(String::trim) .map(String::toLowerCase) - .findFirst() .orElse(LOCAL); } diff --git a/allure-generator/src/test/java/io/qameta/allure/ga/GaPluginTest.java b/allure-generator/src/test/java/io/qameta/allure/ga/GaPluginTest.java new file mode 100644 index 000000000..1ca5024da --- /dev/null +++ b/allure-generator/src/test/java/io/qameta/allure/ga/GaPluginTest.java @@ -0,0 +1,76 @@ +/* + * Copyright 2016-2023 Qameta Software OÜ + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.qameta.allure.ga; + +import io.qameta.allure.DefaultLaunchResults; +import io.qameta.allure.entity.ExecutorInfo; +import io.qameta.allure.executor.ExecutorPlugin; +import org.junit.jupiter.api.Test; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author charlie (Dmitry Baev). + */ +class GaPluginTest { + + @Test + void shouldGetDefaultExecutor() { + final String executorType = GaPlugin.getExecutorType( + List.of( + new DefaultLaunchResults(Set.of(), Map.of(), Map.of()) + ) + ); + + assertThat(executorType) + .isEqualTo("local"); + } + + @Test + void shouldProcessNullExecutor() { + final String executorType = GaPlugin.getExecutorType( + List.of( + new DefaultLaunchResults(Set.of(), Map.of(), Map.of( + ExecutorPlugin.EXECUTORS_BLOCK_NAME, + new ExecutorInfo() + )) + ) + ); + + assertThat(executorType) + .isEqualTo("local"); + } + + @Test + void shouldProcessExecutor() { + final String executorType = GaPlugin.getExecutorType( + List.of( + new DefaultLaunchResults(Set.of(), Map.of(), Map.of( + ExecutorPlugin.EXECUTORS_BLOCK_NAME, + new ExecutorInfo() + .setType("some executor type") + )) + ) + ); + + assertThat(executorType) + .isEqualTo("some executor type"); + } +} diff --git a/gradle/quality-configs/pmd/pmd.xml b/gradle/quality-configs/pmd/pmd.xml index a956b8cb3..05b51d040 100644 --- a/gradle/quality-configs/pmd/pmd.xml +++ b/gradle/quality-configs/pmd/pmd.xml @@ -6,7 +6,7 @@ General Java quality rules. - + @@ -32,6 +32,7 @@ +