munit.internal.junitinterface.CustomRunners Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of junit-interface Show documentation
Show all versions of junit-interface Show documentation
A Java implementation of sbt's test interface for JUnit 4
package munit.internal.junitinterface;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import sbt.testing.Fingerprint;
import sbt.testing.SubclassFingerprint;
public class CustomRunners {
final List runners;
final Set superclasses;
public CustomRunners(List runners) {
this.runners = runners;
this.superclasses = new HashSet<>();
runners.forEach(runner -> this.superclasses.add(runner.suite));
}
public boolean isEmpty() {
return runners.isEmpty();
}
public Map all() {
Map result = new HashMap<>();
runners.forEach(runner -> result.put(runner.suite, runner.runner));
return result;
}
public boolean matchesFingerprint(Fingerprint fingerprint) {
if (fingerprint instanceof SubclassFingerprint) {
SubclassFingerprint subclassFingerprint = (SubclassFingerprint) fingerprint;
return superclasses.contains(subclassFingerprint.superclassName());
}
return false;
}
public static CustomRunners of(CustomFingerprint... runners) {
return new CustomRunners(Arrays.asList(runners));
}
}