From f454c847865c5216781b42e9842710baf308b44a Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 02 Dec 2015 15:57:04 +0000
Subject: [PATCH] SearchOperationTestCase.java: Code cleanup
---
opendj-server-legacy/src/test/java/org/opends/server/core/SearchOperationTestCase.java | 390 +++++++++++++++++++++++--------------------------------
1 files changed, 166 insertions(+), 224 deletions(-)
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/core/SearchOperationTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/core/SearchOperationTestCase.java
index a355a37..57dd0f9 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/core/SearchOperationTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/core/SearchOperationTestCase.java
@@ -30,6 +30,7 @@
import java.net.Socket;
import java.util.*;
+import org.assertj.core.api.SoftAssertions;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.DecodeException;
import org.forgerock.opendj.ldap.DereferenceAliasesPolicy;
@@ -169,7 +170,6 @@
assertNotNull(DirectoryServer.getEntry(e.getName()));
}
-
@Override
protected Operation[] createTestOperations() throws Exception
{
@@ -188,11 +188,7 @@
assertTrue(searchOperation.getProcessingStopTime() > 0);
assertTrue(searchOperation.getProcessingTime() >= 0);
-// assertEquals(InvocationCounterPlugin.getPreParseCount(), 1);
-// assertEquals(InvocationCounterPlugin.getPreOperationCount(), 1);
-// assertEquals(InvocationCounterPlugin.getPostOperationCount(), 1);
ensurePostReponseHasRun();
-// assertEquals(InvocationCounterPlugin.getPostResponseCount(), 1);
}
private Entry getSingleEntry(InternalSearchOperation searchOperation)
@@ -211,8 +207,7 @@
throws Exception
{
// Establish a connection to the server.
- Socket s = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
- try
+ try (Socket s = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort()))
{
org.opends.server.tools.LDAPReader r = new org.opends.server.tools.LDAPReader(s);
LDAPWriter w = new LDAPWriter(s);
@@ -226,7 +221,6 @@
// operation has completed.
assertTrue(DirectoryServer.getWorkQueue().waitUntilIdle(10000));
-
InvocationCounterPlugin.resetAllCounters();
long searchRequests = ldapStatistics.getSearchRequests();
@@ -234,8 +228,7 @@
long searchReferences = ldapStatistics.getSearchResultReferences();
long searchesDone = ldapStatistics.getSearchResultsDone();
- LDAPMessage message;
- message = new LDAPMessage(2, searchRequest, controls);
+ LDAPMessage message = new LDAPMessage(2, searchRequest, controls);
w.writeMessage(message);
SearchResultEntryProtocolOp searchResultEntry = null;
@@ -255,8 +248,7 @@
case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
searchResultDone = message.getSearchResultDoneProtocolOp();
- assertEquals(searchResultDone.getResultCode(),
- LDAPResultCode.SUCCESS);
+ assertThat(searchResultDone.getResultCode()).isEqualTo(LDAPResultCode.SUCCESS);
// assertEquals(InvocationCounterPlugin.waitForPostResponse(), 1);
searchesDone++;
break;
@@ -266,16 +258,11 @@
TestCaseUtils.quiesceServer();
assertEquals(ldapStatistics.getSearchRequests(), searchRequests+1);
assertEquals(ldapStatistics.getSearchResultEntries(), searchEntries);
- assertEquals(ldapStatistics.getSearchResultReferences(),
- searchReferences);
+ assertEquals(ldapStatistics.getSearchResultReferences(), searchReferences);
assertEquals(ldapStatistics.getSearchResultsDone(), searchesDone);
return searchResultEntry;
}
- finally
- {
- s.close();
- }
}
private void bindAsManager(LDAPWriter w, org.opends.server.tools.LDAPReader r)
@@ -287,7 +274,6 @@
// operation has completed.
assertTrue(DirectoryServer.getWorkQueue().waitUntilIdle(10000));
-
InvocationCounterPlugin.resetAllCounters();
BindRequestProtocolOp bindRequest =
new BindRequestProtocolOp(
@@ -298,7 +284,6 @@
message = r.readMessage();
BindResponseProtocolOp bindResponse = message.getBindResponseProtocolOp();
-// assertEquals(InvocationCounterPlugin.waitForPostResponse(), 1);
assertEquals(bindResponse.getResultCode(), LDAPResultCode.SUCCESS);
}
@@ -322,14 +307,9 @@
{
InternalSearchOperation searchOperation = newInternalSearchOperation("(objectclass=inetorgperson)");
Entry resultEntry = getSingleEntry(searchOperation);
-
- assertEquals(resultEntry.getObjectClasses(), testEntry.getObjectClasses());
-
- // Search results contain objectClass as an attribute.
- assertEquals(resultEntry.getUserAttributes().size(),
- testEntry.getUserAttributes().size() + 1);
-
- assertEquals(resultEntry.getOperationalAttributes().size(), 0);
+ assertObjectClassesAndUserAttributes(
+ resultEntry, testEntry.getObjectClasses(), testEntry.getUserAttributes().size() + 1);
+ assertThat(resultEntry.getOperationalAttributes()).isEmpty();
}
@Test
@@ -339,12 +319,7 @@
SearchRequest request = Requests.newSearchRequest(BASE, SearchScope.WHOLE_SUBTREE, "(objectclass=inetorgperson)")
.setTypesOnly(true);
Entry resultEntry = getSingleEntry(getRootConnection().processSearch(request));
-
- assertEquals(resultEntry.getObjectClasses().size(), 0);
-
- assertEquals(resultEntry.getUserAttributes().size(),
- testEntry.getUserAttributes().size() + 1);
- assertEquals(resultEntry.getOperationalAttributes().size(), 0);
+ assertEntrySizes(resultEntry, 0, testEntry.getUserAttributes().size() + 1, 0);
}
@Test
@@ -352,10 +327,9 @@
{
InternalSearchOperation searchOperation = newInternalSearchOperation("(objectclass=inetorgperson)", "+");
Entry resultEntry = getSingleEntry(searchOperation);
-
- assertEquals(resultEntry.getObjectClasses().size(), 0);
- assertEquals(resultEntry.getUserAttributes().size(), 0);
- assertTrue(!resultEntry.getOperationalAttributes().isEmpty());
+ assertThat(resultEntry.getObjectClasses()).isEmpty();
+ assertThat(resultEntry.getUserAttributes()).isEmpty();
+ assertThat(resultEntry.getOperationalAttributes()).isNotEmpty();
}
@Test
@@ -363,13 +337,9 @@
{
InternalSearchOperation searchOperation = newInternalSearchOperation("(objectclass=inetorgperson)", "*", "+");
Entry resultEntry = getSingleEntry(searchOperation);
-
- assertEquals(resultEntry.getObjectClasses(), testEntry.getObjectClasses());
- assertTrue(!resultEntry.getOperationalAttributes().isEmpty());
-
- // Search results contain objectClass as an attribute.
- assertEquals(resultEntry.getUserAttributes().size(),
- testEntry.getUserAttributes().size() + 1);
+ assertObjectClassesAndUserAttributes(
+ resultEntry, testEntry.getObjectClasses(), testEntry.getUserAttributes().size() + 1);
+ assertThat(resultEntry.getOperationalAttributes()).isNotEmpty();
}
@Test
@@ -378,14 +348,18 @@
InternalSearchOperation searchOperation =
newInternalSearchOperation("(objectclass=inetorgperson)", "*", "createtimestamp");
Entry resultEntry = getSingleEntry(searchOperation);
+ assertObjectClassesAndUserAttributes(
+ resultEntry, testEntry.getObjectClasses(), testEntry.getUserAttributes().size() + 1);
+ assertThat(resultEntry.getOperationalAttributes()).hasSize(1);
+ }
- assertEquals(resultEntry.getObjectClasses(), testEntry.getObjectClasses());
-
- // Search results contain objectClass as an attribute.
- assertEquals(resultEntry.getUserAttributes().size(),
- testEntry.getUserAttributes().size() + 1);
-
- assertEquals(resultEntry.getOperationalAttributes().size(), 1);
+ private void assertObjectClassesAndUserAttributes(Entry resultEntry, Map<ObjectClass, String> objectClasses,
+ int nbUserAttrs)
+ {
+ SoftAssertions softly = new SoftAssertions();
+ softly.assertThat(resultEntry.getObjectClasses()).as("Object classes").isEqualTo(objectClasses);
+ softly.assertThat(resultEntry.getUserAttributes()).as("User attributes").hasSize(nbUserAttrs);
+ softly.assertAll();
}
@Test
@@ -394,10 +368,16 @@
InternalSearchOperation searchOperation =
newInternalSearchOperation("(objectclass=inetorgperson)", "uid", "createtimestamp");
Entry resultEntry = getSingleEntry(searchOperation);
+ assertEntrySizes(resultEntry, 0, 1, 1);
+ }
- assertEquals(resultEntry.getObjectClasses().size(), 0);
- assertEquals(resultEntry.getUserAttributes().size(), 1);
- assertEquals(resultEntry.getOperationalAttributes().size(), 1);
+ private void assertEntrySizes(Entry resultEntry, int nbOCs, int nbUserAttrs, int nbOperationalAttrs)
+ {
+ SoftAssertions softly = new SoftAssertions();
+ softly.assertThat(resultEntry.getObjectClasses()).as("Object classes").hasSize(nbOCs);
+ softly.assertThat(resultEntry.getUserAttributes()).as("User attributes").hasSize(nbUserAttrs);
+ softly.assertThat(resultEntry.getOperationalAttributes()).as("Operational attributes").hasSize(nbOperationalAttrs);
+ softly.assertAll();
}
private InternalSearchOperation newInternalSearchOperation(String filter, String... attributes) throws Exception
@@ -421,15 +401,13 @@
false,
LDAPFilter.decode("(objectclass=inetorgperson)"),
null);
- SearchResultEntryProtocolOp searchResultEntry =
- searchExternalForSingleEntry(searchRequest, null);
- assertEquals(searchResultEntry.getAttributes().size(), ldapAttrCount);
+ SearchResultEntryProtocolOp searchResultEntry = searchExternalForSingleEntry(searchRequest, null);
+ assertThat(searchResultEntry.getAttributes()).hasSize(ldapAttrCount);
}
@Test
public void testSearchExternalAllUserAttributes() throws Exception
{
- LinkedHashSet<String> attributes = newLinkedHashSet("*");
SearchRequestProtocolOp searchRequest =
new SearchRequestProtocolOp(
ByteString.valueOfUtf8(BASE),
@@ -439,15 +417,13 @@
Integer.MAX_VALUE,
false,
LDAPFilter.decode("(objectclass=inetorgperson)"),
- attributes);
- SearchResultEntryProtocolOp searchResultEntry =
- searchExternalForSingleEntry(searchRequest, null);
- assertEquals(searchResultEntry.getAttributes().size(), ldapAttrCount);
+ newLinkedHashSet("*"));
+ SearchResultEntryProtocolOp searchResultEntry = searchExternalForSingleEntry(searchRequest, null);
+ assertThat(searchResultEntry.getAttributes()).hasSize(ldapAttrCount);
}
@Test
- public void testSearchExternalUnspecifiedAttributesOmitValues()
- throws Exception
+ public void testSearchExternalUnspecifiedAttributesOmitValues() throws Exception
{
SearchRequestProtocolOp searchRequest =
new SearchRequestProtocolOp(
@@ -459,20 +435,18 @@
true,
LDAPFilter.decode("(objectclass=inetorgperson)"),
null);
- SearchResultEntryProtocolOp searchResultEntry =
- searchExternalForSingleEntry(searchRequest, null);
+ SearchResultEntryProtocolOp searchResultEntry = searchExternalForSingleEntry(searchRequest, null);
// The attributes will include the objectclass type.
- assertEquals(searchResultEntry.getAttributes().size(), ldapAttrCount);
+ assertThat(searchResultEntry.getAttributes()).hasSize(ldapAttrCount);
for (LDAPAttribute a : searchResultEntry.getAttributes())
{
- assertEquals(a.getValues().size(), 0);
+ assertThat(a.getValues()).isEmpty();
}
}
@Test
public void testSearchExternalAllUserAttributesOmitValues() throws Exception
{
- LinkedHashSet<String> attributes = newLinkedHashSet("*");
SearchRequestProtocolOp searchRequest =
new SearchRequestProtocolOp(
ByteString.valueOfUtf8(BASE),
@@ -482,21 +456,20 @@
Integer.MAX_VALUE,
true,
LDAPFilter.decode("(objectclass=inetorgperson)"),
- attributes);
- SearchResultEntryProtocolOp searchResultEntry =
- searchExternalForSingleEntry(searchRequest, null);
+ newLinkedHashSet("*"));
+
+ SearchResultEntryProtocolOp searchResultEntry = searchExternalForSingleEntry(searchRequest, null);
// The attributes will include the objectclass type.
- assertEquals(searchResultEntry.getAttributes().size(), ldapAttrCount);
+ assertThat(searchResultEntry.getAttributes()).hasSize(ldapAttrCount);
for (LDAPAttribute a : searchResultEntry.getAttributes())
{
- assertEquals(a.getValues().size(), 0);
+ assertThat(a.getValues()).isEmpty();
}
}
@Test
public void testSearchExternalObjectClassAttribute() throws Exception
{
- LinkedHashSet<String> attributes = newLinkedHashSet("objectclass");
SearchRequestProtocolOp searchRequest =
new SearchRequestProtocolOp(
ByteString.valueOfUtf8(BASE),
@@ -506,21 +479,16 @@
Integer.MAX_VALUE,
false,
LDAPFilter.decode("(objectclass=inetorgperson)"),
- attributes);
+ newLinkedHashSet("objectclass"));
- SearchResultEntryProtocolOp searchResultEntry =
- searchExternalForSingleEntry(searchRequest, null);
-
- assertEquals(searchResultEntry.getAttributes().size(), 1);
- assertEquals(searchResultEntry.getAttributes().
- getFirst().getValues().size(), 4);
+ SearchResultEntryProtocolOp searchResultEntry = searchExternalForSingleEntry(searchRequest, null);
+ assertThat(searchResultEntry.getAttributes()).hasSize(1);
+ assertThat(searchResultEntry.getAttributes().getFirst().getValues()).hasSize(4);
}
@Test
- public void testSearchExternalObjectClassAttributeOmitValues()
- throws Exception
+ public void testSearchExternalObjectClassAttributeOmitValues() throws Exception
{
- LinkedHashSet<String> attributes = newLinkedHashSet("objectclass");
SearchRequestProtocolOp searchRequest =
new SearchRequestProtocolOp(
ByteString.valueOfUtf8(BASE),
@@ -530,20 +498,16 @@
Integer.MAX_VALUE,
true,
LDAPFilter.decode("(objectclass=inetorgperson)"),
- attributes);
+ newLinkedHashSet("objectclass"));
- SearchResultEntryProtocolOp searchResultEntry =
- searchExternalForSingleEntry(searchRequest, null);
-
- assertEquals(searchResultEntry.getAttributes().size(), 1);
- assertEquals(searchResultEntry.getAttributes().
- getFirst().getValues().size(), 0);
+ SearchResultEntryProtocolOp searchResultEntry = searchExternalForSingleEntry(searchRequest, null);
+ assertThat(searchResultEntry.getAttributes()).hasSize(1);
+ assertThat(searchResultEntry.getAttributes().getFirst().getValues()).isEmpty();
}
@Test
public void testSearchExternalSelectedAttributes() throws Exception
{
- LinkedHashSet<String> attributes = newLinkedHashSet("uid", "createtimestamp");
SearchRequestProtocolOp searchRequest =
new SearchRequestProtocolOp(
ByteString.valueOfUtf8(BASE),
@@ -553,18 +517,15 @@
Integer.MAX_VALUE,
false,
LDAPFilter.decode("(objectclass=inetorgperson)"),
- attributes);
+ newLinkedHashSet("uid", "createtimestamp"));
- SearchResultEntryProtocolOp searchResultEntry =
- searchExternalForSingleEntry(searchRequest, null);
-
- assertEquals(searchResultEntry.getAttributes().size(), 2);
+ SearchResultEntryProtocolOp searchResultEntry = searchExternalForSingleEntry(searchRequest, null);
+ assertThat(searchResultEntry.getAttributes()).hasSize(2);
}
@Test
public void testSearchExternalAttributeWithSubtypes() throws Exception
{
- LinkedHashSet<String> attributes = newLinkedHashSet("title");
SearchRequestProtocolOp searchRequest =
new SearchRequestProtocolOp(
ByteString.valueOfUtf8(BASE),
@@ -574,19 +535,15 @@
Integer.MAX_VALUE,
false,
LDAPFilter.decode("(objectclass=inetorgperson)"),
- attributes);
+ newLinkedHashSet("title"));
- SearchResultEntryProtocolOp searchResultEntry =
- searchExternalForSingleEntry(searchRequest, null);
-
- assertEquals(searchResultEntry.getAttributes().size(), 4);
+ SearchResultEntryProtocolOp searchResultEntry = searchExternalForSingleEntry(searchRequest, null);
+ assertThat(searchResultEntry.getAttributes()).hasSize(4);
}
@Test
- public void testSearchExternalAttributeWithSubtypesOmitValues()
- throws Exception
+ public void testSearchExternalAttributeWithSubtypesOmitValues() throws Exception
{
- LinkedHashSet<String> attributes = newLinkedHashSet("title");
SearchRequestProtocolOp searchRequest =
new SearchRequestProtocolOp(
ByteString.valueOfUtf8(BASE),
@@ -596,22 +553,20 @@
Integer.MAX_VALUE,
true,
LDAPFilter.decode("(objectclass=inetorgperson)"),
- attributes);
+ newLinkedHashSet("title"));
- SearchResultEntryProtocolOp searchResultEntry =
- searchExternalForSingleEntry(searchRequest, null);
+ SearchResultEntryProtocolOp searchResultEntry = searchExternalForSingleEntry(searchRequest, null);
- assertEquals(searchResultEntry.getAttributes().size(), 4);
+ assertThat(searchResultEntry.getAttributes()).hasSize(4);
for (LDAPAttribute a : searchResultEntry.getAttributes())
{
- assertEquals(a.getValues().size(), 0);
+ assertThat(a.getValues()).isEmpty();
}
}
@Test
public void testSearchExternalAttributeWithOptions() throws Exception
{
- LinkedHashSet<String> attributes = newLinkedHashSet("title;lang-ja;phonetic");
SearchRequestProtocolOp searchRequest =
new SearchRequestProtocolOp(
ByteString.valueOfUtf8(BASE),
@@ -621,12 +576,10 @@
Integer.MAX_VALUE,
false,
LDAPFilter.decode("(objectclass=inetorgperson)"),
- attributes);
+ newLinkedHashSet("title;lang-ja;phonetic"));
- SearchResultEntryProtocolOp searchResultEntry =
- searchExternalForSingleEntry(searchRequest, null);
-
- assertEquals(searchResultEntry.getAttributes().size(), 1);
+ SearchResultEntryProtocolOp searchResultEntry = searchExternalForSingleEntry(searchRequest, null);
+ assertThat(searchResultEntry.getAttributes()).hasSize(1);
}
@Test
@@ -649,8 +602,7 @@
LDAPFilter.decode("(objectclass=inetorgperson)"),
null);
- SearchResultEntryProtocolOp searchResultEntry =
- searchExternalForSingleEntry(searchRequest, controls);
+ SearchResultEntryProtocolOp searchResultEntry = searchExternalForSingleEntry(searchRequest, controls);
// Per RFC 3876, an attribute that has no values selected is returned
// with an empty set of values. We should therefore expect all the
@@ -676,9 +628,8 @@
assertEquals(searchOperation.getErrorMessage().length(), 0);
examineCompletedOperation(searchOperation);
- List<SearchResultReference> references =
- searchOperation.getSearchReferences();
- assertEquals(references.size(), 2);
+ List<SearchResultReference> references = searchOperation.getSearchReferences();
+ assertThat(references).hasSize(2);
// One contains 2 URLs, the other contains 3. Cannot guarantee
// ordering of the returned references, so just check the total is correct.
@@ -707,12 +658,9 @@
assertEquals(searchOperation.getErrorMessage().length(), 0);
examineCompletedOperation(searchOperation);
- List<SearchResultReference> references =
- searchOperation.getSearchReferences();
- assertEquals(references.size(), 1);
-
- List<String> referrals = references.get(0).getReferralURLs();
- assertEquals(referrals.size(), 2);
+ List<SearchResultReference> references = searchOperation.getSearchReferences();
+ assertThat(references).hasSize(1);
+ assertThat(references.get(0).getReferralURLs()).hasSize(2);
}
@Test
@@ -801,17 +749,11 @@
assertNotNull(searchOperation.getMatchedDN());
}
-
-
- /**
- * Determines how attributes should be filtered in search operations.
- */
+ /** Determines how attributes should be filtered in search operations. */
private enum AttributeFilterType {
DEFAULT, WILDCARDS, ENUMERATED;
}
-
-
/**
* Returns test data for testSearchInternalAttributeFilters.
*
@@ -820,7 +762,6 @@
@DataProvider(name = "testSearchInternalAttributeFilters")
public Object[][] createTestSearchInternalAttributeFiltersData()
{
- // It was quicker to cut n paste...
return new Object[][] {
{AttributeFilterType.DEFAULT, false, false, false},
{AttributeFilterType.DEFAULT, false, false, true},
@@ -849,8 +790,6 @@
};
}
-
-
/**
* Tests that attribute filtering is performed correctly for real and
* virtual attributes when various combinations of typesOnly, and the
@@ -928,13 +867,78 @@
assertEquals(search.getResultCode(), ResultCode.SUCCESS);
LinkedList<SearchResultEntry> entries = search.getSearchEntries();
- assertEquals(entries.size(), 1);
+ assertThat(entries).hasSize(1);
Entry entry = entries.getFirst();
assertEquals(entry.getName(), userDN);
- // Check real attributes.
+ // Check real attributes and virtual (operational) attributes.
List<String> messages = new LinkedList<>();
+ checkRealAttributes(typesOnly, stripRealAttributes, realAttrTypes, entry, messages);
+ checkVirtualOperationalAttributes(filterType, typesOnly, stripVirtualAttributes, virtualAttrTypes, entry, messages);
+ assertThat(messages).isEmpty();
+ }
+
+ private void checkVirtualOperationalAttributes(AttributeFilterType filterType, boolean typesOnly,
+ boolean stripVirtualAttributes, List<String> virtualAttrTypes, Entry entry, List<String> messages)
+ {
+ for (String attrType : virtualAttrTypes)
+ {
+ List<Attribute> attrList = entry.getAttribute(attrType);
+
+ if (stripVirtualAttributes)
+ {
+ if (attrList != null)
+ {
+ messages.add("Unexpected virtual attribute: " + attrType);
+ }
+ }
+ else if (filterType == AttributeFilterType.DEFAULT)
+ {
+ if (attrList != null)
+ {
+ messages.add("Unexpected operational attribute: " + attrType);
+ }
+ }
+ else if ("ismemberof".equals(attrType))
+ {
+ // isMemberOf should never be returned as user is not in any groups.
+ if (attrList != null)
+ {
+ messages.add("Unexpected isMemberOf attribute");
+ }
+ }
+ else
+ {
+ if (attrList == null)
+ {
+ messages.add("Missing virtual attribute: " + attrType);
+ }
+ else
+ {
+ Attribute attr = attrList.get(0);
+ if (typesOnly)
+ {
+ if (!attr.isEmpty())
+ {
+ messages.add("Unexpected non-empty virtual attribute: " + attrType);
+ }
+ }
+ else
+ {
+ if (attr.isEmpty())
+ {
+ messages.add("Unexpected empty virtual attribute: " + attrType);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private List<String> checkRealAttributes(boolean typesOnly, boolean stripRealAttributes, List<String> realAttrTypes,
+ Entry entry, List<String> messages)
+ {
for (String attrType : realAttrTypes)
{
List<Attribute> attrList = entry.getAttribute(attrType);
@@ -972,63 +976,7 @@
}
}
}
-
- // Check virtual (operational) attributes.
- for (String attrType : virtualAttrTypes)
- {
- List<Attribute> attrList = entry.getAttribute(attrType);
-
- if (stripVirtualAttributes)
- {
- if (attrList != null)
- {
- messages.add("Unexpected virtual attribute: " + attrType);
- }
- }
- else if (filterType == AttributeFilterType.DEFAULT)
- {
- if (attrList != null)
- {
- messages.add("Unexpected operational attribute: " + attrType);
- }
- }
- else if (attrType.equals("ismemberof"))
- {
- // isMemberOf should never be returned as user is not in any
- // groups.
- if (attrList != null)
- {
- messages.add("Unexpected isMemberOf attribute");
- }
- }
- else
- {
- if (attrList == null)
- {
- messages.add("Missing virtual attribute: " + attrType);
- }
- else
- {
- Attribute attr = attrList.get(0);
- if (typesOnly)
- {
- if (!attr.isEmpty())
- {
- messages.add("Unexpected non-empty virtual attribute: " + attrType);
- }
- }
- else
- {
- if (attr.isEmpty())
- {
- messages.add("Unexpected empty virtual attribute: " + attrType);
- }
- }
- }
- }
- }
-
- assertThat(messages).isEmpty();
+ return messages;
}
@@ -1065,8 +1013,6 @@
{ Arrays.asList("name;LANG-FR"), Arrays.asList("cn;LANG-FR") }, };
}
-
-
/**
* Tests that attributes are returned from internal searches using the
* attribute name requested by the user.
@@ -1106,25 +1052,26 @@
assertEquals(search.getResultCode(), ResultCode.SUCCESS);
LinkedList<SearchResultEntry> entries = search.getSearchEntries();
- assertEquals(entries.size(), 1);
+ assertThat(entries).hasSize(1);
Entry entry = entries.getFirst();
assertEquals(entry.getName(), userDN);
- // Check all expected attributes are present and have
- // the user requested name.
+ // Check all expected attributes are present and have the user requested name.
+ assertThat(getAttributeNames(entry)).containsAll(expectedAttributes);
+ }
+
+ private Set<String> getAttributeNames(Entry entry)
+ {
List<Attribute> attrList = entry.getAttributes();
Set<String> actualNames = new HashSet<>();
for (Attribute attribute : attrList)
{
actualNames.add(attribute.getNameWithOptions());
}
-
- assertThat(actualNames).containsAll(expectedAttributes);
+ return actualNames;
}
-
-
/**
* Tests that attributes are returned from external searches using the
* attribute name requested by the user.
@@ -1158,8 +1105,6 @@
"cn;lang-fr: Test Usager",
"userPassword: password");
- LinkedHashSet<String> attributes = new LinkedHashSet<>(requestedAttributes);
-
SearchRequestProtocolOp searchRequest =
new SearchRequestProtocolOp(
ByteString.valueOfUtf8(userDNString),
@@ -1169,29 +1114,27 @@
Integer.MAX_VALUE,
false,
LDAPFilter.objectClassPresent(),
- attributes);
+ new LinkedHashSet<>(requestedAttributes));
- SearchResultEntryProtocolOp entry =
- searchExternalForSingleEntry(searchRequest, null);
-
+ SearchResultEntryProtocolOp entry = searchExternalForSingleEntry(searchRequest, null);
assertEquals(entry.getDN(), userDN);
- // Check all expected attributes are present and have
- // the user requested name.
+ // Check all expected attributes are present and have the user requested name.
+ assertThat(getAttributeNames(entry)).containsAll(expectedAttributes);
+ }
+
+ private Set<String> getAttributeNames(SearchResultEntryProtocolOp entry)
+ {
LinkedList<LDAPAttribute> attrList = entry.getAttributes();
Set<String> actualNames = new HashSet<>();
for (LDAPAttribute attribute : attrList)
{
actualNames.add(attribute.getAttributeType());
}
-
- assertThat(actualNames).containsAll(expectedAttributes);
+ return actualNames;
}
-
- /**
- * Tests the one-level search with a lower allid threshold value.
- */
+ /** Tests the one-level search with a lower allid threshold value. */
@Test
public void testOneLevelSearchWithAllIDThreshold() throws Exception
{
@@ -1231,12 +1174,11 @@
newSearchRequest("dc=example,dc=com", SearchScope.SINGLE_LEVEL, "(objectclass=organizationalUnit)");
InternalSearchOperation searchOperation = getRootConnection().processSearch(request);
assertEquals(searchOperation.getResultCode(), ResultCode.SUCCESS);
- assertEquals(searchOperation.getSearchEntries().size(),3);
+ assertThat(searchOperation.getSearchEntries()).hasSize(3);
//restore the allid threshold.
setAllIdThreshold(4000);
}
-
/** Sets a value of the allid threshold. */
private void setAllIdThreshold(int value) throws Exception
{
--
Gitblit v1.10.0