From 23f9030daa0f0d1585cca5550c52b8ed387ef151 Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Thu, 23 Nov 2006 11:00:49 +0000
Subject: [PATCH] improve the synchronization tests code by factorizing the common code in SynchronizationTestCase
---
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/UpdateOperationTest.java | 196 +-------------
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/ProtocolWindowTest.java | 189 -------------
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/StressTest.java | 165 ------------
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/SynchronizationTestCase.java | 178 +++++++++++++
4 files changed, 214 insertions(+), 514 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/ProtocolWindowTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/ProtocolWindowTest.java
index f9d43ba..be2f00b 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/ProtocolWindowTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/ProtocolWindowTest.java
@@ -30,17 +30,13 @@
import static org.opends.server.loggers.Error.logError;
import static org.testng.Assert.*;
-import java.net.SocketException;
import java.net.SocketTimeoutException;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import org.opends.server.TestCaseUtils;
-import org.opends.server.config.ConfigEntry;
-import org.opends.server.config.ConfigException;
import org.opends.server.core.AddOperation;
-import org.opends.server.core.DeleteOperation;
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.ModifyOperation;
import org.opends.server.core.Operation;
@@ -50,8 +46,6 @@
import org.opends.server.protocols.ldap.LDAPException;
import org.opends.server.protocols.ldap.LDAPFilter;
import org.opends.server.synchronization.plugin.ChangelogBroker;
-import org.opends.server.synchronization.plugin.MultimasterSynchronization;
-import org.opends.server.synchronization.plugin.PersistentServerState;
import org.opends.server.synchronization.protocol.AddMsg;
import org.opends.server.synchronization.protocol.SynchronizationMessage;
import org.opends.server.types.Attribute;
@@ -66,7 +60,6 @@
import org.opends.server.types.OperationType;
import org.opends.server.types.ResultCode;
import org.opends.server.types.SearchScope;
-import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@@ -83,58 +76,9 @@
"Synchronization Stress Test";
/**
- * The internal connection used for operation
- */
- private InternalClientConnection connection;
-
- /**
- * Created entries that need to be deleted for cleanup
- */
- private ArrayList<Entry> entryList = new ArrayList<Entry>();
-
- /**
- * The Synchronization config manager entry
- */
- private String synchroStringDN;
-
- /**
- * The synchronization plugin entry
- */
- private String synchroPluginStringDN;
-
- private Entry synchroPluginEntry;
-
- /**
- * The Server synchro entry
- */
- private String synchroServerStringDN;
-
- private Entry synchroServerEntry;
-
- /**
- * The Change log entry
- */
- private String changeLogStringDN;
-
- private Entry changeLogEntry;
-
- /**
* A "person" entry
*/
- private Entry personEntry;
-
- /**
- * schema check flag
- */
- private boolean schemaCheck;
-
- // WORKAROUND FOR BUG #639 - BEGIN -
- /**
- *
- */
- MultimasterSynchronization mms;
-
- // WORKAROUND FOR BUG #639 - END -
+ protected Entry personEntry;
/**
* Test the window mechanism by :
@@ -153,9 +97,9 @@
"Starting synchronization ProtocolWindowTest : saturateAndRestart" , 1);
final DN baseDn = DN.decode("ou=People,dc=example,dc=com");
- cleanEntries();
- ChangelogBroker broker = openChangelogSession(baseDn, (short) 13);
+ ChangelogBroker broker = openChangelogSession(baseDn, (short) 13,
+ WINDOW_SIZE);
try {
@@ -176,7 +120,7 @@
tmp.getObjectClasses(), tmp.getUserAttributes(),
tmp.getOperationalAttributes());
addOp.run();
- entryList.add(personEntry);
+ entryList.addLast(personEntry.getDN());
assertTrue(DirectoryServer.entryExists(personEntry.getDN()),
"The Add Entry operation failed");
@@ -320,11 +264,12 @@
entry.getUserAttributes(), entry.getOperationalAttributes());
addOp.setInternalOperation(true);
addOp.run();
- entryList.add(entry);
+ System.out.println("adding " + entry.getDN());
+ entryList.addLast(entry.getDN());
}
// top level synchro provider
- synchroStringDN = "cn=Synchronization Providers,cn=config";
+ String synchroStringDN = "cn=Synchronization Providers,cn=config";
// Multimaster Synchro plugin
synchroPluginStringDN = "cn=Multimaster Synchronization, "
@@ -339,7 +284,7 @@
synchroPluginEntry = TestCaseUtils.entryFromLdifString(synchroPluginLdif);
// Change log
- changeLogStringDN = "cn=Changelog Server, " + synchroPluginStringDN;
+ String changeLogStringDN = "cn=Changelog Server, " + synchroPluginStringDN;
String changeLogLdif = "dn: " + changeLogStringDN + "\n"
+ "objectClass: top\n"
+ "objectClass: ds-cfg-synchronization-changelog-server-config\n"
@@ -350,7 +295,7 @@
changeLogEntry = TestCaseUtils.entryFromLdifString(changeLogLdif);
// suffix synchronized
- synchroServerStringDN = "cn=example, " + synchroPluginStringDN;
+ String synchroServerStringDN = "cn=example, " + synchroPluginStringDN;
String synchroServerLdif = "dn: " + synchroServerStringDN + "\n"
+ "objectClass: top\n"
+ "objectClass: ds-cfg-synchronization-provider-config\n"
@@ -382,47 +327,6 @@
}
/**
- * Clean up the environment. return null;
- *
- * @throws Exception
- * If the environment could not be set up.
- */
- @AfterClass
- public void classCleanUp() throws Exception
- {
- DirectoryServer.setCheckSchema(schemaCheck);
-
- // WORKAROUND FOR BUG #639 - BEGIN -
- DirectoryServer.deregisterSynchronizationProvider(mms);
- mms.finalizeSynchronizationProvider();
- // WORKAROUND FOR BUG #639 - END -
-
- cleanEntries();
- }
-
- /**
- * suppress all the entries created by the tests in this class
- */
- private void cleanEntries()
- {
- DeleteOperation op;
- // Delete entries
- Entry entries[] = entryList.toArray(new Entry[0]);
- for (int i = entries.length - 1; i != 0; i--)
- {
- try
- {
- op = new DeleteOperation(connection, InternalClientConnection
- .nextOperationID(), InternalClientConnection.nextMessageID(), null,
- entries[i].getDN());
- op.run();
- } catch (Exception e)
- {
- }
- }
- }
-
- /**
* @return
*/
private List<Modification> generatemods(String attrName, String attrValue)
@@ -438,81 +342,6 @@
return mods;
}
- /**
- * Open a changelog session to the local Changelog server.
- *
- */
- private ChangelogBroker openChangelogSession(final DN baseDn, short serverId)
- throws Exception, SocketException
- {
- PersistentServerState state = new PersistentServerState(baseDn);
- state.loadState();
- ChangelogBroker broker =
- new ChangelogBroker(state, baseDn, serverId, 0, 0, 0, 0, WINDOW_SIZE);
- ArrayList<String> servers = new ArrayList<String>(1);
- servers.add("localhost:8989");
- broker.start(servers);
- broker.setSoTimeout(5000);
- /*
- * loop receiving update until there is nothing left
- * to make sure that message from previous tests have been consumed.
- */
- try
- {
- while (true)
- {
- broker.receive();
- }
- }
- catch (Exception e)
- { }
- return broker;
- }
-
- /**
- * Configure the Synchronization for this test.
- */
- private void configureSynchronization() throws Exception
- {
- //
- // Add the Multimaster synchronization plugin
- DirectoryServer.getConfigHandler().addEntry(synchroPluginEntry, null);
- entryList.add(synchroPluginEntry);
- assertNotNull(DirectoryServer.getConfigEntry(DN
- .decode(synchroPluginStringDN)),
- "Unable to add the Multimaster synchronization plugin");
-
- // WORKAROUND FOR BUG #639 - BEGIN -
- DN dn = DN.decode(synchroPluginStringDN);
- ConfigEntry mmsConfigEntry = DirectoryServer.getConfigEntry(dn);
- mms = new MultimasterSynchronization();
- try
- {
- mms.initializeSynchronizationProvider(mmsConfigEntry);
- }
- catch (ConfigException e)
- {
- assertTrue(false,
- "Unable to initialize the Multimaster synchronization plugin");
- }
- DirectoryServer.registerSynchronizationProvider(mms);
- // WORKAROUND FOR BUG #639 - END -
-
- //
- // Add the changelog server
- DirectoryServer.getConfigHandler().addEntry(changeLogEntry, null);
- assertNotNull(DirectoryServer.getConfigEntry(changeLogEntry.getDN()),
- "Unable to add the changeLog server");
- entryList.add(changeLogEntry);
-
- //
- // We also have a replicated suffix (synchronization domain)
- DirectoryServer.getConfigHandler().addEntry(synchroServerEntry, null);
- assertNotNull(DirectoryServer.getConfigEntry(synchroServerEntry.getDN()),
- "Unable to add the syncrhonized server");
- entryList.add(synchroServerEntry);
- }
-
private void processModify(int count)
{
while (count>0)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/StressTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/StressTest.java
index dae2748..8cfdec3 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/StressTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/StressTest.java
@@ -29,11 +29,9 @@
import static org.opends.server.loggers.Error.logError;
import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
import static org.testng.Assert.fail;
-import java.net.SocketException;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.LinkedList;
@@ -44,14 +42,11 @@
import org.opends.server.config.ConfigEntry;
import org.opends.server.config.ConfigException;
import org.opends.server.core.AddOperation;
-import org.opends.server.core.DeleteOperation;
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.ModifyOperation;
import org.opends.server.core.Operation;
import org.opends.server.protocols.internal.InternalClientConnection;
import org.opends.server.synchronization.plugin.ChangelogBroker;
-import org.opends.server.synchronization.plugin.MultimasterSynchronization;
-import org.opends.server.synchronization.plugin.PersistentServerState;
import org.opends.server.synchronization.protocol.AddMsg;
import org.opends.server.synchronization.protocol.SynchronizationMessage;
import org.opends.server.types.Attribute;
@@ -66,8 +61,6 @@
import org.opends.server.types.ModificationType;
import org.opends.server.types.OperationType;
import org.opends.server.types.ResultCode;
-import org.opends.server.util.TimeThread;
-import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@@ -81,58 +74,26 @@
"Synchronization Stress Test";
/**
- * The internal connection used for operation
- */
- private InternalClientConnection connection;
-
- /**
- * Created entries that need to be deleted for cleanup
- */
- private ArrayList<Entry> entryList = new ArrayList<Entry>();
-
- /**
* The Synchronization config manager entry
*/
private String synchroStringDN;
/**
- * The synchronization plugin entry
- */
- private String synchroPluginStringDN;
-
- private Entry synchroPluginEntry;
-
- /**
* The Server synchro entry
*/
private String synchroServerStringDN;
- private Entry synchroServerEntry;
-
/**
* The Change log entry
*/
private String changeLogStringDN;
- private Entry changeLogEntry;
-
+ private BrokerReader reader = null;
+
/**
* A "person" entry
*/
- private Entry personEntry;
-
- /**
- * schema check flag
- */
- private boolean schemaCheck;
-
- // WORKAROUND FOR BUG #639 - BEGIN -
- /**
- *
- */
- MultimasterSynchronization mms;
-
- private BrokerReader reader = null;
+ protected Entry personEntry;
// WORKAROUND FOR BUG #639 - END -
@@ -150,7 +111,7 @@
final int TOTAL_MESSAGES = 1000;
cleanEntries();
- ChangelogBroker broker = openChangelogSession(baseDn, (short) 18);
+ ChangelogBroker broker = openChangelogSession(baseDn, (short) 18, 100);
Monitor monitor = new Monitor("stress test monitor");
DirectoryServer.registerMonitorProvider(monitor);
@@ -181,7 +142,7 @@
tmp.getObjectClasses(), tmp.getUserAttributes(),
tmp.getOperationalAttributes());
addOp.run();
- entryList.add(personEntry);
+ entryList.add(personEntry.getDN());
assertTrue(DirectoryServer.entryExists(personEntry.getDN()),
"The Add Entry operation failed");
@@ -201,7 +162,6 @@
reader = new BrokerReader(broker);
reader.start();
- long startTime = TimeThread.getTime();
int count = TOTAL_MESSAGES;
// Create a number of writer thread that will loop modifying the entry
@@ -221,11 +181,7 @@
thread.join();
}
- long afterSendTime = TimeThread.getTime();
-
int rcvCount = reader.getCount();
-
- long afterReceiveTime = TimeThread.getTime();
if (rcvCount != TOTAL_MESSAGES)
{
@@ -253,13 +209,13 @@
// This test suite depends on having the schema available.
TestCaseUtils.startServer();
+ // Create an internal connection
+ connection = new InternalClientConnection();
+
// Disable schema check
schemaCheck = DirectoryServer.checkSchema();
DirectoryServer.setCheckSchema(false);
- // Create an internal connection
- connection = new InternalClientConnection();
-
// Create backend top level entries
String[] topEntries = new String[2];
topEntries[0] = "dn: dc=example,dc=com\n" + "objectClass: top\n"
@@ -277,7 +233,7 @@
entry.getUserAttributes(), entry.getOperationalAttributes());
addOp.setInternalOperation(true);
addOp.run();
- entryList.add(entry);
+ entryList.add(entry.getDN());
}
// top level synchro provider
@@ -335,47 +291,6 @@
}
/**
- * Clean up the environment. return null;
- *
- * @throws Exception
- * If the environment could not be set up.
- */
- @AfterClass
- public void classCleanUp() throws Exception
- {
- DirectoryServer.setCheckSchema(schemaCheck);
-
- // WORKAROUND FOR BUG #639 - BEGIN -
- DirectoryServer.deregisterSynchronizationProvider(mms);
- mms.finalizeSynchronizationProvider();
- // WORKAROUND FOR BUG #639 - END -
-
- cleanEntries();
- }
-
- /**
- * suppress all the entries created by the tests in this class
- */
- private void cleanEntries()
- {
- DeleteOperation op;
- // Delete entries
- Entry entries[] = entryList.toArray(new Entry[0]);
- for (int i = entries.length - 1; i != 0; i--)
- {
- try
- {
- op = new DeleteOperation(connection, InternalClientConnection
- .nextOperationID(), InternalClientConnection.nextMessageID(), null,
- entries[i].getDN());
- op.run();
- } catch (Exception e)
- {
- }
- }
- }
-
- /**
* @return
*/
private List<Modification> generatemods(String attrName, String attrValue)
@@ -391,68 +306,6 @@
return mods;
}
- /**
- * Open a changelog session to the local Changelog server.
- *
- */
- private ChangelogBroker openChangelogSession(final DN baseDn, short serverId)
- throws Exception, SocketException
- {
- PersistentServerState state = new PersistentServerState(baseDn);
- state.loadState();
- ChangelogBroker broker = new ChangelogBroker(state, baseDn,
- serverId, 0, 0, 0, 0, 100);
- ArrayList<String> servers = new ArrayList<String>(1);
- servers.add("localhost:8989");
- broker.start(servers);
- broker.setSoTimeout(5000);
- return broker;
- }
-
- /**
- * Configure the Synchronization for this test.
- */
- private void configureSynchronization() throws Exception
- {
- //
- // Add the Multimaster synchronization plugin
- DirectoryServer.getConfigHandler().addEntry(synchroPluginEntry, null);
- entryList.add(synchroPluginEntry);
- assertNotNull(DirectoryServer.getConfigEntry(DN
- .decode(synchroPluginStringDN)),
- "Unable to add the Multimaster synchronization plugin");
-
- // WORKAROUND FOR BUG #639 - BEGIN -
- DN dn = DN.decode(synchroPluginStringDN);
- ConfigEntry mmsConfigEntry = DirectoryServer.getConfigEntry(dn);
- mms = new MultimasterSynchronization();
- try
- {
- mms.initializeSynchronizationProvider(mmsConfigEntry);
- }
- catch (ConfigException e)
- {
- assertTrue(false,
- "Unable to initialize the Multimaster synchronization plugin");
- }
- DirectoryServer.registerSynchronizationProvider(mms);
- // WORKAROUND FOR BUG #639 - END -
-
- //
- // Add the changelog server
- DirectoryServer.getConfigHandler().addEntry(changeLogEntry, null);
- assertNotNull(DirectoryServer.getConfigEntry(changeLogEntry.getDN()),
- "Unable to add the changeLog server");
- entryList.add(changeLogEntry);
-
- //
- // We also have a replicated suffix (synchronization domain)
- DirectoryServer.getConfigHandler().addEntry(synchroServerEntry, null);
- assertNotNull(DirectoryServer.getConfigEntry(synchroServerEntry.getDN()),
- "Unable to add the synchronized server");
- entryList.add(synchroServerEntry);
- }
-
private class BrokerWriter extends Thread
{
int count;
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/SynchronizationTestCase.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/SynchronizationTestCase.java
index 4346d6d..d06ab1f 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/SynchronizationTestCase.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/SynchronizationTestCase.java
@@ -26,8 +26,27 @@
*/
package org.opends.server.synchronization;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
+
+import java.net.SocketException;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.NoSuchElementException;
+
import org.opends.server.DirectoryServerTestCase;
import org.opends.server.TestCaseUtils;
+import org.opends.server.config.ConfigEntry;
+import org.opends.server.config.ConfigException;
+import org.opends.server.core.DeleteOperation;
+import org.opends.server.core.DirectoryServer;
+import org.opends.server.protocols.internal.InternalClientConnection;
+import org.opends.server.synchronization.plugin.ChangelogBroker;
+import org.opends.server.synchronization.plugin.MultimasterSynchronization;
+import org.opends.server.synchronization.plugin.PersistentServerState;
+import org.opends.server.types.DN;
+import org.opends.server.types.Entry;
+import org.testng.annotations.AfterClass;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
@@ -40,6 +59,37 @@
{
/**
+ * The internal connection used for operation
+ */
+ protected InternalClientConnection connection;
+
+ /**
+ * Created entries that need to be deleted for cleanup
+ */
+ protected LinkedList<DN> entryList = new LinkedList<DN>();
+
+ protected Entry synchroPluginEntry;
+
+ protected Entry synchroServerEntry;
+
+ protected Entry changeLogEntry;
+
+ /**
+ * schema check flag
+ */
+ protected boolean schemaCheck;
+
+ /**
+ *
+ */
+ MultimasterSynchronization mms = null;
+
+ /**
+ * The synchronization plugin entry
+ */
+ protected String synchroPluginStringDN;
+
+ /**
* Set up the environment for performing the tests in this suite.
*
* @throws Exception
@@ -50,6 +100,134 @@
{
// This test suite depends on having the schema available.
TestCaseUtils.startServer();
+
+ // Create an internal connection
+ connection = new InternalClientConnection();
+ }
+
+ /**
+ * Open a changelog session to the local Changelog server.
+ * @param window_size
+ *
+ */
+ protected ChangelogBroker openChangelogSession(
+ final DN baseDn, short serverId, int window_size)
+ throws Exception, SocketException
+ {
+ PersistentServerState state = new PersistentServerState(baseDn);
+ state.loadState();
+ ChangelogBroker broker = new ChangelogBroker(
+ state, baseDn, serverId, 0, 0, 0, 0, window_size);
+ ArrayList<String> servers = new ArrayList<String>(1);
+ servers.add("localhost:8989");
+ broker.start(servers);
+ broker.setSoTimeout(1000);
+ /*
+ * loop receiving update until there is nothing left
+ * to make sure that message from previous tests have been consumed.
+ */
+ try
+ {
+ while (true)
+ {
+ broker.receive();
+ }
+ }
+ catch (Exception e)
+ { }
+ return broker;
+ }
+
+ /**
+ * suppress all the entries created by the tests in this class
+ */
+ protected void cleanEntries()
+ {
+ DeleteOperation op;
+ // Delete entries
+ try
+ {
+ while (true)
+ {
+ DN dn = entryList.removeLast();
+ System.out.println("removing : " + dn);
+ op = new DeleteOperation(connection, InternalClientConnection
+ .nextOperationID(), InternalClientConnection.nextMessageID(), null,
+ dn);
+
+ op.run();
+ System.out.println("removed : " + dn + " " + op.getResultCode());
+ }
+ }
+ catch (NoSuchElementException e) {
+ // done
+ }
+ }
+
+ /**
+ * Clean up the environment. return null;
+ *
+ * @throws Exception
+ * If the environment could not be set up.
+ */
+ @AfterClass
+ public void classCleanUp() throws Exception
+ {
+ DirectoryServer.setCheckSchema(schemaCheck);
+
+ // WORKAROUND FOR BUG #639 - BEGIN -
+ if (mms != null)
+ {
+ DirectoryServer.deregisterSynchronizationProvider(mms);
+ mms.finalizeSynchronizationProvider();
+ }
+ // WORKAROUND FOR BUG #639 - END -
+
+ cleanEntries();
+ }
+
+ /**
+ * Configure the Synchronization for this test.
+ */
+ protected void configureSynchronization() throws Exception
+ {
+ //
+ // Add the Multimaster synchronization plugin
+ DirectoryServer.getConfigHandler().addEntry(synchroPluginEntry, null);
+ entryList.add(synchroPluginEntry.getDN());
+ assertNotNull(DirectoryServer.getConfigEntry(DN
+ .decode(synchroPluginStringDN)),
+ "Unable to add the Multimaster synchronization plugin");
+
+ // WORKAROUND FOR BUG #639 - BEGIN -
+ DN dn = DN.decode(synchroPluginStringDN);
+ ConfigEntry mmsConfigEntry = DirectoryServer.getConfigEntry(dn);
+ mms = new MultimasterSynchronization();
+ try
+ {
+ mms.initializeSynchronizationProvider(mmsConfigEntry);
+ }
+ catch (ConfigException e)
+ {
+ assertTrue(false,
+ "Unable to initialize the Multimaster synchronization plugin");
+ }
+ DirectoryServer.registerSynchronizationProvider(mms);
+ // WORKAROUND FOR BUG #639 - END -
+
+ //
+ // Add the changelog server
+ DirectoryServer.getConfigHandler().addEntry(changeLogEntry, null);
+ assertNotNull(DirectoryServer.getConfigEntry(changeLogEntry.getDN()),
+ "Unable to add the changeLog server");
+ entryList.add(changeLogEntry.getDN());
+
+ //
+ // We also have a replicated suffix (synchronization domain)
+ DirectoryServer.getConfigHandler().addEntry(synchroServerEntry, null);
+ assertNotNull(DirectoryServer.getConfigEntry(synchroServerEntry.getDN()),
+ "Unable to add the synchronized server");
+ entryList.add(synchroServerEntry.getDN());
}
}
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/UpdateOperationTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/UpdateOperationTest.java
index 89609f1..31dc4cd 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/UpdateOperationTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/UpdateOperationTest.java
@@ -30,7 +30,6 @@
import static org.opends.server.loggers.Error.logError;
import static org.testng.Assert.*;
-import java.net.SocketException;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
@@ -42,15 +41,11 @@
import org.opends.server.schema.IntegerSyntax;
import org.opends.server.synchronization.common.ChangeNumberGenerator;
import org.opends.server.synchronization.plugin.ChangelogBroker;
-import org.opends.server.synchronization.plugin.MultimasterSynchronization;
-import org.opends.server.synchronization.plugin.PersistentServerState;
import org.opends.server.synchronization.protocol.AddMsg;
import org.opends.server.synchronization.protocol.DeleteMsg;
import org.opends.server.synchronization.protocol.ModifyDNMsg;
import org.opends.server.synchronization.protocol.ModifyMsg;
import org.opends.server.synchronization.protocol.SynchronizationMessage;
-import org.opends.server.config.ConfigEntry;
-import org.opends.server.config.ConfigException;
import org.opends.server.core.AddOperation;
import org.opends.server.core.DeleteOperation;
import org.opends.server.core.DirectoryServer;
@@ -61,7 +56,6 @@
import org.opends.server.protocols.internal.InternalSearchOperation;
import org.opends.server.protocols.ldap.LDAPFilter;
import org.opends.server.types.*;
-import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -72,65 +66,12 @@
*/
public class UpdateOperationTest extends SynchronizationTestCase
{
-
- /**
- * The internal connection used for operation
- */
- private InternalClientConnection connection;
-
- /**
- * Created entries that need to be deleted for cleanup
- */
- private ArrayList<Entry> entryList = new ArrayList<Entry>();
-
- /**
- * The Synchronization config manager entry
- */
- private String synchroStringDN;
-
- /**
- * The synchronization plugin entry
- */
- private String synchroPluginStringDN;
-
- private Entry synchroPluginEntry;
-
- /**
- * The Server synchro entry
- */
- private String synchroServerStringDN;
-
- private Entry synchroServerEntry;
-
- /**
- * The Change log entry
- */
- private String changeLogStringDN;
-
- private Entry changeLogEntry;
-
- /**
- * A "person" entry
- */
- private Entry personEntry;
-
/**
* An entry with a entryUUID
*/
private Entry personWithUUIDEntry;
private Entry personWithSecondUniqueID;
- /**
- * schema check flag
- */
- private boolean schemaCheck;
-
- // WORKAROUND FOR BUG #639 - BEGIN -
- /**
- *
- */
- MultimasterSynchronization mms;
-
private String baseUUID;
private String user1dn;
@@ -138,8 +79,11 @@
private String user1entrysecondUUID;
private String user1entryUUID;
-
- // WORKAROUND FOR BUG #639 - END -
+
+ /**
+ * A "person" entry
+ */
+ protected Entry personEntry;
/**
* Set up the environment for performing the tests in this Class.
@@ -179,13 +123,13 @@
entry.getUserAttributes(), entry.getOperationalAttributes());
addOp.setInternalOperation(true);
addOp.run();
- entryList.add(entry);
+ entryList.add(entry.getDN());
}
baseUUID = getEntryUUID(DN.decode("ou=People,dc=example,dc=com"));
// top level synchro provider
- synchroStringDN = "cn=Synchronization Providers,cn=config";
+ String synchroStringDN = "cn=Synchronization Providers,cn=config";
// Multimaster Synchro plugin
synchroPluginStringDN = "cn=Multimaster Synchronization, "
@@ -200,7 +144,7 @@
synchroPluginEntry = TestCaseUtils.entryFromLdifString(synchroPluginLdif);
// Change log
- changeLogStringDN = "cn=Changelog Server, " + synchroPluginStringDN;
+ String changeLogStringDN = "cn=Changelog Server, " + synchroPluginStringDN;
String changeLogLdif = "dn: " + changeLogStringDN + "\n"
+ "objectClass: top\n"
+ "objectClass: ds-cfg-synchronization-changelog-server-config\n"
@@ -209,7 +153,7 @@
changeLogEntry = TestCaseUtils.entryFromLdifString(changeLogLdif);
// suffix synchronized
- synchroServerStringDN = "cn=example, " + synchroPluginStringDN;
+ String synchroServerStringDN = "cn=example, " + synchroPluginStringDN;
String synchroServerLdif = "dn: " + synchroServerStringDN + "\n"
+ "objectClass: top\n"
+ "objectClass: ds-cfg-synchronization-provider-config\n"
@@ -282,48 +226,6 @@
}
/**
- * Clean up the environment. return null;
- *
- * @throws Exception
- * If the environment could not be set up.
- */
- @AfterClass
- public void classCleanUp() throws Exception
- {
-
- DirectoryServer.setCheckSchema(schemaCheck);
-
- // WORKAROUND FOR BUG #639 - BEGIN -
- DirectoryServer.deregisterSynchronizationProvider(mms);
- mms.finalizeSynchronizationProvider();
- // WORKAROUND FOR BUG #639 - END -
-
- cleanEntries();
- }
-
- /**
- * suppress all the entries created by the tests in this class
- */
- private void cleanEntries()
- {
- DeleteOperation op;
- // Delete entries
- Entry entries[] = entryList.toArray(new Entry[0]);
- for (int i = entries.length - 1; i != 0; i--)
- {
- try
- {
- op = new DeleteOperation(connection, InternalClientConnection
- .nextOperationID(), InternalClientConnection.nextMessageID(), null,
- entries[i].getDN());
- op.run();
- } catch (Exception e)
- {
- }
- }
- }
-
- /**
* Tests the naming conflict resolution code.
* In this test, the local server act both as an LDAP server and
* a changelog server that are inter-connected.
@@ -346,7 +248,7 @@
* Open a session to the changelog server using the Changelog broker API.
* This must use a serverId different from the LDAP server ID
*/
- ChangelogBroker broker = openChangelogSession(baseDn, (short) 2);
+ ChangelogBroker broker = openChangelogSession(baseDn, (short) 2, 100);
/*
* Create a Change number generator to generate new changenumbers
@@ -375,7 +277,7 @@
Entry resultEntry = getEntry(personWithUUIDEntry.getDN(), 10000, true);
assertNotNull(resultEntry,
"The send ADD synchronization message was not applied");
- entryList.add(resultEntry);
+ entryList.add(resultEntry.getDN());
// send a modify operation with the correct unique ID but another DN
List<Modification> mods = generatemods("telephonenumber", "01 02 45");
@@ -412,7 +314,7 @@
resultEntry = getEntry(personWithUUIDEntry.getDN(), 10000, true);
assertNotNull(resultEntry,
"The ADD synchronization message was not applied");
- entryList.add(resultEntry);
+ entryList.add(resultEntry.getDN());
// send a modify operation with a wrong unique ID but the same DN
mods = generatemods("telephonenumber", "02 01 03 05");
@@ -464,7 +366,7 @@
resultEntry = getEntry(personWithUUIDEntry.getDN(), 10000, true);
assertNotNull(resultEntry,
"The ADD synchronization message was not applied");
- entryList.add(resultEntry);
+ entryList.add(resultEntry.getDN());
// create an entry with the same DN and another unique ID
addMsg = new AddMsg(gen.NewChangeNumber(),
@@ -658,7 +560,7 @@
cleanEntries();
- ChangelogBroker broker = openChangelogSession(baseDn, (short) 27);
+ ChangelogBroker broker = openChangelogSession(baseDn, (short) 27, 100);
try {
ChangeNumberGenerator gen = new ChangeNumberGenerator((short) 27, 0);
@@ -688,7 +590,7 @@
tmp.getObjectClasses(), tmp.getUserAttributes(),
tmp.getOperationalAttributes());
addOp.run();
- entryList.add(personEntry);
+ entryList.add(personEntry.getDN());
assertTrue(DirectoryServer.entryExists(personEntry.getDN()),
"The Add Entry operation failed");
@@ -787,7 +689,7 @@
Entry resultEntry = getEntry(personWithUUIDEntry.getDN(), 10000, true);
assertNotNull(resultEntry,
"The send ADD synchronization message was not applied");
- entryList.add(resultEntry);
+ entryList.add(resultEntry.getDN());
/*
* Test the reception of Modify Msg
@@ -858,24 +760,6 @@
}
/**
- * Open a changelog session to the local Changelog server.
- *
- */
- private ChangelogBroker openChangelogSession(final DN baseDn, short serverId)
- throws Exception, SocketException
- {
- PersistentServerState state = new PersistentServerState(baseDn);
- state.loadState();
- ChangelogBroker broker = new ChangelogBroker(state, baseDn,
- serverId, 0, 0, 0, 0, 100);
- ArrayList<String> servers = new ArrayList<String>(1);
- servers.add("localhost:8989");
- broker.start(servers);
- broker.setSoTimeout(1000);
- return broker;
- }
-
- /**
* Check that the entry with the given dn has the given valueString value
* for the given attrTypeStr attribute type.
*/
@@ -1037,50 +921,6 @@
}
/**
- * Configure the Synchronization for this test.
- */
- private void configureSynchronization() throws Exception
- {
- //
- // Add the Multimaster synchronization plugin
- DirectoryServer.getConfigHandler().addEntry(synchroPluginEntry, null);
- entryList.add(synchroPluginEntry);
- assertNotNull(DirectoryServer.getConfigEntry(DN
- .decode(synchroPluginStringDN)),
- "Unable to add the Multimaster synchronization plugin");
-
- // WORKAROUND FOR BUG #639 - BEGIN -
- DN dn = DN.decode(synchroPluginStringDN);
- ConfigEntry mmsConfigEntry = DirectoryServer.getConfigEntry(dn);
- mms = new MultimasterSynchronization();
- try
- {
- mms.initializeSynchronizationProvider(mmsConfigEntry);
- }
- catch (ConfigException e)
- {
- assertTrue(false,
- "Unable to initialize the Multimaster synchronization plugin");
- }
- DirectoryServer.registerSynchronizationProvider(mms);
- // WORKAROUND FOR BUG #639 - END -
-
- //
- // Add the changelog server
- DirectoryServer.getConfigHandler().addEntry(changeLogEntry, null);
- assertNotNull(DirectoryServer.getConfigEntry(changeLogEntry.getDN()),
- "Unable to add the changeLog server");
- entryList.add(changeLogEntry);
-
- //
- // We also have a replicated suffix (synchronization domain)
- DirectoryServer.getConfigHandler().addEntry(synchroServerEntry, null);
- assertNotNull(DirectoryServer.getConfigEntry(synchroServerEntry.getDN()),
- "Unable to add the syncrhonized server");
- entryList.add(synchroServerEntry);
- }
-
- /**
* Test case for
* [Issue 635] NullPointerException when trying to access non existing entry.
*/
@@ -1116,7 +956,7 @@
final DN baseDn = DN.decode("ou=People,dc=example,dc=com");
Thread.sleep(2000);
- ChangelogBroker broker = openChangelogSession(baseDn, (short) 11);
+ ChangelogBroker broker = openChangelogSession(baseDn, (short) 11, 100);
try
{
ChangeNumberGenerator gen = new ChangeNumberGenerator((short) 11, 0);
@@ -1147,7 +987,7 @@
tmp.getOperationalAttributes());
addOp.run();
assertEquals(addOp.getResultCode(), ResultCode.SUCCESS);
- entryList.add(tmp);
+ entryList.add(tmp.getDN());
long initialCount = getReplayedUpdatesCount();
--
Gitblit v1.10.0