Skip to content

Commit 941f80d

Browse files
committed
Polish EngineIdValidator
1 parent 2898164 commit 941f80d

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

junit-platform-launcher/src/main/java/org/junit/platform/launcher/core/EngineIdValidator.java

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.junit.platform.commons.JUnitException;
1717
import org.junit.platform.commons.logging.Logger;
1818
import org.junit.platform.commons.logging.LoggerFactory;
19+
import org.junit.platform.commons.util.Preconditions;
1920
import org.junit.platform.engine.TestEngine;
2021

2122
/**
@@ -29,7 +30,7 @@ private EngineIdValidator() {
2930
static Iterable<TestEngine> validate(Iterable<TestEngine> testEngines) {
3031
Set<String> ids = new HashSet<>();
3132
for (TestEngine testEngine : testEngines) {
32-
// check usage of reserved id prefix
33+
// check usage of reserved ID prefix
3334
if (!validateReservedIds(testEngine)) {
3435
getLogger().warn(() -> String.format(
3536
"Third-party TestEngine implementations are forbidden to use the reserved 'junit-' prefix for their ID: '%s'",
@@ -52,23 +53,27 @@ private static Logger getLogger() {
5253

5354
// https://github.com/junit-team/junit5/issues/1557
5455
private static boolean validateReservedIds(TestEngine testEngine) {
55-
String engineId = testEngine.getId();
56+
String engineId = Preconditions.notBlank(testEngine.getId(),
57+
() -> String.format("ID for TestEngine [%s] must not be null or blank", testEngine.getClass().getName()));
5658
if (!engineId.startsWith("junit-")) {
5759
return true;
5860
}
59-
if ("junit-jupiter".equals(engineId)) {
60-
validateWellKnownClassName(testEngine, "org.junit.jupiter.engine.JupiterTestEngine");
61-
return true;
62-
}
63-
if ("junit-vintage".equals(engineId)) {
64-
validateWellKnownClassName(testEngine, "org.junit.vintage.engine.VintageTestEngine");
65-
return true;
66-
}
67-
if ("junit-platform-suite".equals(engineId)) {
68-
validateWellKnownClassName(testEngine, "org.junit.platform.suite.engine.SuiteTestEngine");
69-
return true;
61+
switch (engineId) {
62+
case "junit-jupiter": {
63+
validateWellKnownClassName(testEngine, "org.junit.jupiter.engine.JupiterTestEngine");
64+
return true;
65+
}
66+
case "junit-vintage": {
67+
validateWellKnownClassName(testEngine, "org.junit.vintage.engine.VintageTestEngine");
68+
return true;
69+
}
70+
case "junit-platform-suite": {
71+
validateWellKnownClassName(testEngine, "org.junit.platform.suite.engine.SuiteTestEngine");
72+
return true;
73+
}
74+
default:
75+
return false;
7076
}
71-
return false;
7277
}
7378

7479
private static void validateWellKnownClassName(TestEngine testEngine, String expectedClassName) {
@@ -80,4 +85,5 @@ private static void validateWellKnownClassName(TestEngine testEngine, String exp
8085
String.format("Third-party TestEngine '%s' is forbidden to use the reserved '%s' TestEngine ID.",
8186
actualClassName, testEngine.getId()));
8287
}
88+
8389
}

0 commit comments

Comments
 (0)