Changes to speed up tests.

Change-Id: I1830f564710b9cb06d9c41d31e31854a272fbf4d
diff --git a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AsyncConsistentSetMultimapTest.java b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AsyncConsistentSetMultimapTest.java
index bb7677e..e033937 100644
--- a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AsyncConsistentSetMultimapTest.java
+++ b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AsyncConsistentSetMultimapTest.java
@@ -19,20 +19,18 @@
 import com.google.common.collect.Lists;
 import com.google.common.collect.Multiset;
 import com.google.common.collect.TreeMultiset;
-import com.google.common.io.Files;
 import io.atomix.resource.ResourceType;
 import org.apache.commons.collections.keyvalue.DefaultMapEntry;
-import org.junit.Ignore;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.onlab.util.Tools;
 
-import java.io.File;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -41,9 +39,7 @@
 /**
  * Tests the {@link AsyncConsistentSetMultimap}.
  */
-@Ignore
 public class AsyncConsistentSetMultimapTest extends AtomixTestBase {
-    private final File testDir = Files.createTempDir();
     private final String keyOne = "hello";
     private final String keyTwo = "goodbye";
     private final String keyThree = "foo";
@@ -58,7 +54,16 @@
                                                               valueTwo,
                                                               valueThree,
                                                               valueFour);
-    private final AtomicInteger port = new AtomicInteger(49200);
+
+    @BeforeClass
+    public static void preTestSetup() throws Throwable {
+        createCopycatServers(3);
+    }
+
+    @AfterClass
+    public static void postTestCleanup() throws Exception {
+        clearTests();
+    }
 
     @Override
     protected ResourceType resourceType() {
@@ -71,8 +76,7 @@
      */
     @Test
     public void testSize() throws Throwable {
-        clearTests();
-        AsyncConsistentSetMultimap map = createResource(3);
+        AsyncConsistentSetMultimap map = createResource("testOneMap");
         //Simplest operation case
         map.isEmpty().thenAccept(result -> assertTrue(result));
         map.put(keyOne, valueOne).
@@ -114,7 +118,6 @@
         map.isEmpty().thenAccept(result -> assertTrue(result));
 
         map.destroy().join();
-        clearTests();
     }
 
     /**
@@ -122,8 +125,7 @@
      */
     @Test
     public void containsTest() throws Throwable {
-        clearTests();
-        AsyncConsistentSetMultimap map = createResource(3);
+        AsyncConsistentSetMultimap map = createResource("testTwoMap");
 
         //Populate the maps
         allKeys.forEach(key -> {
@@ -174,7 +176,6 @@
         });
 
         map.destroy().join();
-        clearTests();
     }
 
     /**
@@ -183,8 +184,7 @@
      */
     @Test
     public void addAndRemoveTest() throws Exception {
-        clearTests();
-        AsyncConsistentSetMultimap map = createResource(3);
+        AsyncConsistentSetMultimap map = createResource("testThreeMap");
 
         //Test single put
         allKeys.forEach(key -> {
@@ -309,7 +309,6 @@
         });
 
         map.destroy().join();
-        clearTests();
     }
 
     /**
@@ -319,8 +318,7 @@
      */
     @Test
     public void testAccessors() throws Exception {
-        clearTests();
-        AsyncConsistentSetMultimap map = createResource(3);
+        AsyncConsistentSetMultimap map = createResource("testFourMap");
 
         //Populate for full map behavior tests
         allKeys.forEach(key -> {
@@ -400,15 +398,13 @@
         map.entries()
                 .thenAccept(result -> assertTrue(result.isEmpty())).join();
 
-        map.destroy();
-        clearTests();
+        map.destroy().join();
     }
 
-    private AsyncConsistentSetMultimap createResource(int clusterSize) {
+    private AsyncConsistentSetMultimap createResource(String mapName) {
         try {
-            createCopycatServers(clusterSize);
             AsyncConsistentSetMultimap map = createAtomixClient().
-                    getResource("testMap", AsyncConsistentSetMultimap.class)
+                    getResource("mapName", AsyncConsistentSetMultimap.class)
                     .join();
             return map;
         } catch (Throwable e) {
diff --git a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentMapTest.java b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentMapTest.java
index df29b5e..130662b 100644
--- a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentMapTest.java
+++ b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentMapTest.java
@@ -18,7 +18,8 @@
 import com.google.common.base.Throwables;
 import com.google.common.collect.Sets;
 import io.atomix.resource.ResourceType;
-import org.junit.Ignore;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.onlab.util.Tools;
 import org.onosproject.store.primitives.MapUpdate;
@@ -49,9 +50,17 @@
 /**
  * Unit tests for {@link AtomixConsistentMap}.
  */
-@Ignore
 public class AtomixConsistentMapTest extends AtomixTestBase {
 
+    @BeforeClass
+    public static void preTestSetup() throws Throwable {
+        createCopycatServers(3);
+    }
+
+    @AfterClass
+    public static void postTestCleanup() throws Exception {
+        clearTests();
+    }
     @Override
     protected ResourceType resourceType() {
         return new ResourceType(AtomixConsistentMap.class);
@@ -98,12 +107,11 @@
     }
 
     protected void basicMapOperationTests(int clusterSize) throws Throwable {
-        createCopycatServers(clusterSize);
-
         final byte[] rawFooValue = Tools.getBytesUtf8("Hello foo!");
         final byte[] rawBarValue = Tools.getBytesUtf8("Hello bar!");
 
-        AtomixConsistentMap map = createAtomixClient().getResource("test", AtomixConsistentMap.class).join();
+        AtomixConsistentMap map = createAtomixClient().getResource("testBasicMapOperationMap",
+                                                                   AtomixConsistentMap.class).join();
 
         map.isEmpty().thenAccept(result -> {
             assertTrue(result);
@@ -228,12 +236,12 @@
     }
 
     public void mapComputeOperationTests(int clusterSize) throws Throwable {
-        createCopycatServers(clusterSize);
         final byte[] value1 = Tools.getBytesUtf8("value1");
         final byte[] value2 = Tools.getBytesUtf8("value2");
         final byte[] value3 = Tools.getBytesUtf8("value3");
 
-        AtomixConsistentMap map = createAtomixClient().getResource("test", AtomixConsistentMap.class).join();
+        AtomixConsistentMap map = createAtomixClient().getResource("testMapComputeOperationsMap",
+                                                                   AtomixConsistentMap.class).join();
 
         map.computeIfAbsent("foo", k -> value1).thenAccept(result -> {
             assertTrue(Arrays.equals(Versioned.valueOrElse(result, null), value1));
@@ -266,12 +274,12 @@
 
 
     protected void mapListenerTests(int clusterSize) throws Throwable {
-        createCopycatServers(clusterSize);
         final byte[] value1 = Tools.getBytesUtf8("value1");
         final byte[] value2 = Tools.getBytesUtf8("value2");
         final byte[] value3 = Tools.getBytesUtf8("value3");
 
-        AtomixConsistentMap map = createAtomixClient().getResource("test", AtomixConsistentMap.class).join();
+        AtomixConsistentMap map = createAtomixClient().getResource("testMapListenerMap",
+                                                                   AtomixConsistentMap.class).join();
         TestMapEventListener listener = new TestMapEventListener();
 
         // add listener; insert new value into map and verify an INSERT event is received.
@@ -326,11 +334,11 @@
     }
 
     protected void transactionCommitTests(int clusterSize) throws Throwable {
-        createCopycatServers(clusterSize);
         final byte[] value1 = Tools.getBytesUtf8("value1");
         final byte[] value2 = Tools.getBytesUtf8("value2");
 
-        AtomixConsistentMap map = createAtomixClient().getResource("test", AtomixConsistentMap.class).join();
+        AtomixConsistentMap map = createAtomixClient().getResource("testCommitTestsMap",
+                                                                   AtomixConsistentMap.class).join();
         TestMapEventListener listener = new TestMapEventListener();
 
         map.addListener(listener).join();
@@ -421,11 +429,11 @@
     }
 
     protected void transactionRollbackTests(int clusterSize) throws Throwable {
-        createCopycatServers(clusterSize);
         final byte[] value1 = Tools.getBytesUtf8("value1");
         final byte[] value2 = Tools.getBytesUtf8("value2");
 
-        AtomixConsistentMap map = createAtomixClient().getResource("test", AtomixConsistentMap.class).join();
+        AtomixConsistentMap map = createAtomixClient().getResource("testTransactionRollbackTestsMap",
+                                                                   AtomixConsistentMap.class).join();
         TestMapEventListener listener = new TestMapEventListener();
 
         map.addListener(listener).join();
diff --git a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixLeaderElectorTest.java b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixLeaderElectorTest.java
index 6fb064b..7b07b4b 100644
--- a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixLeaderElectorTest.java
+++ b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixLeaderElectorTest.java
@@ -20,7 +20,8 @@
 import java.util.concurrent.CompletableFuture;
 import java.util.function.Consumer;
 
-import org.junit.Ignore;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 import static org.junit.Assert.*;
@@ -36,13 +37,22 @@
 /**
  * Unit tests for {@link AtomixLeaderElector}.
  */
-@Ignore
 public class AtomixLeaderElectorTest extends AtomixTestBase {
 
     NodeId node1 = new NodeId("node1");
     NodeId node2 = new NodeId("node2");
     NodeId node3 = new NodeId("node3");
 
+    @BeforeClass
+    public static void preTestSetup() throws Throwable {
+        createCopycatServers(3);
+    }
+
+    @AfterClass
+    public static void postTestCleanup() throws Exception {
+        clearTests();
+    }
+
     @Override
     protected ResourceType resourceType() {
         return new ResourceType(AtomixLeaderElector.class);
@@ -54,9 +64,9 @@
     }
 
     private void leaderElectorRunTests(int numServers) throws Throwable {
-        createCopycatServers(numServers);
         Atomix client1 = createAtomixClient();
-        AtomixLeaderElector elector1 = client1.getResource("test-elector", AtomixLeaderElector.class).join();
+        AtomixLeaderElector elector1 = client1.getResource("test-elector-run",
+                                                           AtomixLeaderElector.class).join();
         elector1.run("foo", node1).thenAccept(result -> {
             assertEquals(node1, result.leaderNodeId());
             assertEquals(1, result.leader().term());
@@ -64,7 +74,8 @@
             assertEquals(node1, result.candidates().get(0));
         }).join();
         Atomix client2 = createAtomixClient();
-        AtomixLeaderElector elector2 = client2.getResource("test-elector", AtomixLeaderElector.class).join();
+        AtomixLeaderElector elector2 = client2.getResource("test-elector-run",
+                                                           AtomixLeaderElector.class).join();
         elector2.run("foo", node2).thenAccept(result -> {
             assertEquals(node1, result.leaderNodeId());
             assertEquals(1, result.leader().term());
@@ -80,12 +91,13 @@
     }
 
     private void leaderElectorWithdrawTests(int numServers) throws Throwable {
-        createCopycatServers(numServers);
         Atomix client1 = createAtomixClient();
-        AtomixLeaderElector elector1 = client1.getResource("test-elector", AtomixLeaderElector.class).join();
+        AtomixLeaderElector elector1 = client1.getResource("test-elector-withdraw",
+                                                           AtomixLeaderElector.class).join();
         elector1.run("foo", node1).join();
         Atomix client2 = createAtomixClient();
-        AtomixLeaderElector elector2 = client2.getResource("test-elector", AtomixLeaderElector.class).join();
+        AtomixLeaderElector elector2 = client2.getResource("test-elector-withdraw",
+                                                           AtomixLeaderElector.class).join();
         elector2.run("foo", node2).join();
 
         LeaderEventListener listener1 = new LeaderEventListener();
@@ -117,13 +129,15 @@
     }
 
     private void leaderElectorAnointTests(int numServers) throws Throwable {
-        createCopycatServers(numServers);
         Atomix client1 = createAtomixClient();
-        AtomixLeaderElector elector1 = client1.getResource("test-elector", AtomixLeaderElector.class).join();
+        AtomixLeaderElector elector1 = client1.getResource("test-elector-anoint",
+                                                           AtomixLeaderElector.class).join();
         Atomix client2 = createAtomixClient();
-        AtomixLeaderElector elector2 = client2.getResource("test-elector", AtomixLeaderElector.class).join();
+        AtomixLeaderElector elector2 = client2.getResource("test-elector-anoint",
+                                                           AtomixLeaderElector.class).join();
         Atomix client3 = createAtomixClient();
-        AtomixLeaderElector elector3 = client3.getResource("test-elector", AtomixLeaderElector.class).join();
+        AtomixLeaderElector elector3 = client3.getResource("test-elector-anoint",
+                                                           AtomixLeaderElector.class).join();
         elector1.run("foo", node1).join();
         elector2.run("foo", node2).join();
 
@@ -171,13 +185,15 @@
     }
 
     private void leaderElectorPromoteTests(int numServers) throws Throwable {
-        createCopycatServers(numServers);
         AtomixClient client1 = createAtomixClient();
-        AtomixLeaderElector elector1 = client1.getResource("test-elector", AtomixLeaderElector.class).join();
+        AtomixLeaderElector elector1 = client1.getResource("test-elector-promote",
+                                                           AtomixLeaderElector.class).join();
         AtomixClient client2 = createAtomixClient();
-        AtomixLeaderElector elector2 = client2.getResource("test-elector", AtomixLeaderElector.class).join();
+        AtomixLeaderElector elector2 = client2.getResource("test-elector-promote",
+                                                           AtomixLeaderElector.class).join();
         AtomixClient client3 = createAtomixClient();
-        AtomixLeaderElector elector3 = client3.getResource("test-elector", AtomixLeaderElector.class).join();
+        AtomixLeaderElector elector3 = client3.getResource("test-elector-promote",
+                                                           AtomixLeaderElector.class).join();
         elector1.run("foo", node1).join();
         elector2.run("foo", node2).join();
 
@@ -229,12 +245,13 @@
     }
 
     private void leaderElectorLeaderSessionCloseTests(int numServers) throws Throwable {
-        createCopycatServers(numServers);
         AtomixClient client1 = createAtomixClient();
-        AtomixLeaderElector elector1 = client1.getResource("test-elector", AtomixLeaderElector.class).join();
+        AtomixLeaderElector elector1 = client1.getResource("test-elector-leader-session-close",
+                                                           AtomixLeaderElector.class).join();
         elector1.run("foo", node1).join();
         Atomix client2 = createAtomixClient();
-        AtomixLeaderElector elector2 = client2.getResource("test-elector", AtomixLeaderElector.class).join();
+        AtomixLeaderElector elector2 = client2.getResource("test-elector-leader-session-close",
+                                                           AtomixLeaderElector.class).join();
         LeaderEventListener listener = new LeaderEventListener();
         elector2.run("foo", node2).join();
         elector2.addChangeListener(listener).join();
@@ -252,12 +269,13 @@
     }
 
     private void leaderElectorNonLeaderSessionCloseTests(int numServers) throws Throwable {
-        createCopycatServers(numServers);
         Atomix client1 = createAtomixClient();
-        AtomixLeaderElector elector1 = client1.getResource("test-elector", AtomixLeaderElector.class).join();
+        AtomixLeaderElector elector1 = client1.getResource("test-elector-non-leader-session-close",
+                                                           AtomixLeaderElector.class).join();
         elector1.run("foo", node1).join();
         AtomixClient client2 = createAtomixClient();
-        AtomixLeaderElector elector2 = client2.getResource("test-elector", AtomixLeaderElector.class).join();
+        AtomixLeaderElector elector2 = client2.getResource("test-elector-non-leader-session-close",
+                                                           AtomixLeaderElector.class).join();
         LeaderEventListener listener = new LeaderEventListener();
         elector2.run("foo", node2).join();
         elector1.addChangeListener(listener).join();
@@ -275,11 +293,12 @@
     }
 
     private void leaderElectorQueryTests(int numServers) throws Throwable {
-        createCopycatServers(numServers);
         Atomix client1 = createAtomixClient();
         Atomix client2 = createAtomixClient();
-        AtomixLeaderElector elector1 = client1.getResource("test-elector", AtomixLeaderElector.class).join();
-        AtomixLeaderElector elector2 = client2.getResource("test-elector", AtomixLeaderElector.class).join();
+        AtomixLeaderElector elector1 = client1.getResource("test-elector-query",
+                                                           AtomixLeaderElector.class).join();
+        AtomixLeaderElector elector2 = client2.getResource("test-elector-query",
+                                                           AtomixLeaderElector.class).join();
         elector1.run("foo", node1).join();
         elector2.run("foo", node2).join();
         elector2.run("bar", node2).join();
diff --git a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixLongTest.java b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixLongTest.java
index c24cc7d..b1a5b7c 100644
--- a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixLongTest.java
+++ b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixLongTest.java
@@ -18,7 +18,8 @@
 import io.atomix.Atomix;
 import io.atomix.resource.ResourceType;
 import io.atomix.variables.DistributedLong;
-import org.junit.Ignore;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -28,9 +29,18 @@
 /**git s
  * Unit tests for {@link AtomixCounter}.
  */
-@Ignore
 public class AtomixLongTest extends AtomixTestBase {
 
+    @BeforeClass
+    public static void preTestSetup() throws Throwable {
+        createCopycatServers(3);
+    }
+
+    @AfterClass
+    public static void postTestCleanup() throws Exception {
+        clearTests();
+    }
+
     @Override
     protected ResourceType resourceType() {
         return new ResourceType(DistributedLong.class);
@@ -42,9 +52,9 @@
     }
 
     protected void basicOperationsTest(int clusterSize) throws Throwable {
-        createCopycatServers(clusterSize);
         Atomix atomix = createAtomixClient();
-        AtomixCounter along = new AtomixCounter("test-long", atomix.getLong("test-long").join());
+        AtomixCounter along = new AtomixCounter("test-long-basic-operations",
+                                                atomix.getLong("test-long").join());
         assertEquals(0, along.get().join().longValue());
         assertEquals(1, along.incrementAndGet().join().longValue());
         along.set(100).join();
diff --git a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixTestBase.java b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixTestBase.java
index 01c33ec..db52ce9 100644
--- a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixTestBase.java
+++ b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixTestBase.java
@@ -27,8 +27,6 @@
 import io.atomix.copycat.server.storage.StorageLevel;
 import io.atomix.manager.internal.ResourceManagerState;
 import io.atomix.resource.ResourceType;
-import org.junit.After;
-import org.junit.Before;
 import org.onlab.junit.TestTools;
 import org.onosproject.store.primitives.impl.CatalystSerializers;
 
@@ -43,18 +41,18 @@
 import java.util.concurrent.atomic.AtomicInteger;
 
 /**
- * Base class for various Atomix* tests.
+ * Base class for various Atomix tests.
  */
 public abstract class AtomixTestBase {
-    private static final File TEST_DIR = new File("target/test-logs");
-    protected LocalServerRegistry registry;
-    protected final AtomicInteger port = new AtomicInteger(49200);
-    protected List<Address> members;
-    protected List<CopycatClient> copycatClients = new ArrayList<>();
-    protected List<CopycatServer> copycatServers = new ArrayList<>();
-    protected List<AtomixClient> atomixClients = new ArrayList<>();
-    protected List<CopycatServer> atomixServers = new ArrayList<>();
-    protected Serializer serializer = CatalystSerializers.getSerializer();
+    protected static File testDir;
+    protected static LocalServerRegistry registry = new LocalServerRegistry();
+    protected static List<Address> members = new ArrayList<>();
+    protected static List<CopycatClient> copycatClients = new ArrayList<>();
+    protected static List<CopycatServer> copycatServers = new ArrayList<>();
+    protected static List<AtomixClient> atomixClients = new ArrayList<>();
+    protected static List<CopycatServer> atomixServers = new ArrayList<>();
+    protected static Serializer serializer = CatalystSerializers.getSerializer();
+    protected static AtomicInteger port = new AtomicInteger(49200);
 
     /**
      * Creates a new resource state machine.
@@ -68,7 +66,7 @@
      *
      * @return The next server address.
      */
-    private Address nextAddress() {
+    private static Address nextAddress() {
         Address address = new Address("127.0.0.1",
                           TestTools.findAvailablePort(port.getAndIncrement()));
         members.add(address);
@@ -78,7 +76,8 @@
     /**
      * Creates a set of Copycat servers.
      */
-    protected List<CopycatServer> createCopycatServers(int nodes) throws Throwable {
+    protected static List<CopycatServer> createCopycatServers(int nodes)
+            throws Throwable {
         CountDownLatch latch = new CountDownLatch(nodes);
         List<CopycatServer> servers = new ArrayList<>();
 
@@ -91,20 +90,18 @@
             if (members.size() <= 1) {
                 server.bootstrap().thenRun(latch::countDown).join();
             } else {
-                server.join(members).thenRun(latch::countDown);
+                server.join(members).join();
             }
             servers.add(server);
         }
 
-        Uninterruptibles.awaitUninterruptibly(latch);
-
         return servers;
     }
 
     /**
      * Creates a Copycat server.
      */
-    protected CopycatServer createCopycatServer(Address address) {
+    protected static CopycatServer createCopycatServer(Address address) {
         CopycatServer server = CopycatServer.builder(address)
                 .withTransport(NettyTransport.builder().withThreads(1).build())
                 .withStorage(Storage.builder()
@@ -120,23 +117,21 @@
         return server;
     }
 
-    @Before
-    @After
-    public void clearTests() throws Exception {
+    public static void clearTests() throws Exception {
         registry = new LocalServerRegistry();
         members = new ArrayList<>();
 
         CompletableFuture<Void> closeClients =
                 CompletableFuture.allOf(atomixClients.stream()
-                                                     .map(AtomixClient::close)
-                                                     .toArray(CompletableFuture[]::new));
+                                         .map(AtomixClient::close)
+                                         .toArray(CompletableFuture[]::new));
 
-        closeClients.thenCompose(v -> CompletableFuture.allOf(copycatServers.stream()
+        closeClients
+                .thenCompose(v -> CompletableFuture
+                        .allOf(copycatServers.stream()
                 .map(CopycatServer::shutdown)
                 .toArray(CompletableFuture[]::new))).join();
 
-        deleteDirectory(TEST_DIR);
-
         atomixClients = new ArrayList<>();
 
         copycatServers = new ArrayList<>();