From ba9fd7603b32935b521191d87891b8e1ae4642e5 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 28 Nov 2013 15:36:10 +0000
Subject: [PATCH] Code cleanup.
---
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java | 348 ++++++++++++++++++++-------------------------------------
1 files changed, 121 insertions(+), 227 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java
index 10664ec..2f65a6f 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java
@@ -69,11 +69,7 @@
import org.opends.server.workflowelement.externalchangelog.ECLSearchOperation;
import org.opends.server.workflowelement.externalchangelog.ECLWorkflowElement;
import org.opends.server.workflowelement.localbackend.LocalBackendModifyDNOperation;
-import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
+import org.testng.annotations.*;
import static org.assertj.core.api.Assertions.*;
import static org.opends.messages.ReplicationMessages.*;
@@ -547,13 +543,11 @@
String tn = "ECLEmpty";
debugInfo(tn, "Starting test\n\n");
- InternalSearchOperation op2 =
- searchOnChangelog("(objectclass=*)", new LinkedHashSet<String>(0),
- createControls(""));
- waitOpResult(op2, ResultCode.SUCCESS);
-
// root entry returned
- assertEquals(op2.getEntriesSent(), 1);
+ final InternalSearchOperation op = searchOnChangelog(
+ "(objectclass=*)", Collections.<String>emptySet(), createControls(""), 1, tn);
+ waitOpResult(op, ResultCode.SUCCESS);
+
debugInfo(tn, "Ending test successfully");
}
@@ -624,28 +618,18 @@
Thread.sleep(1000);
addEntry(createEntry(baseDN2));
- Thread.sleep(2000);
// Search on ECL from start on all suffixes
- String cookie = "";
- InternalSearchOperation searchOp =
- searchOnCookieChangelog("(targetDN=*)", cookie, tn, SUCCESS);
-
// Expect root entry returned
- List<SearchResultEntry> entries = searchOp.getSearchEntries();
- assertThat(entries).hasSize(2);
- debugAndWriteEntries(null, entries, tn);
+ String cookie = "";
+ searchOnCookieChangelog("(targetDN=*)", cookie, 2, tn, SUCCESS);
ExternalChangelogDomainCfg eclCfg = new ExternalChangelogDomainFakeCfg(false, null, null);
domainConf.setExternalChangelogDomain(eclCfg);
domain2.applyConfigurationChange(domainConf);
- searchOp = searchOnCookieChangelog("(targetDN=*)", cookie, tn, SUCCESS);
-
// Expect only entry from o=test returned
- entries = searchOp.getSearchEntries();
- assertThat(entries).hasSize(1);
- debugAndWriteEntries(null, entries, tn);
+ searchOnCookieChangelog("(targetDN=*)", cookie, 1, tn, SUCCESS);
// Test lastExternalChangelogCookie attribute of the ECL
// (does only refer to non private backend)
@@ -684,8 +668,6 @@
{
backend2 = initializeTestBackend(true, TEST_BACKEND_ID2);
- LDIFWriter ldifWriter = getLDIFWriter();
-
s1test = openReplicationSession(TEST_ROOT_DN, SERVER_ID_1,
100, replicationServerPort, brokerSessionTimeout, true);
@@ -707,7 +689,6 @@
CSN csn4 = new CSN(time, ts++, s1test.getServerId());
publishDeleteMsgInOTest(s1test, csn4, tn, 4);
- Thread.sleep(1500);
// Changes are :
// s1 s2
@@ -715,34 +696,30 @@
// o=test2 msg2/msg2
// search on 'cn=changelog'
+ LDIFWriter ldifWriter = getLDIFWriter();
String cookie = "";
InternalSearchOperation searchOp =
- searchOnCookieChangelog("(targetDN=*" + tn + "*)", cookie, tn, SUCCESS);
-
- List<SearchResultEntry> entries = searchOp.getSearchEntries();
- assertThat(entries).hasSize(4);
- debugAndWriteEntries(ldifWriter, entries, tn);
- cookie = readCookie(entries, 2);
+ searchOnCookieChangelog("(targetDN=*" + tn + "*)", cookie, 4, tn, SUCCESS);
+ cookie = readCookie(searchOp.getSearchEntries(), 2);
// Now start from last cookie and expect to get ONLY the 4th change
- searchOp = searchOnCookieChangelog("(targetDN=*" + tn + "*)", cookie, tn, SUCCESS);
+ searchOp = searchOnCookieChangelog("(targetDN=*" + tn + "*)", cookie, 1, tn, SUCCESS);
cookie = assertContainsAndReadCookie(tn, searchOp.getSearchEntries(), ldifWriter, csn4);
// Now publishes a new change and search from the previous cookie
CSN csn5 = new CSN(time, ts++, s1test.getServerId());
publishDeleteMsgInOTest(s1test, csn5, tn, 5);
- Thread.sleep(500);
// Changes are :
// s1 s2
// o=test msg1,msg5 msg4
// o=test2 msg3 msg2
- searchOp = searchOnCookieChangelog("(targetDN=*" + tn + "*)", cookie, tn, SUCCESS);
+ searchOp = searchOnCookieChangelog("(targetDN=*" + tn + "*)", cookie, 1,tn, SUCCESS);
cookie = assertContainsAndReadCookie(tn, searchOp.getSearchEntries(), ldifWriter, csn5);
cookie = "";
- searchOp = searchOnCookieChangelog("(targetDN=*" + tn + "*,o=test)", cookie, tn, SUCCESS);
+ searchOp = searchOnCookieChangelog("(targetDN=*" + tn + "*,o=test)", cookie, 3, tn, SUCCESS);
// we expect msg1 + msg4 + msg5
cookie = assertContainsAndReadCookie(tn, searchOp.getSearchEntries(), ldifWriter, csn1, csn4, csn5);
@@ -791,9 +768,8 @@
// Test invalid cookie
cookie += ";o=test6:";
debugInfo(tn, "Search with bad domain in cookie=" + cookie);
- searchOp = searchOnCookieChangelog("(targetDN=*" + tn + "*,o=test)", cookie, tn,
+ searchOp = searchOnCookieChangelog("(targetDN=*" + tn + "*,o=test)", cookie, 0, tn,
PROTOCOL_ERROR);
- assertEquals(searchOp.getSearchEntries().size(), 0);
final String cookieStr = new MultiDomainServerState(cookie).toString();
Assertions.assertThat(searchOp.getErrorMessage().toString()).startsWith(
ERR_INVALID_COOKIE_SYNTAX.get(cookieStr).toString());
@@ -804,16 +780,14 @@
// let's do a very quick test here.
String newCookie = lastCookie + "o=test6:";
debugInfo(tn, "Search with bad domain in cookie=" + cookie);
- searchOp = searchOnCookieChangelog("(targetDN=*" + tn + "*,o=test)", newCookie,
+ searchOp = searchOnCookieChangelog("(targetDN=*" + tn + "*,o=test)", newCookie, 0,
tn, UNWILLING_TO_PERFORM);
- assertEquals(searchOp.getSearchEntries().size(), 0);
// Test missing domain in provided cookie
newCookie = lastCookie.substring(lastCookie.indexOf(';')+1);
debugInfo(tn, "Search with bad domain in cookie=" + cookie);
- searchOp = searchOnCookieChangelog("(targetDN=*" + tn + "*,o=test)", newCookie,
+ searchOp = searchOnCookieChangelog("(targetDN=*" + tn + "*,o=test)", newCookie, 0,
tn, UNWILLING_TO_PERFORM);
- assertEquals(searchOp.getSearchEntries().size(), 0);
String expectedError = ERR_RESYNC_REQUIRED_MISSING_DOMAIN_IN_PROVIDED_COOKIE
.get("o=test:;","<"+ newCookie + "o=test:;>").toString();
assertThat(searchOp.getErrorMessage().toString()).isEqualToIgnoringCase(expectedError);
@@ -882,41 +856,55 @@
}
private InternalSearchOperation searchOnCookieChangelog(String filterString,
- String cookie, String testName, ResultCode expectedResultCode)
+ String cookie, int expectedNbEntries, String testName, ResultCode expectedResultCode)
throws Exception
{
- debugInfo(testName, "Search with cookie=[" + cookie + "] filter=["
- + filterString + "]");
- InternalSearchOperation searchOp =
- searchOnChangelog(filterString, ALL_ATTRIBUTES, createControls(cookie));
+ debugInfo(testName, "Search with cookie=[" + cookie + "] filter=[" + filterString + "]");
+ final InternalSearchOperation searchOp = searchOnChangelog(
+ filterString, ALL_ATTRIBUTES, createControls(cookie), expectedNbEntries, testName);
waitOpResult(searchOp, expectedResultCode);
return searchOp;
}
private InternalSearchOperation searchOnChangelog(String filterString,
- String testName, ResultCode expectedResultCode) throws Exception
+ int expectedNbEntries, String testName, ResultCode expectedResultCode)
+ throws Exception
{
debugInfo(testName, " Search: " + filterString);
- InternalSearchOperation searchOp =
- searchOnChangelog(filterString, ALL_ATTRIBUTES, NO_CONTROL);
+ final InternalSearchOperation searchOp = searchOnChangelog(
+ filterString, ALL_ATTRIBUTES, NO_CONTROL, expectedNbEntries, testName);
waitOpResult(searchOp, expectedResultCode);
return searchOp;
}
private InternalSearchOperation searchOnChangelog(String filterString,
- Set<String> attributes, List<Control> controls) throws Exception
+ Set<String> attributes, List<Control> controls, int expectedNbEntries,
+ String testName) throws Exception
{
- return connection.processSearch(
- "cn=changelog",
- SearchScope.WHOLE_SUBTREE,
- DereferencePolicy.NEVER_DEREF_ALIASES,
- 0, // Size limit
- 0, // Time limit
- false, // Types only
- filterString,
- attributes,
- controls,
- null);
+ InternalSearchOperation op = null;
+ int cnt = 0;
+ do
+ {
+ Thread.sleep(10);
+ op = connection.processSearch(
+ "cn=changelog",
+ SearchScope.WHOLE_SUBTREE,
+ DereferencePolicy.NEVER_DEREF_ALIASES,
+ 0, // Size limit
+ 0, // Time limit
+ false, // Types only
+ filterString,
+ attributes,
+ controls,
+ null);
+ cnt++;
+ }
+ while (cnt < 100 // wait at most 1s
+ && op.getSearchEntries().size() != expectedNbEntries);
+ final List<SearchResultEntry> entries = op.getSearchEntries();
+ assertThat(entries).hasSize(expectedNbEntries);
+ debugAndWriteEntries(getLDIFWriter(), entries, testName);
+ return op;
}
/** Test ECL content after replication changelogDB trimming */
@@ -952,31 +940,19 @@
// so that this test can play with a trimmed changelog.
replicationServer.getChangelogDB().setPurgeDelay(1);
- // Sleep longer than this delay - so that the changelog is trimmed
- Thread.sleep(1000);
- LDIFWriter ldifWriter = getLDIFWriter();
-
// ---
// 3. Assert that a request with an empty cookie returns nothing
+ // since replication changelog has been trimmed
String cookie= "";
InternalSearchOperation searchOp =
- searchOnCookieChangelog("(targetDN=*)", cookie, tn, SUCCESS);
-
- List<SearchResultEntry> entries = searchOp.getSearchEntries();
- // Assert ECL is empty since replication changelog has been trimmed
- assertThat(entries).hasSize(0);
- debugAndWriteEntries(ldifWriter, entries, tn);
+ searchOnCookieChangelog("(targetDN=*)", cookie, 0, tn, SUCCESS);
// ---
// 4. Assert that a request with the current last cookie returns nothing
+ // since replication changelog has been trimmed
cookie = readLastCookie();
debugInfo(tn, "2. Search with last cookie=" + cookie + "\"");
- searchOp = searchOnCookieChangelog("(targetDN=*)", cookie, tn, SUCCESS);
-
- entries = searchOp.getSearchEntries();
- // Assert ECL is empty since replication changelog has been trimmed
- assertThat(entries).hasSize(0);
- debugAndWriteEntries(ldifWriter, entries, tn);
+ searchOp = searchOnCookieChangelog("(targetDN=*)", cookie, 0, tn, SUCCESS);
// ---
// 5. Assert that a request with an "old" cookie - one that refers to
@@ -984,8 +960,7 @@
// returns the appropriate error.
debugInfo(tn, "d1 trimdate" + getDomainOldestState(TEST_ROOT_DN));
debugInfo(tn, "d2 trimdate" + getDomainOldestState(TEST_ROOT_DN2));
- searchOp = searchOnCookieChangelog("(targetDN=*)", cookieNotEmpty, tn, UNWILLING_TO_PERFORM);
- assertEquals(searchOp.getSearchEntries().size(), 0);
+ searchOp = searchOnCookieChangelog("(targetDN=*)", cookieNotEmpty, 0, tn, UNWILLING_TO_PERFORM);
assertTrue(searchOp.getErrorMessage().toString().startsWith(
ERR_RESYNC_REQUIRED_TOO_OLD_DOMAIN_IN_PROVIDED_COOKIE.get(TEST_ROOT_DN_STRING).toString()),
searchOp.getErrorMessage().toString());
@@ -1044,8 +1019,6 @@
ReplicationBroker server02 = null;
try
{
- LDIFWriter ldifWriter = getLDIFWriter();
-
// Creates broker on o=test
server01 = openReplicationSession(TEST_ROOT_DN, SERVER_ID_1,
100, replicationServerPort, brokerSessionTimeout, true);
@@ -1057,7 +1030,8 @@
String user1entryUUID = "11111111-1111-1111-1111-111111111111";
String baseUUID = "22222222-2222-2222-2222-222222222222";
- CSN[] csns = generateCSNs(4, SERVER_ID_1);
+ final int expectedNbEntries = 4;
+ CSN[] csns = generateCSNs(expectedNbEntries, SERVER_ID_1);
// Publish DEL
int csnCounter = 0;
@@ -1102,24 +1076,20 @@
ModifyDNMsg modDNMsg = new ModifyDNMsg(localOp);
server01.publish(modDNMsg);
debugInfo(tn, " publishes " + modDNMsg.getCSN());
- Thread.sleep(1000);
String cookie= "";
InternalSearchOperation searchOp =
- searchOnCookieChangelog("(targetdn=*" + tn + "*,o=test)", cookie, tn, SUCCESS);
+ searchOnCookieChangelog("(targetdn=*" + tn + "*,o=test)", cookie, expectedNbEntries, tn, SUCCESS);
// test 4 entries returned
- final String[] cookies = new String[4];
+ final String[] cookies = new String[expectedNbEntries];
for (int j = 0; j < cookies.length; j++)
{
cookies[j] = "o=test:" + csns[j] + ";";
}
- assertEquals(searchOp.getSearchEntries().size(), 4);
- List<SearchResultEntry> entries = searchOp.getSearchEntries();
- debugAndWriteEntries(ldifWriter, entries, tn);
int i=0;
- for (SearchResultEntry resultEntry : entries)
+ for (SearchResultEntry resultEntry : searchOp.getSearchEntries())
{
i++;
checkDn(csns[i - 1], resultEntry);
@@ -1164,10 +1134,7 @@
// Test the response control with ldapsearch tool
String result = ldapsearch("cn=changelog");
debugInfo(tn, "Entries:" + result);
-
- List<String> ctrlList = getControls(result);
- assertThat(ctrlList).containsExactly(cookies);
-
+ assertThat(getControls(result)).containsExactly(cookies);
}
finally {
stop(server01, server02);
@@ -1220,7 +1187,7 @@
ctrlList.add(a[1]);
}
} catch (IOException e) {
- Assert.assertEquals(0, 1, e.getMessage());
+ assertEquals(0, 1, e.getMessage());
}
return ctrlList;
}
@@ -1247,7 +1214,7 @@
oStream.reset();
eStream.reset();
int retVal = LDAPSearch.mainSearch(args3, false, oStream, eStream);
- Assert.assertEquals(0, retVal, "Returned error: " + eStream);
+ assertEquals(0, retVal, "Returned error: " + eStream);
return oStream.toString();
}
@@ -1361,13 +1328,10 @@
long searchesDone = ldapStatistics.getSearchResultsDone();
debugInfo(tn, "Search Persistent filter=(targetDN=*"+tn+"*,o=test)");
- LDAPMessage message;
- message = new LDAPMessage(2, searchRequest, controls);
+ LDAPMessage message = new LDAPMessage(2, searchRequest, controls);
w.writeMessage(message);
Thread.sleep(500);
- SearchResultDoneProtocolOp searchResultDone;
-
if (!changesOnly)
{
// Wait for change 1
@@ -1394,11 +1358,7 @@
break;
case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
- searchResultDone = message.getSearchResultDoneProtocolOp();
- assertEquals(
- searchResultDone.getResultCode(),
- ResultCode.SUCCESS.getIntValue(),
- searchResultDone.getErrorMessage().toString());
+ assertSuccessful(message);
searchesDone++;
break;
}
@@ -1439,11 +1399,7 @@
break;
case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
- searchResultDone = message.getSearchResultDoneProtocolOp();
- assertEquals(
- searchResultDone.getResultCode(),
- ResultCode.SUCCESS.getIntValue(),
- searchResultDone.getErrorMessage().toString());
+ assertSuccessful(message);
// assertEquals(InvocationCounterPlugin.waitForPostResponse(), 1);
searchesDone++;
break;
@@ -1483,8 +1439,6 @@
searchesDone=0;
searchEntries = 0;
- searchResultEntry = null;
- searchResultDone = null;
while ((searchesDone==0) && (message = r.readMessage()) != null)
{
debugInfo(tn, "ACI test : message returned " +
@@ -1492,7 +1446,6 @@
switch (message.getProtocolOpType())
{
case LDAPConstants.OP_TYPE_SEARCH_RESULT_ENTRY:
- searchResultEntry = message.getSearchResultEntryProtocolOp();
//assertTrue(false, "Unexpected entry returned in ACI test of " + tn + searchResultEntry);
searchEntries++;
break;
@@ -1502,9 +1455,7 @@
break;
case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
- searchResultDone = message.getSearchResultDoneProtocolOp();
- assertEquals(searchResultDone.getResultCode(),
- ResultCode.SUCCESS.getIntValue());
+ assertSuccessful(message);
// assertEquals(InvocationCounterPlugin.waitForPostResponse(), 1);
searchesDone++;
break;
@@ -1696,9 +1647,6 @@
w3.writeMessage(message);
Thread.sleep(500);
- SearchResultEntryProtocolOp searchResultEntry = null;
- SearchResultDoneProtocolOp searchResultDone = null;
-
if (!changesOnly)
{
debugInfo(tn, "Search1 Persistent filter=" + searchRequest1.getFilter()
@@ -1714,7 +1662,8 @@
switch (message.getProtocolOpType())
{
case LDAPConstants.OP_TYPE_SEARCH_RESULT_ENTRY:
- searchResultEntry = message.getSearchResultEntryProtocolOp();
+ SearchResultEntryProtocolOp searchResultEntry =
+ message.getSearchResultEntryProtocolOp();
searchEntries++;
if (searchEntries==1)
{
@@ -1728,11 +1677,7 @@
break;
case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
- searchResultDone = message.getSearchResultDoneProtocolOp();
- assertEquals(
- searchResultDone.getResultCode(),
- ResultCode.SUCCESS.getIntValue(),
- searchResultDone.getErrorMessage().toString());
+ assertSuccessful(message);
searchesDone++;
break;
}
@@ -1753,7 +1698,8 @@
switch (message.getProtocolOpType())
{
case LDAPConstants.OP_TYPE_SEARCH_RESULT_ENTRY:
- searchResultEntry = message.getSearchResultEntryProtocolOp();
+ SearchResultEntryProtocolOp searchResultEntry =
+ message.getSearchResultEntryProtocolOp();
searchEntries++;
checkValue(searchResultEntry.toSearchResultEntry(),"changenumber",
(compatMode?"10":"0"));
@@ -1763,11 +1709,7 @@
break;
case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
- searchResultDone = message.getSearchResultDoneProtocolOp();
- assertEquals(
- searchResultDone.getResultCode(),
- ResultCode.SUCCESS.getIntValue(),
- searchResultDone.getErrorMessage().toString());
+ assertSuccessful(message);
searchesDone++;
break;
}
@@ -1790,7 +1732,6 @@
switch (message.getProtocolOpType())
{
case LDAPConstants.OP_TYPE_SEARCH_RESULT_ENTRY:
- searchResultEntry = message.getSearchResultEntryProtocolOp();
searchEntries++;
break;
@@ -1798,11 +1739,7 @@
break;
case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
- searchResultDone = message.getSearchResultDoneProtocolOp();
- assertEquals(
- searchResultDone.getResultCode(),
- ResultCode.SUCCESS.getIntValue(),
- searchResultDone.getErrorMessage().toString());
+ assertSuccessful(message);
searchesDone++;
break;
}
@@ -1845,8 +1782,6 @@
// wait 11
searchEntries = 0;
- searchResultEntry = null;
- searchResultDone = null;
message = null;
while (searchEntries < 1 && (message = r1.readMessage()) != null)
{
@@ -1855,7 +1790,6 @@
switch (message.getProtocolOpType())
{
case LDAPConstants.OP_TYPE_SEARCH_RESULT_ENTRY:
- searchResultEntry = message.getSearchResultEntryProtocolOp();
searchEntries++;
break;
@@ -1863,11 +1797,7 @@
break;
case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
- searchResultDone = message.getSearchResultDoneProtocolOp();
- assertEquals(
- searchResultDone.getResultCode(),
- ResultCode.SUCCESS.getIntValue(),
- searchResultDone.getErrorMessage().toString());
+ assertSuccessful(message);
// assertEquals(InvocationCounterPlugin.waitForPostResponse(), 1);
searchesDone++;
break;
@@ -1878,8 +1808,6 @@
// wait 12 & 13
searchEntries = 0;
- searchResultEntry = null;
- searchResultDone = null;
message = null;
while (searchEntries < 2 && (message = r2.readMessage()) != null)
{
@@ -1888,7 +1816,6 @@
switch (message.getProtocolOpType())
{
case LDAPConstants.OP_TYPE_SEARCH_RESULT_ENTRY:
- searchResultEntry = message.getSearchResultEntryProtocolOp();
searchEntries++;
break;
@@ -1896,11 +1823,7 @@
break;
case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
- searchResultDone = message.getSearchResultDoneProtocolOp();
- assertEquals(
- searchResultDone.getResultCode(),
- ResultCode.SUCCESS.getIntValue(),
- searchResultDone.getErrorMessage().toString());
+ assertSuccessful(message);
// assertEquals(InvocationCounterPlugin.waitForPostResponse(), 1);
searchesDone++;
break;
@@ -1911,8 +1834,7 @@
// wait 11 & 12 & 13
searchEntries = 0;
- searchResultEntry = null;
- searchResultDone = null;
+ SearchResultEntryProtocolOp searchResultEntry = null;
message = null;
while (searchEntries < 3 && (message = r3.readMessage()) != null)
{
@@ -1929,11 +1851,7 @@
break;
case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
- searchResultDone = message.getSearchResultDoneProtocolOp();
- assertEquals(
- searchResultDone.getResultCode(),
- ResultCode.SUCCESS.getIntValue(),
- searchResultDone.getErrorMessage().toString());
+ assertSuccessful(message);
// assertEquals(InvocationCounterPlugin.waitForPostResponse(), 1);
searchesDone++;
break;
@@ -1953,6 +1871,13 @@
debugInfo(tn, "Ends test successfully");
}
+ private void assertSuccessful(LDAPMessage message)
+ {
+ SearchResultDoneProtocolOp doneOp = message.getSearchResultDoneProtocolOp();
+ assertEquals(doneOp.getResultCode(), ResultCode.SUCCESS.getIntValue(),
+ doneOp.getErrorMessage().toString());
+ }
+
private void waitForClose(Socket... sockets) throws InterruptedException
{
for (Socket s : sockets)
@@ -2204,8 +2129,6 @@
debugInfo(tn, "Starting test\n\n");
try
{
- LDIFWriter ldifWriter = getLDIFWriter();
-
// Creates broker on o=test
ReplicationBroker server01 = openReplicationSession(TEST_ROOT_DN, SERVER_ID_1,
100, replicationServerPort, brokerSessionTimeout, true);
@@ -2256,12 +2179,12 @@
ModifyDNMsg modDNMsg = new ModifyDNMsg(localOp);
server01.publish(modDNMsg);
debugInfo(tn, " publishes " + modDNMsg.getCSN());
- Thread.sleep(1000);
- String filter = "(targetdn=*"+tn.toLowerCase()+"*,o=test)";
- InternalSearchOperation searchOp = searchOnChangelog(filter, tn, SUCCESS);
+ String filter = "(targetdn=*" + tn + "*,o=test)";
+ InternalSearchOperation searchOp = searchOnChangelog(filter, 4, tn, SUCCESS);
// test 4 entries returned
+ final LDIFWriter ldifWriter = getLDIFWriter();
assertFourEntries(searchOp.getSearchEntries(), firstChangeNumber, tn,
ldifWriter, user1entryUUID, csns);
@@ -2269,14 +2192,14 @@
// Test with filter on change number
filter =
- "(&(targetdn=*" + tn.toLowerCase() + "*,o=test)" +
- "(&(changenumber>=" + firstChangeNumber + ")" +
- "(changenumber<=" + (firstChangeNumber + 3) + ")))";
- searchOp = searchOnChangelog(filter, tn, SUCCESS);
+ "(&(targetdn=*" + tn + "*,o=test)"
+ + "(&(changenumber>=" + firstChangeNumber + ")"
+ + "(changenumber<=" + (firstChangeNumber + 3) + ")))";
+ searchOp = searchOnChangelog(filter, 4, tn, SUCCESS);
assertFourEntries(searchOp.getSearchEntries(), firstChangeNumber, tn,
ldifWriter, user1entryUUID, csns);
- assertEquals(searchOp.getSearchEntries().size(), csns.length);
+ assertThat(searchOp.getSearchEntries()).hasSize(csns.length);
return csns[1];
}
finally
@@ -2290,7 +2213,7 @@
String user1entryUUID, CSN... csns) throws Exception
{
debugAndWriteEntries(ldifWriter, entries, tn);
- assertEquals(entries.size(), 4);
+ assertThat(entries).hasSize(4);
int i = -1;
// check the DEL entry has the right content
@@ -2350,8 +2273,6 @@
String tn = "ECLCompatReadFrom/" + firstChangeNumber;
debugInfo(tn, "Starting test\n\n");
- LDIFWriter ldifWriter = getLDIFWriter();
-
// Creates broker on o=test
ReplicationBroker server01 = openReplicationSession(TEST_ROOT_DN, SERVER_ID_1,
100, replicationServerPort, brokerSessionTimeout, true);
@@ -2359,14 +2280,10 @@
String user1entryUUID = "11111111-1112-1113-1114-111111111115";
String filter = "(changenumber=" + firstChangeNumber + ")";
- InternalSearchOperation searchOp = searchOnChangelog(filter, tn, SUCCESS);
-
- List<SearchResultEntry> entries = searchOp.getSearchEntries();
- assertEquals(entries.size(), 1);
- debugAndWriteEntries(ldifWriter, entries, tn);
+ InternalSearchOperation searchOp = searchOnChangelog(filter, 1, tn, SUCCESS);
// check the entry has the right content
- SearchResultEntry resultEntry = entries.get(0);
+ SearchResultEntry resultEntry = searchOp.getSearchEntries().get(0);
assertTrue("changenumber=6,cn=changelog".equalsIgnoreCase(resultEntry.getDN().toNormalizedString()));
checkValue(resultEntry, "replicationcsn", csn.toString());
checkValue(resultEntry, "replicaidentifier", String.valueOf(SERVER_ID_1));
@@ -2394,12 +2311,10 @@
replicationServerPort, brokerSessionTimeout, true);
String filter = "(changenumber=" + firstChangeNumber + ")";
- InternalSearchOperation searchOp = searchOnChangelog(filter, tn, SUCCESS);
+ InternalSearchOperation searchOp = searchOnChangelog(filter, 1, tn, SUCCESS);
- List<SearchResultEntry> entries = searchOp.getSearchEntries();
- assertEquals(entries.size(), 1);
// Just verify that no entry contains the ChangeLogCookie control
- List<Control> controls = entries.get(0).getControls();
+ List<Control> controls = searchOp.getSearchEntries().get(0).getControls();
assertTrue(controls.isEmpty());
stop(server01);
@@ -2415,16 +2330,15 @@
* @param lastChangeNumber
* the higher limit
*/
- private void ECLCompatReadFromTo(long firstChangeNumber, long lastChangeNumber) throws Exception
+ private void ECLCompatReadFromTo(int firstChangeNumber, int lastChangeNumber) throws Exception
{
String tn = "ECLCompatReadFromTo/" + firstChangeNumber + "/" + lastChangeNumber;
debugInfo(tn, "Starting test\n\n");
String filter =
"(&(changenumber>=" + firstChangeNumber + ")" + "(changenumber<=" + lastChangeNumber + "))";
- InternalSearchOperation searchOp = searchOnChangelog(filter, tn, SUCCESS);
- assertEquals(searchOp.getSearchEntries().size(), lastChangeNumber - firstChangeNumber + 1);
- debugAndWriteEntries(null, searchOp.getSearchEntries(), tn);
+ final int expectedNbEntries = lastChangeNumber - firstChangeNumber + 1;
+ searchOnChangelog(filter, expectedNbEntries, tn, SUCCESS);
debugInfo(tn, "Ending test with success");
}
@@ -2437,9 +2351,7 @@
String tn = "ECLCompatBadSeqnum";
debugInfo(tn, "Starting test\n\n");
- String filter = "(changenumber=1000)";
- InternalSearchOperation searchOp = searchOnChangelog(filter, tn, SUCCESS);
- assertEquals(searchOp.getSearchEntries().size(), 0);
+ searchOnChangelog("(changenumber=1000)", 0, tn, SUCCESS);
debugInfo(tn, "Ending test with success");
}
@@ -2452,18 +2364,11 @@
String tn = "ECLFilterOnReplicationCsn";
debugInfo(tn, "Starting test\n\n");
- LDIFWriter ldifWriter = getLDIFWriter();
-
String filter = "(replicationcsn=" + csn + ")";
- InternalSearchOperation searchOp = searchOnChangelog(filter, tn, SUCCESS);
- assertEquals(searchOp.getSearchEntries().size(), 1);
-
- List<SearchResultEntry> entries = searchOp.getSearchEntries();
- assertEquals(entries.size(), 1);
- debugAndWriteEntries(ldifWriter, entries, tn);
+ InternalSearchOperation searchOp = searchOnChangelog(filter, 1, tn, SUCCESS);
// check the DEL entry has the right content
- SearchResultEntry resultEntry = entries.get(0);
+ SearchResultEntry resultEntry = searchOp.getSearchEntries().get(0);
checkValue(resultEntry, "replicationcsn", csn.toString());
// TODO:ECL check values of the other attributes
@@ -2584,10 +2489,9 @@
NO_CONTROL,
null);
waitOpResult(searchOp, ResultCode.SUCCESS);
- assertEquals(searchOp.getSearchEntries().size(), 1);
- List<SearchResultEntry> entries = searchOp.getSearchEntries();
- assertEquals(entries.size(), 1);
+ final List<SearchResultEntry> entries = searchOp.getSearchEntries();
+ assertThat(entries).hasSize(1);
debugAndWriteEntries(null, entries, tn);
for (SearchResultEntry resultEntry : entries)
{
@@ -2617,12 +2521,12 @@
attributes.add("lastExternalChangelogCookie");
debugInfo(tn, " Search: rootDSE");
- InternalSearchOperation searchOp = searchOnRootDSE(attributes);
- List<SearchResultEntry> entries = searchOp.getSearchEntries();
- assertEquals(entries.size(), 1);
- SearchResultEntry resultEntry = entries.get(0);
+ final InternalSearchOperation searchOp = searchOnRootDSE(attributes);
+ final List<SearchResultEntry> entries = searchOp.getSearchEntries();
+ assertThat(entries).hasSize(1);
debugAndWriteEntries(ldifWriter, entries, tn);
+ final SearchResultEntry resultEntry = entries.get(0);
if (eclEnabled)
{
if (expectedFirst > 0)
@@ -2724,9 +2628,9 @@
delMsg = newDeleteMsg("uid=" + tn + "1," + TEST_ROOT_DN_STRING, csn2, user1entryUUID);
server01.publish(delMsg);
debugInfo(tn, " publishes " + delMsg.getCSN());
- Thread.sleep(300);
// From begin to now : 2 changes
+ searchOnChangelog("(changenumber>=1)", 2, tn, SUCCESS);
assertEquals(rsdtest.getEligibleCount(fromStart, now()), 2);
// From begin to first change (inclusive) : 1 change = csn1
@@ -2762,7 +2666,7 @@
if (perfs)
{
// number of msgs used by the test
- int maxMsg = 999999;
+ final int maxMsg = 999999;
// We need an RS configured with a window size bigger than the number
// of msg used by the test.
@@ -2787,23 +2691,19 @@
debugInfo(tn, "Perfs - " + maxMsg + " counted in (ms):" + (t2 - t1));
String filter = "(changenumber>=" + maxMsg + ")";
- InternalSearchOperation searchOp = searchOnChangelog(filter, tn, SUCCESS);
+ searchOnChangelog(filter, 1, tn, SUCCESS);
long t3 = TimeThread.getTime();
- assertEquals(searchOp.getSearchEntries().size(), 1);
debugInfo(tn, "Perfs - last change searched in (ms):" + (t3 - t2));
filter = "(changenumber>=" + maxMsg + ")";
- searchOp = searchOnChangelog(filter, tn, SUCCESS);
+ searchOnChangelog(filter, 1, tn, SUCCESS);
long t4 = TimeThread.getTime();
- assertEquals(searchOp.getSearchEntries().size(), 1);
debugInfo(tn, "Perfs - last change searched in (ms):" + (t4 - t3));
filter = "(changenumber>=" + (maxMsg - 2) + ")";
- searchOp = searchOnChangelog(filter, tn, SUCCESS);
+ searchOnChangelog(filter, 3, tn, SUCCESS);
long t5 = TimeThread.getTime();
- assertEquals(searchOp.getSearchEntries().size(), 3);
debugInfo(tn, "Perfs - last 3 changes searched in (ms):" + (t5 - t4));
- debugAndWriteEntries(null, searchOp.getSearchEntries(), tn);
}
stop(server01);
debugInfo(tn, "Ending test with success");
@@ -2908,19 +2808,13 @@
// del robert (o=test3)
final DeleteOperation delOp = connection.processDelete(DN.decode("cn=Robert Hue2," + baseDN3));
waitOpResult(delOp, ResultCode.SUCCESS);
- Thread.sleep(1000);
// Search on ECL from start on all suffixes
String cookie = "";
InternalSearchOperation searchOp =
- searchOnCookieChangelog("(targetDN=*)", cookie, tn, SUCCESS);
- final List<SearchResultEntry> entries = searchOp.getSearchEntries();
- assertThat(entries).hasSize(8);
- debugAndWriteEntries(null, entries, tn);
+ searchOnCookieChangelog("(targetDN=*)", cookie, 8, tn, SUCCESS);
- Thread.sleep(2000);
-
- for (SearchResultEntry resultEntry : entries)
+ for (SearchResultEntry resultEntry : searchOp.getSearchEntries())
{
String targetdn = getAttributeValue(resultEntry, "targetdn");
@@ -2936,7 +2830,7 @@
if ("delete".equals(changeType))
{
// We are using "*" for deletes so should get back 4 attributes.
- assertEquals(targetEntry.getAttributes().size(), 4);
+ assertThat(targetEntry.getAttributes()).hasSize(4);
checkValue(targetEntry, "uid", "robert");
checkValue(targetEntry, "cn", "Robert Hue2");
checkValue(targetEntry, "telephonenumber", "555555");
@@ -2944,14 +2838,14 @@
}
else
{
- assertEquals(targetEntry.getAttributes().size(), 0);
+ assertThat(targetEntry.getAttributes()).isEmpty();
}
}
else if (targetdn.endsWith("cn=fiona jensen,o=test2"))
{
Entry targetEntry = parseIncludedAttributes(resultEntry, targetdn);
- assertEquals(targetEntry.getAttributes().size(), 2);
+ assertThat(targetEntry.getAttributes()).hasSize(2);
checkValue(targetEntry,"sn","jensen");
checkValue(targetEntry,"cn","Fiona Jensen");
}
--
Gitblit v1.10.0