[MNG-6275] Defang the tests when their core assumption is invalid.

- The tests assume that the JRE has a ScriptEngineFactory
- Not all JREs have a ScriptEngineFactory (I'm looking at Azul's Zulu Open JDK 
7 builds)
- Ideally we'd skip these tests using Assume.assumeThat(...) but PlexusTestCase 
doesn't support
  AssumptionViolatedException for marking tests as skipped.

Issue identified during testing of the 3.5.1 release candidate


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/542a7a89
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/542a7a89
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/542a7a89

Branch: refs/heads/MNG-6255
Commit: 542a7a89156263b34d1472e9d9c1a2795afccd2d
Parents: 312eb53
Author: Stephen Connolly <stephen.alan.conno...@gmail.com>
Authored: Mon Sep 11 10:25:11 2017 +0100
Committer: Stephen Connolly <stephen.alan.conno...@gmail.com>
Committed: Mon Sep 11 10:25:11 2017 +0100

----------------------------------------------------------------------
 .../classrealm/DefaultClassRealmManagerTest.java    | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/542a7a89/maven-core/src/test/java/org/apache/maven/classrealm/DefaultClassRealmManagerTest.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/test/java/org/apache/maven/classrealm/DefaultClassRealmManagerTest.java
 
b/maven-core/src/test/java/org/apache/maven/classrealm/DefaultClassRealmManagerTest.java
index 726199f..6d074b9 100644
--- 
a/maven-core/src/test/java/org/apache/maven/classrealm/DefaultClassRealmManagerTest.java
+++ 
b/maven-core/src/test/java/org/apache/maven/classrealm/DefaultClassRealmManagerTest.java
@@ -34,6 +34,7 @@ import org.junit.Test;
 public class DefaultClassRealmManagerTest extends PlexusTestCase
 {
     private ClassRealmManager classRealmManager;
+    private boolean haveScriptEngineFactory;
 
     @Override
     protected void setUp()
@@ -41,6 +42,11 @@ public class DefaultClassRealmManagerTest extends 
PlexusTestCase
     {
         super.setUp();
         this.classRealmManager = lookup( ClassRealmManager.class );
+        ClassLoader testRealm = getClass().getClassLoader();
+        ServiceLoader<ScriptEngineFactory> sef = ServiceLoader.load( 
ScriptEngineFactory.class, testRealm );
+        // TODO switch to Assume.assumeTrue( sef.iterator().hasNext() ) when 
PlexusTestCase
+        // supports assumptions. Not every Java 7 JRE has a 
ScriptEngineFactory.
+        this.haveScriptEngineFactory = sef.iterator().hasNext();
     }
 
     @Override
@@ -59,7 +65,7 @@ public class DefaultClassRealmManagerTest extends 
PlexusTestCase
         
         ClassRealm pluginRealm = classRealmManager.createPluginRealm( plugin, 
parent, null, null, null );
         ServiceLoader<ScriptEngineFactory> sef = ServiceLoader.load( 
ScriptEngineFactory.class, pluginRealm );
-        assertTrue( sef.iterator().hasNext() );
+        assertEquals( haveScriptEngineFactory, sef.iterator().hasNext() );
     }
 
     @Test
@@ -70,7 +76,7 @@ public class DefaultClassRealmManagerTest extends 
PlexusTestCase
         
         ClassRealm extensionRealm = classRealmManager.createExtensionRealm( 
extension, null );
         ServiceLoader<ScriptEngineFactory> sef = ServiceLoader.load( 
ScriptEngineFactory.class, extensionRealm );
-        assertTrue( sef.iterator().hasNext() );
+        assertEquals( haveScriptEngineFactory, sef.iterator().hasNext() );
     }
 
     @Test
@@ -80,7 +86,7 @@ public class DefaultClassRealmManagerTest extends 
PlexusTestCase
         
         ClassRealm projectRealm = classRealmManager.createProjectRealm( model, 
null );
         ServiceLoader<ScriptEngineFactory> sef = ServiceLoader.load( 
ScriptEngineFactory.class, projectRealm );
-        assertTrue( sef.iterator().hasNext() );
+        assertEquals( haveScriptEngineFactory, sef.iterator().hasNext() );
     }
 
     @Test
@@ -88,7 +94,7 @@ public class DefaultClassRealmManagerTest extends 
PlexusTestCase
     {
         ClassRealm mavenApiRealm = classRealmManager.getMavenApiRealm();
         ServiceLoader<ScriptEngineFactory> sef = ServiceLoader.load( 
ScriptEngineFactory.class, mavenApiRealm );
-        assertTrue( sef.iterator().hasNext() );
+        assertEquals( haveScriptEngineFactory, sef.iterator().hasNext() );
     }
 
     @Test
@@ -96,6 +102,6 @@ public class DefaultClassRealmManagerTest extends 
PlexusTestCase
     {
         ClassRealm coreRealm = classRealmManager.getCoreRealm();
         ServiceLoader<ScriptEngineFactory> sef = ServiceLoader.load( 
ScriptEngineFactory.class, coreRealm );
-        assertTrue( sef.iterator().hasNext() );
+        assertEquals( haveScriptEngineFactory, sef.iterator().hasNext() );
     }
 }

Reply via email to