TestBackendImpl.java revision 8ac57ee1cd50fcc3d02b36bea4ab1335924f1d7a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * CDDL HEADER START
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The contents of this file are subject to the terms of the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Common Development and Distribution License, Version 1.0 only
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * (the "License"). You may not use this file except in compliance
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * with the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * or http://forgerock.org/license/CDDLv1.0.html.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * See the License for the specific language governing permissions
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * and limitations under the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * When distributing Covered Code, include this CDDL HEADER in each
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * file and include the License file at legal-notices/CDDLv1_0.txt.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * If applicable, add the following below this CDDL HEADER, with the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * fields enclosed by brackets "[]" replaced with your own identifying
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * information:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Portions Copyright [yyyy] [name of copyright owner]
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * CDDL HEADER END
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Copyright 2006-2009 Sun Microsystems, Inc.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Portions Copyright 2011-2015 ForgeRock AS
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport static org.opends.server.schema.SchemaConstants.*;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.forgerock.opendj.ldap.ConditionResult;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.forgerock.opendj.ldap.schema.MatchingRule;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.forgerock.opendj.ldap.spi.IndexingOptions;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.opends.server.admin.server.AdminTestCaseUtils;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.opends.server.admin.std.meta.LocalDBBackendCfgDefn;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.opends.server.admin.std.server.LocalDBBackendCfg;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.opends.server.backends.jeb.BackendImpl.JELogFilesIterator;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.opends.server.controls.SubtreeDeleteControl;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.opends.server.core.DeleteOperationBasis;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.opends.server.core.ModifyDNOperationBasis;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.opends.server.core.ModifyOperationBasis;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.opends.server.protocols.internal.InternalClientConnection;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.opends.server.protocols.internal.InternalSearchOperation;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.opends.server.protocols.internal.SearchRequest;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.opends.server.types.AttributeBuilder;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.opends.server.types.DirectoryException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.opends.server.types.SearchResultEntry;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport static org.assertj.core.api.Assertions.*;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport static org.forgerock.opendj.ldap.ConditionResult.*;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport static org.forgerock.opendj.ldap.ModificationType.*;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport static org.opends.server.backends.pluggable.SuffixContainer.*;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport static org.opends.server.protocols.internal.InternalClientConnection.*;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport static org.opends.server.protocols.internal.Requests.*;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport static org.opends.server.types.Attributes.*;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport static org.opends.server.util.StaticUtils.*;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * BackendImpl Tester.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpublic class TestBackendImpl extends JebTestCase {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // This test suite depends on having the schema available, so we'll make
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // sure the server is started.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster backend = (BackendImpl)DirectoryServer.getBackend("indexRoot");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "dn: dc=test,dc=com",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "objectclass: top",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "objectclass: domain",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "dc: example",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "dn: ou=People,dc=test,dc=com",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "objectclass: top",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "objectclass: organizationalUnit",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "ou: People",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "dn: dc=test1,dc=com",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "objectclass: top",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "objectclass: domain",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "dc: example1");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "dn: uid=user.0,ou=People,dc=test,dc=com",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "objectClass: top",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "objectClass: person",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "objectClass: organizationalPerson",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "objectClass: inetOrgPerson",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "givenName: Aaccf",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "cn: Aaccf Amar",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "initials: AQA",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "employeeNumber: 0",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "uid: user.0",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "mail: user.0@example.com",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "userPassword: password",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "telephoneNumber: 380-535-2354",
@Test
catch (DirectoryException e)
result = doSubtreeSearch("(&(employeeNumber=*)(cn=A*)(employeeNumber>=0)(employeeNumber<=z))", attribs);
result = doSubtreeSearch("(&(employeeNumber<=z)(cn<=Abbey Abbie)(cn>=0)(|(cn>=Abahri Abazari)(employeeNumber<=9)))",
attribs);
private static List<SearchResultEntry> doSubtreeSearch(String filter, Set<String> attribs) throws Exception
private static List<AttributeIndexer> newAttributeIndexers(AttributeType attrType, MatchingRule matchingRule)
return indexers;
return options;
private static void assertIndexContainsID(List<? extends Indexer> indexers, Entry entry, Index index, EntryID entryID)
private static void assertIndexContainsID(List<? extends Indexer> indexers, Entry entry, Index index,
ModifyOperationBasis modifyOp = new ModifyOperationBasis(getRootConnection(), nextOperationID(), nextMessageID(),
EntryID newSuperiorID = ec.getDN2ID().get(null, DN.valueOf("ou=JEB Testers,dc=test,dc=com"), LockMode.DEFAULT);
EntryID newID = ec.getDN2ID().get(null, DN.valueOf("ou=Good People,ou=JEB Testers,dc=test,dc=com"), LockMode.DEFAULT);
@Test
final SearchRequest request = newSearchRequest("dc=test,dc=com", SearchScope.SUBORDINATES, "(givenName~=Aaccf)")
return names;
return names;
private static String indexName(EntryContainer entryContainer, AttributeType attrType, String indexID)
return entryContainer.getDatabasePrefix() + "_" + attrType.getPrimaryName().toLowerCase() + "." + indexID.toLowerCase();
final SearchRequest request = newSearchRequest("dc=test,dc=com", SearchScope.SUBORDINATES, "(carLicense=377*)")
return new Object[][] {
public void testMatchedDN(
) throws Exception
@Test
@Test
@Test
private List<Path> createLogFilesInDirectory(Path directory, String label, int start, int numberOfFiles)
throws Exception
return files;