@Test
public void testGetAllLdapNamesAndAttributes() throws NamingException {
SearchResult searchResult1 = mockSearchResult("cn=a1,dc=b,dc=c",
mockAttributes("attr1", "attr1value1"));
SearchResult searchResult2 = mockSearchResult("cn=a2,dc=b,dc=c",
mockAttributes("attr1", "attr1value2", "attr2", "attr2value1"));
SearchResult searchResult3 = mockSearchResult("cn=a3,dc=b,dc=c",
mockAttributes("attr1", "attr1value3", "attr1", "attr1value4"));
SearchResult searchResult4 = mockSearchResult("cn=a4,dc=b,dc=c",
mockEmptyAttributes());
MockResultCollection resultCollection = MockResultCollection.create()
.addSearchResults(searchResult1)
.addSearchResults(searchResult2, searchResult3)
.addSearchResults(searchResult4);
handler = new SearchResultHandler(resultCollection);
List<String> expected = Arrays.asList(
"cn=a1,dc=b,dc=c", "attr1value1",
"cn=a2,dc=b,dc=c", "attr1value2", "attr2value1",
"cn=a3,dc=b,dc=c", "attr1value3", "attr1value4",
"cn=a4,dc=b,dc=c");
Collections.sort(expected);
List<String> actual = handler.getAllLdapNamesAndAttributes();
Collections.sort(actual);
assertEquals(expected, actual);
assertAllNamingEnumerationsClosed(resultCollection);
}