From b48ce50fdf4d73e8be3799e3a7c6c2bf9d1b2965 Mon Sep 17 00:00:00 2001
From: pgamba <pgamba@localhost>
Date: Sun, 02 Sep 2007 17:58:07 +0000
Subject: [PATCH] fix for #1733 & #845 - Initialization of replication
---
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/DbHandlerTest.java | 73 ++++++++++++++++++++++++++++++++++++
1 files changed, 72 insertions(+), 1 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/DbHandlerTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/DbHandlerTest.java
index 3488877..46f45bb 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/DbHandlerTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/DbHandlerTest.java
@@ -73,7 +73,7 @@
ReplicationDbEnv dbEnv = new ReplicationDbEnv(path, replicationServer);
DbHandler handler =
- new DbHandler((short) 1, DN.decode("o=test"), replicationServer, dbEnv);
+ new DbHandler((short) 1, DN.decode("o=test"), replicationServer, dbEnv, 1);
ChangeNumberGenerator gen = new ChangeNumberGenerator((short)1, 0);
ChangeNumber changeNumber1 = gen.newChangeNumber();
@@ -118,4 +118,75 @@
TestCaseUtils.deleteDirectory(testRoot);
}
+ /*
+ * Test the feature of clearing a dbHandler used by a replication server.
+ * The clear feature is used when a replication server receives a request
+ * to reset the generationId of a given domain.
+ */
+ @Test()
+ void testDbHandlerClear() throws Exception
+ {
+ TestCaseUtils.startServer();
+
+ // find a free port for the replicationServer
+ ServerSocket socket = TestCaseUtils.bindFreePort();
+ int changelogPort = socket.getLocalPort();
+ socket.close();
+
+ // configure a ReplicationServer.
+ ReplServerFakeConfiguration conf =
+ new ReplServerFakeConfiguration(changelogPort, null, 0,
+ 2, 0, 100, null);
+ ReplicationServer replicationServer = new ReplicationServer(conf);
+
+ // create or clean a directory for the dbHandler
+ String buildRoot = System.getProperty(TestCaseUtils.PROPERTY_BUILD_ROOT);
+ String path = buildRoot + File.separator + "build" + File.separator +
+ "unit-tests" + File.separator + "dbHandler";
+ File testRoot = new File(path);
+ if (testRoot.exists())
+ {
+ TestCaseUtils.deleteDirectory(testRoot);
+ }
+ testRoot.mkdirs();
+
+ ReplicationDbEnv dbEnv = new ReplicationDbEnv(path, replicationServer);
+
+ DbHandler handler =
+ new DbHandler((short) 1, DN.decode("o=test"), replicationServer, dbEnv, 1);
+
+ // Creates changes added to the dbHandler
+ ChangeNumberGenerator gen = new ChangeNumberGenerator((short)1, 0);
+ ChangeNumber changeNumber1 = gen.newChangeNumber();
+ ChangeNumber changeNumber2 = gen.newChangeNumber();
+ ChangeNumber changeNumber3 = gen.newChangeNumber();
+
+ DeleteMsg update1 = new DeleteMsg("o=test", changeNumber1, "uid");
+ DeleteMsg update2 = new DeleteMsg("o=test", changeNumber2, "uid");
+ DeleteMsg update3 = new DeleteMsg("o=test", changeNumber3, "uid");
+
+ // Add the changes
+ handler.add(update1);
+ handler.add(update2);
+ handler.add(update3);
+
+ // Check they are here
+ assertEquals(changeNumber1, handler.getFirstChange());
+ assertEquals(changeNumber3, handler.getLastChange());
+
+ // Clear ...
+ handler.clear();
+
+ // Check the db is cleared.
+ assertEquals(null, handler.getFirstChange());
+ assertEquals(null, handler.getLastChange());
+
+ handler.shutdown();
+ dbEnv.shutdown();
+ replicationServer.shutdown();
+
+ TestCaseUtils.deleteDirectory(testRoot);
+ }
+
+
}
--
Gitblit v1.10.0