From cd40526ed6b76d37f853263edd6697a56b16de79 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 07 Mar 2013 11:51:27 +0000
Subject: [PATCH] (CR-1376) Making ReplicationServerTest easier to maintain

---
 opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java |  184 ++++++++++++++++++++-------------------------
 1 files changed, 81 insertions(+), 103 deletions(-)

diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java
index fa3ab9d..f6cf3e4 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java
@@ -55,10 +55,10 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.ModifyDNOperationBasis;
 import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.protocols.internal.InternalClientConnection;
-import org.opends.server.protocols.ldap.LDAPFilter;
+import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.protocols.ldap.LDAPControl;
+import org.opends.server.protocols.ldap.LDAPFilter;
 import org.opends.server.replication.ReplicationTestCase;
 import org.opends.server.replication.service.ReplicationBroker;
 import org.opends.server.replication.common.ChangeNumber;
@@ -96,7 +96,6 @@
 /**
  * Tests for the replicationServer code.
  */
-
 public class ReplicationServerTest extends ReplicationTestCase
 {
   // The tracer object for the debug logger
@@ -282,15 +281,7 @@
       server1.publish(msg);
       ReplicationMsg msg2 = server2.receive();
       server2.updateWindowAfterReplay();
-      if (msg2 instanceof DeleteMsg)
-      {
-        DeleteMsg del = (DeleteMsg) msg2;
-        assertTrue(del.toString().equals(msg.toString()),
-            "ReplicationServer basic : incorrect message body received.");
-      }
-      else
-        fail("ReplicationServer basic : incorrect message type received: " +
-          msg2.getClass().toString() + ": content: " + msg2.toString());
+      assertDeleteMsgBodyEquals(msg, msg2);
 
       /*
        * Send and receive a second Delete Msg
@@ -299,15 +290,7 @@
       server1.publish(msg);
       msg2 = server2.receive();
       server2.updateWindowAfterReplay();
-      if (msg2 instanceof DeleteMsg)
-      {
-        DeleteMsg del = (DeleteMsg) msg2;
-        assertTrue(del.toString().equals(msg.toString()),
-            "ReplicationServer basic : incorrect message body received.");
-      }
-      else
-        fail("ReplicationServer basic : incorrect message type received: " +
-          msg2.getClass().toString() + ": content: " + msg2.toString());
+      assertDeleteMsgBodyEquals(msg, msg2);
 
       /*
        * Send and receive a Delete Msg from server 2 to server 1
@@ -318,15 +301,7 @@
       server2.publish(msg);
       msg2 = server1.receive();
       server1.updateWindowAfterReplay();
-      if (msg2 instanceof DeleteMsg)
-      {
-        DeleteMsg del = (DeleteMsg) msg2;
-        assertTrue(del.toString().equals(msg.toString()),
-            "ReplicationServer basic : incorrect message body received.");
-      }
-      else
-        fail("ReplicationServer basic : incorrect message type received: " +
-          msg2.getClass().toString() + ": content: " + msg2.toString());
+      assertDeleteMsgBodyEquals(msg, msg2);
 
       /*
        * Send and receive a second Delete Msg
@@ -335,15 +310,7 @@
       server2.publish(msg);
       msg2 = server1.receive();
       server1.updateWindowAfterReplay();
-      if (msg2 instanceof DeleteMsg)
-      {
-        DeleteMsg del = (DeleteMsg) msg2;
-        assertTrue(del.toString().equals(msg.toString()),
-            "ReplicationServer basic : incorrect message body received.");
-      }
-      else
-        fail("ReplicationServer basic : incorrect message type received: " +
-          msg2.getClass().toString() + ": content: " + msg2.toString());
+      assertDeleteMsgBodyEquals(msg, msg2);
 
       debugInfo("Ending changelogBasic");
     }
@@ -356,6 +323,19 @@
     }
   }
 
+  private void assertDeleteMsgBodyEquals(DeleteMsg msg, ReplicationMsg msg2)
+  {
+    if (msg2 instanceof DeleteMsg)
+    {
+      DeleteMsg del = (DeleteMsg) msg2;
+      assertEquals(del.toString(), msg.toString(),
+          "ReplicationServer basic : incorrect message body received.");
+    }
+    else
+      fail("ReplicationServer basic : incorrect message type received: " +
+        msg2.getClass().toString() + ": content: " + msg2.toString());
+  }
+
   /**
    * Test that a new client see the change that was sent in the
    * previous test.
@@ -374,15 +354,8 @@
 
       ReplicationMsg msg2 = broker.receive();
       broker.updateWindowAfterReplay();
-      if (!(msg2 instanceof DeleteMsg))
-        fail("ReplicationServer basic transmission failed:" + msg2);
-      else
-      {
-        DeleteMsg del = (DeleteMsg) msg2;
-        assertTrue(del.getChangeNumber().equals(firstChangeNumberServer1),
-            "The first message received by a new client was the wrong one : "
-            + del.getChangeNumber() + " instead of " + firstChangeNumberServer1);
-      }
+      assertDeleteMsgChangeNumberEquals(msg2, firstChangeNumberServer1,
+          "first");
       debugInfo("Ending newClient");
     }
     finally
@@ -413,17 +386,7 @@
 
       ReplicationMsg msg2 = broker.receive();
       broker.updateWindowAfterReplay();
-      if (!(msg2 instanceof DeleteMsg))
-      {
-        fail("ReplicationServer basic transmission failed:" + msg2);
-      }
-      else
-      {
-        DeleteMsg del = (DeleteMsg) msg2;
-        assertTrue(del.getChangeNumber().equals(nextChangeNumber),
-            "The second message received by a new client was the wrong one."
-            + del.getChangeNumber() + " " + nextChangeNumber);
-      }
+      assertDeleteMsgChangeNumberEquals(msg2, nextChangeNumber, "second");
     }
     finally
     {
@@ -433,6 +396,29 @@
   }
 
   /**
+   * Asserts that the change number for the passed in message matches the
+   * supplied change number.
+   *
+   * @param msg
+   * @param nextChangeNumber
+   * @param msgNumber
+   */
+  private void assertDeleteMsgChangeNumberEquals(ReplicationMsg msg,
+      ChangeNumber nextChangeNumber, String msgNumber)
+  {
+    if (msg instanceof DeleteMsg)
+    {
+      DeleteMsg del = (DeleteMsg) msg;
+      assertEquals(del.getChangeNumber(), nextChangeNumber, "The " + msgNumber
+          + " message received by a new client was the wrong one.");
+    }
+    else
+    {
+      fail("ReplicationServer basic transmission failed:" + msg);
+    }
+  }
+
+  /**
    * Test that a client that has already seen the first change now see the
    * second change
    */
@@ -590,9 +576,9 @@
         client[i] = new BrokerReader(clientBroker[i], TOTAL_MSG);
       }
 
-      for (int i =0; i< CLIENT_THREADS; i++)
+      for (BrokerReader c : client)
       {
-        client[i].start();
+        c.start();
       }
       reader.start();
 
@@ -619,23 +605,21 @@
       {
         server.stop();
       }
-      for (int i =0; i< CLIENT_THREADS; i++)
+      for (BrokerReader c : client)
       {
-        if (client[i] != null)
+        if (c != null)
         {
-          client[i].join(10000);
-          client[i].interrupt();
+          c.join(10000);
+          c.interrupt();
         }
-
       }
-      for (int i =0; i< CLIENT_THREADS; i++)
+      for (ReplicationBroker broker : clientBroker)
       {
-        if (clientBroker[i] != null)
-          clientBroker[i].stop();
+        if (broker != null)
+          broker.stop();
       }
 
-      assertTrue(reader.errDetails==null,
-          reader.exc + " " + reader.errDetails);
+      assertNull(reader.errDetails, reader.exc + " " + reader.errDetails);
     }
   }
 
@@ -684,52 +668,51 @@
         reader[i] = new BrokerReader(broker[i], (TOTAL_MSG/THREADS)*(THREADS-1));
       }
 
-      for (int i =0; i< THREADS; i++)
+      for (BrokerWriter p : producer)
       {
-        producer[i].start();
+        p.start();
       }
 
-      for (int i =0; i< THREADS; i++)
+      for (BrokerReader r : reader)
       {
-        reader[i].start();
+        r.start();
       }
       debugInfo("multipleWriterMultipleReader produces and readers started");
     }
     finally
     {
       debugInfo("multipleWriterMultipleReader wait producers end");
-      for (int i = 0; i< THREADS; i++)
+      for (BrokerWriter p : producer)
       {
-        if (producer[i] != null)
+        if (p != null)
         {
-          producer[i].join(10000);
+          p.join(10000);
           // kill the thread in case it is not yet stopped.
-          producer[i].interrupt();
+          p.interrupt();
         }
       }
       debugInfo("multipleWriterMultipleReader producers ended, now wait readers end");
-      for (int i = 0; i< THREADS; i++)
+      for (BrokerReader r : reader)
       {
-        if (reader[i] != null)
+        if (r != null)
         {
-          reader[i].join(10000);
+          r.join(10000);
           // kill the thread in case it is not yet stopped.
-          reader[i].interrupt();
+          r.interrupt();
         }
       }
       debugInfo("multipleWriterMultipleReader reader's ended, now stop brokers");
-      for (int i = 0; i< THREADS; i++)
+      for (ReplicationBroker b : broker)
       {
-        if (broker[i] != null)
-          broker[i].stop();
+        if (b != null)
+          b.stop();
       }
       debugInfo("multipleWriterMultipleReader brokers stopped");
 
-      for (int i = 0; i< THREADS; i++)
+      for (BrokerReader r : reader)
       {
-        if (reader[i] != null)
-          assertTrue(reader[i].errDetails==null,
-            reader[i].exc + " " + reader[i].errDetails);
+        if (r != null)
+          assertNull(r.errDetails, r.exc + " " + r.errDetails);
       }
     }
     debugInfo("Ending multipleWriterMultipleReader");
@@ -940,7 +923,7 @@
           }
         }
         // Check that everything expected has been received
-        assertTrue(ts == 1, "Broker2 did not receive the complete set of"
+        assertEquals(ts, 1, "Broker2 did not receive the complete set of"
             + " expected messages: #msg received " + ts);
         debugInfo("Ending changelogChaining");
       }
@@ -1454,14 +1437,9 @@
 
        replicationServer.clearDb();
 
-       LDIFWriter ldifWriter = null;
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        LDIFExportConfig exportConfig = new LDIFExportConfig(stream);
-       try
-       {
-         ldifWriter = new LDIFWriter(exportConfig);
-       }
-       catch (Exception e){}
+       LDIFWriter ldifWriter = new LDIFWriter(exportConfig);
 
        debugInfo("Create broker");
 
@@ -1504,7 +1482,7 @@
                    DereferencePolicy.NEVER_DEREF_ALIASES,
                    0, 0, false, filter, null, null);
        internalSearch.run();
-       assertTrue(internalSearch.getResultCode() == ResultCode.SUCCESS);
+       assertEquals(internalSearch.getResultCode(), ResultCode.SUCCESS);
        assertTrue(internalSearch.getSearchEntries().isEmpty());
 
        // General search
@@ -1549,28 +1527,28 @@
            SearchScope.WHOLE_SUBTREE,
            LDAPFilter.decode("(changetype=add)"));
        assertEquals(op.getResultCode(), ResultCode.SUCCESS);
-       assertTrue(op.getSearchEntries().size() == 2);
+       assertEquals(op.getSearchEntries().size(), 2);
 
        op = connection.processSearch(
            ByteString.valueOf("dc=replicationChanges"),
            SearchScope.WHOLE_SUBTREE,
            LDAPFilter.decode("(changetype=modify)"));
        assertEquals(op.getResultCode(), ResultCode.SUCCESS);
-       assertTrue(op.getSearchEntries().size() == 1);
+       assertEquals(op.getSearchEntries().size(), 1);
 
        op = connection.processSearch(
            ByteString.valueOf("dc=replicationChanges"),
            SearchScope.WHOLE_SUBTREE,
            LDAPFilter.decode("(changetype=moddn)"));
        assertEquals(op.getResultCode(), ResultCode.SUCCESS);
-       assertTrue(op.getSearchEntries().size() == 1);
+       assertEquals(op.getSearchEntries().size(), 1);
 
        op = connection.processSearch(
            ByteString.valueOf("dc=replicationChanges"),
            SearchScope.WHOLE_SUBTREE,
            LDAPFilter.decode("(changetype=delete)"));
        assertEquals(op.getResultCode(), ResultCode.SUCCESS);
-       assertTrue(op.getSearchEntries().size() == 1);
+       assertEquals(op.getSearchEntries().size(), 1);
 
        debugInfo("Query / filter based on objectclass");
        op = connection.processSearch(
@@ -1857,7 +1835,7 @@
            }
          }
          // Check that everything expected has been received
-         assertTrue(ts == 1, "Broker2 did not receive the complete set of"
+         assertEquals(ts, 1, "Broker2 did not receive the complete set of"
              + " expected messages: #msg received " + ts);
 
          // Then change the config to remove replicationServer[1] from

--
Gitblit v1.10.0