com.liferay.jenkins.results.parser.test.clazz.group.RESTBuilderModulesBatchTestClassGroup Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.liferay.jenkins.results.parser
Show all versions of com.liferay.jenkins.results.parser
Liferay Jenkins Results Parser
/**
* SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
* SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
*/
package com.liferay.jenkins.results.parser.test.clazz.group;
import com.liferay.jenkins.results.parser.JenkinsResultsParserUtil;
import com.liferay.jenkins.results.parser.PortalGitWorkingDirectory;
import com.liferay.jenkins.results.parser.PortalTestClassJob;
import com.liferay.jenkins.results.parser.test.clazz.TestClass;
import com.liferay.jenkins.results.parser.test.clazz.TestClassFactory;
import java.io.File;
import java.io.IOException;
import java.nio.file.PathMatcher;
import java.util.Collections;
import java.util.List;
import org.json.JSONObject;
/**
* @author Yi-Chen Tsai
*/
public class RESTBuilderModulesBatchTestClassGroup
extends ModulesBatchTestClassGroup {
@Override
public int getAxisCount() {
if (ignore()) {
return 0;
}
if ((_buildType == BuildType.FULL) || testClasses.isEmpty()) {
return 1;
}
return super.getAxisCount();
}
public BuildType getBuildType() {
return _buildType;
}
@Override
public JSONObject getJSONObject() {
if (jsonObject != null) {
return jsonObject;
}
jsonObject = super.getJSONObject();
jsonObject.put("build_type", _buildType);
return jsonObject;
}
public static enum BuildType {
FULL
}
protected RESTBuilderModulesBatchTestClassGroup(
JSONObject jsonObject, PortalTestClassJob portalTestClassJob) {
super(jsonObject, portalTestClassJob);
_buildType = BuildType.valueOf(
jsonObject.optString("build_type", "FULL"));
}
protected RESTBuilderModulesBatchTestClassGroup(
String batchName, PortalTestClassJob portalTestClassJob) {
super(batchName, portalTestClassJob);
}
@Override
protected void setAxisTestClassGroups() {
int testClassCount = testClasses.size();
int axisCount = getAxisCount();
if ((testClassCount == 0) && (axisCount == 1)) {
axisTestClassGroups.add(
0, TestClassGroupFactory.newAxisTestClassGroup(this));
return;
}
super.setAxisTestClassGroups();
}
@Override
protected void setTestClasses() throws IOException {
PortalGitWorkingDirectory portalGitWorkingDirectory =
getPortalGitWorkingDirectory();
File portalModulesBaseDir = new File(
portalGitWorkingDirectory.getWorkingDirectory(), "modules");
List excludesPathMatchers = getPathMatchers(
getExcludesJobProperties());
List includesPathMatchers = getIncludesPathMatchers();
if (testRelevantChanges &&
!(includeStableTestSuite && isStableTestSuiteBatch())) {
List modifiedFiles =
portalGitWorkingDirectory.getModifiedFilesList();
List modifiedPortalToolsRESTBuilderFiles =
JenkinsResultsParserUtil.getIncludedFiles(
null,
getPathMatchers(
"util/portal-tools-rest-builder/**",
portalModulesBaseDir),
modifiedFiles);
if (!modifiedPortalToolsRESTBuilderFiles.isEmpty()) {
_buildType = BuildType.FULL;
return;
}
moduleDirsList.addAll(
portalGitWorkingDirectory.getModifiedModuleDirsList(
excludesPathMatchers, includesPathMatchers));
}
else {
_buildType = BuildType.FULL;
moduleDirsList.addAll(
portalGitWorkingDirectory.getModuleDirsList(
excludesPathMatchers, includesPathMatchers));
}
for (File moduleDir : moduleDirsList) {
TestClass testClass = TestClassFactory.newTestClass(
this, moduleDir);
if (!testClass.hasTestClassMethods()) {
continue;
}
testClasses.add(testClass);
}
Collections.sort(testClasses);
}
private BuildType _buildType;
}