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
The newest version!
/**
* 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;
}