You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2014/12/19 15:31:02 UTC

svn commit: r1646730 - in /jackrabbit/oak/trunk: oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FixturesHelper.java oak-core/src/test/java/org/apache/jackrabbit/oak/OakBaseTest.java

Author: mduerig
Date: Fri Dec 19 14:31:01 2014
New Revision: 1646730

URL: http://svn.apache.org/r1646730
Log:
OAK-2365: Refactor node store tests
Integrate with FixtureHelper

Modified:
    jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FixturesHelper.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/OakBaseTest.java

Modified: jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FixturesHelper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FixturesHelper.java?rev=1646730&r1=1646729&r2=1646730&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FixturesHelper.java (original)
+++ jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FixturesHelper.java Fri Dec 19 14:31:01 2014
@@ -16,45 +16,44 @@
  */
 package org.apache.jackrabbit.oak.commons;
 
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
+import static java.util.Collections.unmodifiableSet;
+
+import java.util.EnumSet;
 import java.util.Set;
 
 /**
  * helper class that return the list of available fixtures based on the {@code ns-fixtures} system
  * property ({@code -Dns-fixtures=SEGMENT_MK}).
  * 
- * See {@link FixturesHelper#Fixture} for a list of available fixtures
+ * See {@link FixturesHelper.Fixture} for a list of available fixtures
  */
-public class FixturesHelper {
+public final class FixturesHelper {
     /**
      * splitter for specifying multiple fixtures
      */
-    
     private static final String SPLIT_ON = ","; 
     /**
      * System property to be used.
      */
     public static final String NS_FIXTURES = "ns-fixtures";
-    
+
+    private FixturesHelper() { }
+
     /**
      * default fixtures when no {@code ns-fixtures} is provided
      */
-    public static enum Fixture {
-       DOCUMENT_MK, DOCUMENT_NS, SEGMENT_MK, DOCUMENT_RDB
-    };
+    public enum Fixture {
+       DOCUMENT_MK, DOCUMENT_NS, SEGMENT_MK, DOCUMENT_RDB, MEMORY_NS
+    }
 
     private static final Set<Fixture> FIXTURES;
     static {
         String raw = System.getProperty(NS_FIXTURES, "");
         if (raw.trim().isEmpty()) {
-            FIXTURES = Collections.unmodifiableSet(new HashSet<Fixture>(Arrays.asList(Fixture
-                .values())));
+            FIXTURES = unmodifiableSet(EnumSet.allOf(Fixture.class));
         } else {
-            String[] fs = raw.split(SPLIT_ON);
-            Set<Fixture> tmp = new HashSet<Fixture>();
-            for (String f : fs) {
+            Set<Fixture> tmp = EnumSet.noneOf(Fixture.class);
+            for (String f : raw.split(SPLIT_ON)) {
                 String x = f.trim();
                 Fixture fx = Fixture.valueOf(x.toUpperCase());
                 if (fx != null) {
@@ -63,10 +62,9 @@ public class FixturesHelper {
             }
             
             if (tmp.isEmpty()) {
-                FIXTURES = Collections.unmodifiableSet(new HashSet<Fixture>(Arrays.asList(Fixture
-                    .values())));
+                FIXTURES = unmodifiableSet(EnumSet.allOf(Fixture.class));
             } else {
-                FIXTURES = Collections.unmodifiableSet(tmp);
+                FIXTURES = unmodifiableSet(tmp);
             }
             
         }

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/OakBaseTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/OakBaseTest.java?rev=1646730&r1=1646729&r2=1646730&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/OakBaseTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/OakBaseTest.java Fri Dec 19 14:31:01 2014
@@ -16,11 +16,19 @@
  */
 package org.apache.jackrabbit.oak;
 
-import java.util.Arrays;
+import static org.apache.jackrabbit.oak.commons.FixturesHelper.Fixture.DOCUMENT_MK;
+import static org.apache.jackrabbit.oak.commons.FixturesHelper.Fixture.DOCUMENT_NS;
+import static org.apache.jackrabbit.oak.commons.FixturesHelper.Fixture.MEMORY_NS;
+import static org.apache.jackrabbit.oak.commons.FixturesHelper.Fixture.SEGMENT_MK;
+
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Set;
 
 import org.apache.jackrabbit.oak.api.ContentRepository;
 import org.apache.jackrabbit.oak.api.ContentSession;
+import org.apache.jackrabbit.oak.commons.FixturesHelper;
+import org.apache.jackrabbit.oak.commons.FixturesHelper.Fixture;
 import org.apache.jackrabbit.oak.spi.security.OpenSecurityProvider;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
 import org.junit.After;
@@ -30,17 +38,32 @@ import org.junit.runners.Parameterized;
 @RunWith(Parameterized.class)
 public abstract class OakBaseTest {
 
+    /**
+     * The system property "ns-fixtures" can be used to provide a
+     * whitespace-separated list of fixtures names for which the
+     * tests should be run (the default is to use all fixtures).
+     */
+    private static final Set<Fixture> FIXTURES = FixturesHelper.getFixtures();
+
     @Parameterized.Parameters
     public static Collection<Object[]> fixtures() {
-        Object[][] fixtures = new Object[][] {
-                {NodeStoreFixture.MONGO_MK},
-                {NodeStoreFixture.MONGO_NS},
-                {NodeStoreFixture.SEGMENT_MK},
-                {NodeStoreFixture.MEMORY_NS},
-        };
-        return Arrays.asList(fixtures);
+        Collection<Object[]> result = new ArrayList<Object[]>();
+        if (FIXTURES.contains(DOCUMENT_MK)) {
+            result.add(new Object[] { NodeStoreFixture.MONGO_MK });
+        }
+        if (FIXTURES.contains(DOCUMENT_NS)) {
+            result.add(new Object[] { NodeStoreFixture.MONGO_NS });
+        }
+        if (FIXTURES.contains(SEGMENT_MK)) {
+            result.add(new Object[] { NodeStoreFixture.SEGMENT_MK });
+        }
+        if (FIXTURES.contains(MEMORY_NS)) {
+            result.add(new Object[] { NodeStoreFixture.MEMORY_NS });
+        }
+        return result;
     }
 
+
     protected final NodeStoreFixture fixture;
     protected final NodeStore store;