From dfbe880eb338a1d752ce790f689b5133761d7079 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 26 Sep 2013 07:35:55 +0000
Subject: [PATCH] OPENDJ-1116 Introduce abstraction for the changelog DB

---
 opends/tests/unit-tests-testng/src/server/org/opends/server/replication/DependencyTest.java |  126 +++++++++++++++++++----------------------
 1 files changed, 58 insertions(+), 68 deletions(-)

diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/DependencyTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/DependencyTest.java
index cb736d4..31abeda 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/DependencyTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/DependencyTest.java
@@ -48,6 +48,7 @@
 import org.opends.server.replication.server.ReplicationServer;
 import org.opends.server.replication.service.ReplicationBroker;
 import org.opends.server.types.*;
+import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 import static org.opends.server.TestCaseUtils.*;
@@ -61,6 +62,17 @@
 @SuppressWarnings("javadoc")
 public class DependencyTest extends ReplicationTestCase
 {
+
+  private final long CLEAN_DB_GENERATION_ID = 7883L;
+  private DN TEST_ROOT_DN;
+
+
+  @BeforeClass
+  public void setup() throws Exception
+  {
+     TEST_ROOT_DN = DN.decode(TEST_ROOT_DN_STRING);
+  }
+  
   /**
    * Check that a sequence of dependents adds and mods is correctly ordered:
    * Using a deep dit :
@@ -86,7 +98,7 @@
   {
     ReplicationServer replServer = null;
     LDAPReplicationDomain domain = null;
-    DN baseDn = DN.decode(TEST_ROOT_DN_STRING);
+    DN baseDN = TEST_ROOT_DN;
     int brokerId = 2;
     int serverId = 1;
     int replServerId = 81;
@@ -125,13 +137,13 @@
       replServer = new ReplicationServer(conf);
 
       ReplicationBroker broker =
-        openReplicationSession(baseDn, brokerId, 1000, replServerPort, 1000,
+        openReplicationSession(baseDN, brokerId, 1000, replServerPort, 1000,
                                false, CLEAN_DB_GENERATION_ID);
 
       Thread.sleep(2000);
       // send a sequence of add operation
 
-      String addDn = TEST_ROOT_DN_STRING;
+      DN addDN = TEST_ROOT_DN;
       CSNGenerator gen = new CSNGenerator(brokerId, 0L);
 
       int sequence;
@@ -140,16 +152,16 @@
         entry.removeAttribute(uidType);
         entry.addAttribute(Attributes.create("entryuuid", stringUID(sequence+1)),
                            new LinkedList<AttributeValue>());
-        addDn = "dc=dependency" + sequence + "," + addDn;
+        addDN = DN.decode("dc=dependency" + sequence + "," + addDN);
         AddMsg addMsg =
-          new AddMsg(gen.newCSN(), addDn, stringUID(sequence+1),
+          new AddMsg(gen.newCSN(), addDN, stringUID(sequence+1),
                      stringUID(sequence),
                      entry.getObjectClassAttribute(),
                      entry.getAttributes(), null );
         broker.publish(addMsg);
 
         ModifyMsg modifyMsg =
-          new ModifyMsg(gen.newCSN(), DN.decode(addDn),
+          new ModifyMsg(gen.newCSN(), addDN,
                         generatemods("description", "test"),
                         stringUID(sequence+1));
         broker.publish(modifyMsg);
@@ -158,32 +170,26 @@
       // configure and start replication of TEST_ROOT_DN_STRING on the server
       SortedSet<String> replServers = new TreeSet<String>();
       replServers.add("localhost:"+replServerPort);
-      DomainFakeCfg domainConf =
-        new DomainFakeCfg(baseDn, serverId, replServers);
+      DomainFakeCfg domainConf = new DomainFakeCfg(baseDN, serverId, replServers);
       domainConf.setHeartbeatInterval(100000);
 
       domain = MultimasterReplication.createNewDomain(domainConf);
       domain.start();
 
       // check that last entry in sequence got added.
-      Entry lastEntry = getEntry(DN.decode(addDn), 30000, true);
+      Entry lastEntry = getEntry(addDN, 30000, true);
       assertNotNull(lastEntry,
                     "The last entry of the ADD sequence was not added.");
 
       // Check that all the modify have been replayed
       // (all the entries should have a description).
-      addDn = TEST_ROOT_DN_STRING;
+      addDN = TEST_ROOT_DN;
       for (sequence = 1; sequence<=AddSequenceLength; sequence ++)
       {
-        addDn = "dc=dependency" + sequence + "," + addDn;
+        addDN = DN.decode("dc=dependency" + sequence + "," + addDN);
 
-        boolean found =
-          checkEntryHasAttribute(DN.decode(addDn), "description", "test",
-                                 10000, true);
-        if (!found)
-        {
-          fail("The modification was not replayed on entry " + addDn);
-        }
+        boolean found = checkEntryHasAttribute(addDN, "description", "test", 10000, true);
+        assertTrue(found, "The modification was not replayed on entry " + addDN);
       }
 
       /*
@@ -201,12 +207,10 @@
       Thread.sleep(2000);  // necesary because disable does not wait
                            // for full termination of all threads. (issue 1571)
 
-      DN deleteDN = DN.decode(addDn);
+      DN deleteDN = addDN;
       while (sequence-->1)
       {
-        DeleteMsg delMsg = new DeleteMsg(deleteDN.toString(),
-                                         gen.newCSN(),
-                                         stringUID(sequence + 1));
+        DeleteMsg delMsg = new DeleteMsg(deleteDN, gen.newCSN(), stringUID(sequence + 1));
         broker.publish(delMsg);
         deleteDN = deleteDN.getParent();
       }
@@ -225,7 +229,7 @@
     {
       remove(replServer);
       if (domain != null)
-        MultimasterReplication.deleteDomain(baseDn);
+        MultimasterReplication.deleteDomain(baseDN);
     }
   }
 
@@ -239,7 +243,7 @@
   {
     ReplicationServer replServer = null;
     LDAPReplicationDomain domain = null;
-    DN baseDn = DN.decode(TEST_ROOT_DN_STRING);
+    DN baseDN = TEST_ROOT_DN;
     int brokerId = 2;
     int serverId = 1;
     int replServerId = 82;
@@ -272,8 +276,7 @@
       // configure and start replication of TEST_ROOT_DN_STRING on the server
       SortedSet<String> replServers = new TreeSet<String>();
       replServers.add("localhost:"+replServerPort);
-      DomainFakeCfg domainConf =
-        new DomainFakeCfg(baseDn, serverId, replServers);
+      DomainFakeCfg domainConf = new DomainFakeCfg(baseDN, serverId, replServers);
       domainConf.setHeartbeatInterval(100000);
 
       Thread.sleep(2000);
@@ -281,7 +284,7 @@
       domain.start();
 
       ReplicationBroker broker =
-        openReplicationSession(baseDn, brokerId, 1000, replServerPort, 1000,
+        openReplicationSession(baseDN, brokerId, 1000, replServerPort, 1000,
                                false, CLEAN_DB_GENERATION_ID);
 
       // add an entry to play with.
@@ -289,9 +292,9 @@
       entry.addAttribute(Attributes.create("entryuuid",
                          stringUID(renamedEntryUuid)),
                          new LinkedList<AttributeValue>());
-      String addDn = "dc=moddndel" + "," + TEST_ROOT_DN_STRING;
+      DN addDN = DN.decode("dc=moddndel" + "," + TEST_ROOT_DN_STRING);
       AddMsg addMsg =
-        new AddMsg(gen.newCSN(), addDn, stringUID(renamedEntryUuid),
+          new AddMsg(gen.newCSN(), addDN, stringUID(renamedEntryUuid),
                    stringUID(1),
                    entry.getObjectClassAttribute(),
                    entry.getAttributes(), null );
@@ -299,11 +302,7 @@
       broker.publish(addMsg);
 
       // check that the entry was correctly added
-      boolean found =
-        checkEntryHasAttribute(DN.decode(addDn), "entryuuid",
-                               stringUID(renamedEntryUuid),
-                               30000, true);
-
+      boolean found = checkEntryHasAttribute(addDN, "entryuuid", stringUID(renamedEntryUuid), 30000, true);
       assertTrue(found, "The initial entry add failed");
 
 
@@ -313,12 +312,12 @@
 
       // rename and delete the entry.
       ModifyDNMsg moddnMsg =
-        new ModifyDNMsg(addDn, gen.newCSN(),
+          new ModifyDNMsg(addDN, gen.newCSN(),
                         stringUID(renamedEntryUuid),
                         stringUID(1), true, null, "dc=new_name");
       broker.publish(moddnMsg);
       DeleteMsg delMsg =
-        new DeleteMsg("dc=new_name" + "," + TEST_ROOT_DN_STRING,
+        new DeleteMsg(DN.decode("dc=new_name" + "," + TEST_ROOT_DN_STRING),
                       gen.newCSN(), stringUID(renamedEntryUuid));
       broker.publish(delMsg);
 
@@ -338,12 +337,10 @@
     {
       remove(replServer);
       if (domain != null)
-        MultimasterReplication.deleteDomain(baseDn);
+        MultimasterReplication.deleteDomain(baseDN);
     }
   }
 
-
-  private final long CLEAN_DB_GENERATION_ID =  7883L;
   /**
    * Clean the database and replace with a single entry.
    *
@@ -384,7 +381,7 @@
   {
     ReplicationServer replServer = null;
     LDAPReplicationDomain domain = null;
-    DN baseDn = DN.decode(TEST_ROOT_DN_STRING);
+    DN baseDN = TEST_ROOT_DN;
     int brokerId = 2;
     int serverId = 1;
     int replServerId = 83;
@@ -410,7 +407,7 @@
       replServer = new ReplicationServer(conf);
 
       ReplicationBroker broker =
-        openReplicationSession(baseDn, brokerId, 100, replServerPort, 1000,
+        openReplicationSession(baseDN, brokerId, 100, replServerPort, 1000,
                                false, CLEAN_DB_GENERATION_ID);
 
       // send a sequence of add/del/add operations
@@ -423,16 +420,16 @@
         entry.removeAttribute(uidType);
         entry.addAttribute(Attributes.create("entryuuid", stringUID(sequence+1)),
                            new LinkedList<AttributeValue>());
-        String addDn = "dc=dependency" + sequence + "," + TEST_ROOT_DN_STRING;
+        DN addDN = DN.decode("dc=dependency" + sequence + "," + TEST_ROOT_DN_STRING);
         AddMsg addMsg =
-          new AddMsg(gen.newCSN(), addDn, stringUID(sequence+1),
+          new AddMsg(gen.newCSN(), addDN, stringUID(sequence+1),
                      stringUID(1),
                      entry.getObjectClassAttribute(),
                      entry.getAttributes(), null );
         broker.publish(addMsg);
 
         // delete the entry
-        DeleteMsg delMsg = new DeleteMsg(addDn, gen.newCSN(),
+        DeleteMsg delMsg = new DeleteMsg(addDN, gen.newCSN(),
                                          stringUID(sequence+1));
         broker.publish(delMsg);
 
@@ -441,7 +438,7 @@
         entry.addAttribute(Attributes.create("entryuuid", stringUID(sequence+1025)),
                            new LinkedList<AttributeValue>());
         addMsg =
-          new AddMsg(gen.newCSN(), addDn, stringUID(sequence+1025),
+          new AddMsg(gen.newCSN(), addDN, stringUID(sequence+1025),
                      stringUID(1),
                      entry.getObjectClassAttribute(),
                      entry.getAttributes(), null );
@@ -451,9 +448,7 @@
       // configure and start replication of TEST_ROOT_DN_STRING on the server
       SortedSet<String> replServers = new TreeSet<String>();
       replServers.add("localhost:"+replServerPort);
-      DomainFakeCfg domainConf =
-        new DomainFakeCfg(baseDn, serverId, replServers);
-
+      DomainFakeCfg domainConf = new DomainFakeCfg(baseDN, serverId, replServers);
       domain = MultimasterReplication.createNewDomain(domainConf);
       domain.start();
 
@@ -475,7 +470,7 @@
 
       for (sequence = 1; sequence<=AddSequenceLength; sequence ++)
       {
-        String deleteDN = "dc=dependency" + sequence + "," + TEST_ROOT_DN_STRING;
+        DN deleteDN = DN.decode("dc=dependency" + sequence + "," + TEST_ROOT_DN_STRING);
         DeleteMsg delMsg = new DeleteMsg(deleteDN,
                                          gen.newCSN(),
                                          stringUID(sequence + 1025));
@@ -492,7 +487,7 @@
     {
       remove(replServer);
       if (domain != null)
-        MultimasterReplication.deleteDomain(baseDn);
+        MultimasterReplication.deleteDomain(baseDN);
     }
   }
 
@@ -505,7 +500,7 @@
   {
     ReplicationServer replServer = null;
     LDAPReplicationDomain domain = null;
-    DN baseDn = DN.decode(TEST_ROOT_DN_STRING);
+    DN baseDN = TEST_ROOT_DN;
     int brokerId = 2;
     int serverId = 1;
     int replServerId = 84;
@@ -532,11 +527,11 @@
       replServer = new ReplicationServer(conf);
 
       ReplicationBroker broker =
-        openReplicationSession(baseDn, brokerId, 100, replServerPort, 1000,
+        openReplicationSession(baseDN, brokerId, 100, replServerPort, 1000,
                                false, CLEAN_DB_GENERATION_ID);
 
 
-      String addDn = TEST_ROOT_DN_STRING;
+      DN addDN = TEST_ROOT_DN;
       CSNGenerator gen = new CSNGenerator(brokerId, 0L);
 
       // send a sequence of add/modrdn operations
@@ -547,9 +542,9 @@
         entry.removeAttribute(uidType);
         entry.addAttribute(Attributes.create("entryuuid", stringUID(sequence+1)),
                            new LinkedList<AttributeValue>());
-        addDn = "dc=dependency" + sequence + "," + TEST_ROOT_DN_STRING;
+        addDN = DN.decode("dc=dependency" + sequence + "," + TEST_ROOT_DN_STRING);
         AddMsg addMsg =
-          new AddMsg(gen.newCSN(), addDn, stringUID(sequence+1),
+          new AddMsg(gen.newCSN(), addDN, stringUID(sequence+1),
                      stringUID(1),
                      entry.getObjectClassAttribute(),
                      entry.getAttributes(), null );
@@ -557,7 +552,7 @@
 
         // rename the entry
         ModifyDNMsg moddnMsg =
-          new ModifyDNMsg(addDn, gen.newCSN(), stringUID(sequence+1),
+          new ModifyDNMsg(addDN, gen.newCSN(), stringUID(sequence+1),
                           stringUID(1), true, null, "dc=new_dep" + sequence);
         broker.publish(moddnMsg);
       }
@@ -565,29 +560,24 @@
       // configure and start replication of TEST_ROOT_DN_STRING on the server
       SortedSet<String> replServers = new TreeSet<String>();
       replServers.add("localhost:"+replServerPort);
-      DomainFakeCfg domainConf =
-        new DomainFakeCfg(baseDn, serverId, replServers);
-
+      DomainFakeCfg domainConf = new DomainFakeCfg(baseDN, serverId, replServers);
       domain = MultimasterReplication.createNewDomain(domainConf);
       domain.start();
 
       // check that all entries have been renamed
       for (sequence = 1; sequence<=AddSequenceLength; sequence ++)
       {
-        addDn = "dc=new_dep" + sequence + "," + TEST_ROOT_DN_STRING;
-
-        Entry baseEntry = getEntry(DN.decode(addDn), 30000, true);
+        addDN = DN.decode("dc=new_dep" + sequence + "," + TEST_ROOT_DN_STRING);
+        Entry baseEntry = getEntry(addDN, 30000, true);
         assertNotNull(baseEntry,
-          "The rename was not applied correctly on :" + addDn);
+          "The rename was not applied correctly on :" + addDN);
       }
 
       // delete the entries to clean the database.
       for (sequence = 1; sequence<=AddSequenceLength; sequence ++)
       {
-        addDn = "dc=new_dep" + sequence + "," + TEST_ROOT_DN_STRING;
-        DeleteMsg delMsg = new DeleteMsg(addDn.toString(),
-                                         gen.newCSN(),
-                                         stringUID(sequence + 1));
+        addDN = DN.decode("dc=new_dep" + sequence + "," + TEST_ROOT_DN_STRING);
+        DeleteMsg delMsg = new DeleteMsg(addDN, gen.newCSN(), stringUID(sequence + 1));
         broker.publish(delMsg);
       }
     }
@@ -595,7 +585,7 @@
     {
       remove(replServer);
       if (domain != null)
-        MultimasterReplication.deleteDomain(baseDn);
+        MultimasterReplication.deleteDomain(baseDN);
     }
   }
 

--
Gitblit v1.10.0