From 439544d24d842c19a0792f2612b5b088d992fc65 Mon Sep 17 00:00:00 2001
From: pgamba <pgamba@localhost>
Date: Tue, 25 Aug 2009 08:39:19 +0000
Subject: [PATCH] Fix 4184 ECL: lastExternalChangelogCookie contains info about private naming contexts

---
 opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java |   56 +++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 33 insertions(+), 23 deletions(-)

diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
index a2339f1..69f2d4a 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
@@ -578,6 +578,20 @@
     debugInfo(tn, "Starting test");
     try
     {
+      ReplicationBroker server01 = openReplicationSession(
+          DN.decode(TEST_ROOT_DN_STRING), (short) 1201, 
+          100, replicationServerPort,
+          1000, true);
+
+      // create and publish 1 change on each suffix
+      long time = TimeThread.getTime();
+      int ts = 1;
+      ChangeNumber cn1 = new ChangeNumber(time, ts++, (short)1201);
+      DeleteMsg delMsg1 =
+        new DeleteMsg("o=" + tn + "1," + TEST_ROOT_DN_STRING, cn1, "ECLBasicMsg1uid");
+      server01.publish(delMsg1);
+      debugInfo(tn, "publishes:" + delMsg1);
+
       // Initialize a second test backend o=test2, in addtion to o=test
       // Configure replication on this backend
       // Add the root entry in the backend
@@ -628,9 +642,10 @@
         for (SearchResultEntry resultEntry : entries)
         {
           // Expect 
-          debugInfo(tn, "Entry returned=" + resultEntry.toLDIFString());
+          debugInfo(tn, "Entry returned when test2 is public =" +
+              resultEntry.toLDIFString());
         }
-      assertEquals(entries.size(),1, "Entries number returned by search");
+      assertEquals(entries.size(),2, "Entries number returned by search");
 
       //
       // Set the backend private and do again a search on ECL that should
@@ -651,27 +666,26 @@
           controls,
           null);
       
-      // Expect success but no entry returned
+      // Expect success and only entry from o=test returned
       assertEquals(searchOp.getResultCode(), ResultCode.SUCCESS,
           searchOp.getErrorMessage().toString() + searchOp.getAdditionalLogMessage());
       entries = searchOp.getSearchEntries();
       assertTrue(entries != null);
-      assertTrue(entries.size()==0);
+      assertTrue(entries.size()==1);
+      if (entries != null)
+        for (SearchResultEntry resultEntry : entries)
+        {
+          // Expect 
+          debugInfo(tn, "Entry returned when test2 is private ="
+              + resultEntry.toLDIFString());
+        }
 
       //
       // Test lastExternalChangelogCookie attribute of the ECL
-      //
-      /* FIXME: uncomment when fix available
-      ExternalChangeLogSessionImpl session = 
-        new ExternalChangeLogSessionImpl(replicationServer);
+      // (does only refer to non private backend)
       MultiDomainServerState expectedLastCookie =
-        new MultiDomainServerState("o=test:;");
-      MultiDomainServerState lastCookie = session.getLastCookie();
-      assertTrue(expectedLastCookie.equalsTo(lastCookie),
-          " ExpectedLastCookie=" + expectedLastCookie +
-          " lastCookie=" + lastCookie);
+        new MultiDomainServerState("o=test:"+cn1+";");
       assertLastCookieEquals(tn, expectedLastCookie);
-      */
       
       // Cleaning
       if (domain2 != null)
@@ -679,6 +693,8 @@
       if (replicationPlugin != null)
         DirectoryServer.deregisterSynchronizationProvider(replicationPlugin);
       removeTestBackend2(backend2);
+      
+      server01.stop();
     }
     catch(Exception e)
     {
@@ -990,14 +1006,8 @@
       //
       // Test lastExternalChangelogCookie attribute of the ECL
       //
-      ExternalChangeLogSessionImpl session = 
-        new ExternalChangeLogSessionImpl(replicationServer);
       MultiDomainServerState expectedLastCookie =
         new MultiDomainServerState("o=test:"+cn5+" "+cn9+";o=test2:"+cn3+" "+cn8+";");
-      MultiDomainServerState lastCookie = session.getLastCookie();
-      assertTrue(expectedLastCookie.equalsTo(lastCookie),
-          " ExpectedLastCookie=" + expectedLastCookie +
-          " lastCookie=" + lastCookie);
       assertLastCookieEquals(tn, expectedLastCookie);
       
       s1test.stop();
@@ -1745,21 +1755,21 @@
       s1 = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
       org.opends.server.tools.LDAPReader r1 = new org.opends.server.tools.LDAPReader(s1);
       LDAPWriter w1 = new LDAPWriter(s1);
-      s1.setSoTimeout(5000);
+      s1.setSoTimeout(15000);
       bindAsManager(w1, r1);
 
       // Connects and bind
       s2 = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
       org.opends.server.tools.LDAPReader r2 = new org.opends.server.tools.LDAPReader(s2);
       LDAPWriter w2 = new LDAPWriter(s2);
-      s2.setSoTimeout(5000);
+      s2.setSoTimeout(15000);
       bindAsManager(w2, r2);
 
       // Connects and bind
       s3 = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
       org.opends.server.tools.LDAPReader r3 = new org.opends.server.tools.LDAPReader(s3);
       LDAPWriter w3 = new LDAPWriter(s3);
-      s3.setSoTimeout(5000);
+      s3.setSoTimeout(15000);
       bindAsManager(w3, r3);
 
       // Since we are going to be watching the post-response count, we need to

--
Gitblit v1.10.0