use of io.jenkins.blueocean.rest.model.BlueTestResult in project blueocean-plugin by jenkinsci.
the class BlueTestResultContainerImpl method filterByStatus.
@VisibleForTesting
public static Iterator<BlueTestResult> filterByStatus(Iterable<BlueTestResult> results, String status) {
String[] statusAtoms = StringUtils.split(status, ',');
Predicate<BlueTestResult> predicate = Predicates.alwaysFalse();
if (statusAtoms == null || statusAtoms.length == 0) {
throw new BadRequestException("status not provided");
}
for (String statusString : statusAtoms) {
Status queryStatus;
try {
queryStatus = Status.valueOf(statusString.toUpperCase());
} catch (IllegalArgumentException e) {
throw new BadRequestException("bad status " + status, e);
}
predicate = Predicates.or(predicate, new StatusPredicate(queryStatus));
}
return Iterables.filter(results, predicate).iterator();
}
use of io.jenkins.blueocean.rest.model.BlueTestResult in project blueocean-plugin by jenkinsci.
the class BlueTestResultContainerImpl method get.
@Override
public BlueTestResult get(final String name) {
Result resolved = resolve();
if (resolved.summary == null || resolved.results == null) {
throw new NotFoundException("no tests");
}
BlueTestResult testResult = IterableUtils.find(resolved.results, blueTestResult -> blueTestResult != null && blueTestResult.getId().equals(name), null);
if (testResult == null) {
throw new NotFoundException("not found");
}
return testResult;
}
use of io.jenkins.blueocean.rest.model.BlueTestResult in project blueocean-plugin by jenkinsci.
the class BlueTestResultContainerImpl method filterByState.
// for testing purpose
public static Predicate<BlueTestResult> filterByState(String state) {
String[] stateAtoms = StringUtils.split(state, ',');
Predicate<BlueTestResult> predicate = blueTestResult -> false;
if (stateAtoms == null || stateAtoms.length == 0) {
throw new BadRequestException("state not provided");
}
for (String stateString : stateAtoms) {
Predicate<BlueTestResult> statePredicate;
try {
if (stateString.startsWith("!")) {
StatePredicate tmp = new StatePredicate(State.valueOf(stateString.toUpperCase().substring(1)));
statePredicate = blueTestResult -> !tmp.test(blueTestResult);
} else {
statePredicate = new StatePredicate(State.valueOf(stateString.toUpperCase()));
}
} catch (IllegalArgumentException e) {
throw new BadRequestException("bad state " + state, e);
}
predicate = predicate.or(statePredicate);
}
return predicate;
}
use of io.jenkins.blueocean.rest.model.BlueTestResult in project blueocean-plugin by jenkinsci.
the class BlueTestResultContainerImpl method iterator.
@NonNull
@Override
public Iterator<BlueTestResult> iterator() {
Result resolved = resolve();
if (resolved.summary == null || resolved.results == null) {
throw new NotFoundException("no tests");
}
StaplerRequest request = Stapler.getCurrentRequest();
if (request != null) {
String status = request.getParameter("status");
String state = request.getParameter("state");
String age = request.getParameter("age");
return getBlueTestResultIterator(resolved.results, status, state, age);
}
return resolved.results.iterator();
}
use of io.jenkins.blueocean.rest.model.BlueTestResult in project blueocean-plugin by jenkinsci.
the class BlueTestResultContainerImplTest method testsFilteredByState.
@Test
public void testsFilteredByState() throws Exception {
List<BlueTestResult> allResults = IteratorUtils.toList(container.iterator());
List<BlueTestResult> regressions = IteratorUtils.toList(container.getBlueTestResultIterator(allResults, null, State.REGRESSION.name(), null));
assertEquals(2, regressions.size());
for (BlueTestResult tr : regressions) {
assertEquals(State.REGRESSION, tr.getTestState());
}
}
Aggregations