1616import org .junit .platform .commons .JUnitException ;
1717import org .junit .platform .commons .logging .Logger ;
1818import org .junit .platform .commons .logging .LoggerFactory ;
19+ import org .junit .platform .commons .util .Preconditions ;
1920import 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