16
16
import org .junit .platform .commons .JUnitException ;
17
17
import org .junit .platform .commons .logging .Logger ;
18
18
import org .junit .platform .commons .logging .LoggerFactory ;
19
+ import org .junit .platform .commons .util .Preconditions ;
19
20
import org .junit .platform .engine .TestEngine ;
20
21
21
22
/**
@@ -29,7 +30,7 @@ private EngineIdValidator() {
29
30
static Iterable <TestEngine > validate (Iterable <TestEngine > testEngines ) {
30
31
Set <String > ids = new HashSet <>();
31
32
for (TestEngine testEngine : testEngines ) {
32
- // check usage of reserved id prefix
33
+ // check usage of reserved ID prefix
33
34
if (!validateReservedIds (testEngine )) {
34
35
getLogger ().warn (() -> String .format (
35
36
"Third-party TestEngine implementations are forbidden to use the reserved 'junit-' prefix for their ID: '%s'" ,
@@ -52,23 +53,27 @@ private static Logger getLogger() {
52
53
53
54
// https://github.com/junit-team/junit5/issues/1557
54
55
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 ()));
56
58
if (!engineId .startsWith ("junit-" )) {
57
59
return true ;
58
60
}
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 ;
70
76
}
71
- return false ;
72
77
}
73
78
74
79
private static void validateWellKnownClassName (TestEngine testEngine , String expectedClassName ) {
@@ -80,4 +85,5 @@ private static void validateWellKnownClassName(TestEngine testEngine, String exp
80
85
String .format ("Third-party TestEngine '%s' is forbidden to use the reserved '%s' TestEngine ID." ,
81
86
actualClassName , testEngine .getId ()));
82
87
}
88
+
83
89
}
0 commit comments