Search in sources :

Example 46 with Dn

use of org.apache.directory.api.ldap.model.name.Dn in project directory-ldap-api by apache.

the class LdifRevertorTest method test71ReverseRenameSimpleCompositeNotOverlappingDeleteOldRdnDontExistInEntry.

/**
 * Test a reversed rename ModifyDN, where the initial Rdn is simple,
 * the new Rdn is composite, they don't overlap, with deleteOldRdn = true, and
 * none of new values exists in the entry.
 *
 * Covers case 7.1 of http://cwiki.apache.org/confluence/display/DIRxSRVx11/Reverse+LDIF
 *
 * Initial entry
 * dn: cn=test,ou=system
 * objectclass: top
 * objectclass: person
 * cn: test
 * cn: small
 * sn: This is a test
 *
 * new Rdn : cn=joe+sn=plumber
 *
 * @throws LdapException on error
 */
@Test
public void test71ReverseRenameSimpleCompositeNotOverlappingDeleteOldRdnDontExistInEntry() throws LdapException {
    Dn dn = new Dn("cn=test,ou=system");
    Rdn oldRdn = new Rdn("cn=test");
    Rdn newRdn = new Rdn("cn=joe+sn=plumber");
    Entry entry = new DefaultEntry(dn, "objectClass: top", "objectClass: person", "cn: test", "cn: small", "sn: this is a test");
    List<LdifEntry> reverseds = LdifRevertor.reverseRename(entry, newRdn, LdifRevertor.DELETE_OLD_RDN);
    assertNotNull(reverseds);
    assertEquals(1, reverseds.size());
    LdifEntry reversed = reverseds.get(0);
    assertEquals("cn=joe+sn=plumber,ou=system", reversed.getDn().getName());
    assertEquals(ChangeType.ModRdn, reversed.getChangeType());
    assertTrue(reversed.isDeleteOldRdn());
    assertEquals(oldRdn.getName(), reversed.getNewRdn());
    assertNull(reversed.getNewSuperior());
}
Also used : LdifEntry(org.apache.directory.api.ldap.model.ldif.LdifEntry) Dn(org.apache.directory.api.ldap.model.name.Dn) Rdn(org.apache.directory.api.ldap.model.name.Rdn) LdifEntry(org.apache.directory.api.ldap.model.ldif.LdifEntry) Test(org.junit.Test)

Example 47 with Dn

use of org.apache.directory.api.ldap.model.name.Dn in project directory-ldap-api by apache.

the class LdifRevertorTest method test62ReverseRenameSimpleCompositeNotOverlappingKeepOldRdnDontExistInEntry.

/**
 * Test a reversed rename ModifyDN, where the initial Rdn is simple,
 * the new Rdn is composite, they don't overlap, with deleteOldRdn = false, and
 * the new values exists in the entry.
 *
 * Covers case 6.2 of http://cwiki.apache.org/confluence/display/DIRxSRVx11/Reverse+LDIF
 *
 * Initial entry
 * dn: cn=test,ou=system
 * objectclass: top
 * objectclass: person
 * cn: test
 * sn: small
 * sn: This is a test
 *
 * new Rdn : cn=joe+sn=small
 *
 * @throws LdapException on error
 */
@Test
public void test62ReverseRenameSimpleCompositeNotOverlappingKeepOldRdnDontExistInEntry() throws LdapException {
    Dn dn = new Dn("cn=test,ou=system");
    Rdn oldRdn = new Rdn("cn=test");
    Rdn newRdn = new Rdn("cn=joe+sn=small");
    Entry entry = new DefaultEntry(dn, "objectClass: top", "objectClass: person", "cn: test", "sn: small", "sn: this is a test");
    List<LdifEntry> reverseds = LdifRevertor.reverseRename(entry, newRdn, LdifRevertor.KEEP_OLD_RDN);
    assertNotNull(reverseds);
    assertEquals(2, reverseds.size());
    LdifEntry reversed = reverseds.get(0);
    assertEquals("cn=joe+sn=small,ou=system", reversed.getDn().getName());
    assertEquals(ChangeType.ModRdn, reversed.getChangeType());
    assertFalse(reversed.isDeleteOldRdn());
    assertEquals(oldRdn.getName(), reversed.getNewRdn());
    assertNull(reversed.getNewSuperior());
    reversed = reverseds.get(1);
    assertEquals("cn=test,ou=system", reversed.getDn().getName());
    assertEquals(ChangeType.Modify, reversed.getChangeType());
    Modification[] mods = reversed.getModificationArray();
    assertNotNull(mods);
    assertEquals(1, mods.length);
    assertEquals(ModificationOperation.REMOVE_ATTRIBUTE, mods[0].getOperation());
    assertNotNull(mods[0].getAttribute());
    assertEquals("cn", mods[0].getAttribute().getId());
    assertEquals("joe", mods[0].getAttribute().getString());
}
Also used : LdifEntry(org.apache.directory.api.ldap.model.ldif.LdifEntry) Dn(org.apache.directory.api.ldap.model.name.Dn) Rdn(org.apache.directory.api.ldap.model.name.Rdn) LdifEntry(org.apache.directory.api.ldap.model.ldif.LdifEntry) Test(org.junit.Test)

Example 48 with Dn

use of org.apache.directory.api.ldap.model.name.Dn in project directory-ldap-api by apache.

the class LdifRevertorTest method test111ReverseRenameCompositeCompositeNotOverlappingDeleteOldRdnDontExistInEntry.

/**
 * Test a reversed rename ModifyDN, where the initial Rdn is composite,
 * the new Rdn is composite, they don't overlap, with deleteOldRdn = true, and
 * none of new values exists in the entry.
 *
 * Covers case 11.1 of http://cwiki.apache.org/confluence/display/DIRxSRVx11/Reverse+LDIF
 *
 * Initial entry
 * dn: sn=small+cn=test,ou=system
 * objectclass: top
 * objectclass: person
 * cn: test
 * sn: big
 * sn: small
 * sn: This is a test
 *
 * new Rdn : cn=joe+sn=plumber
 *
 * @throws LdapException on error
 */
@Test
public void test111ReverseRenameCompositeCompositeNotOverlappingDeleteOldRdnDontExistInEntry() throws LdapException {
    Dn dn = new Dn("sn=small+cn=test,ou=system");
    Rdn oldRdn = new Rdn("sn=small+cn=test");
    Rdn newRdn = new Rdn("cn=joe+sn=plumber");
    Entry entry = new DefaultEntry(dn, "objectClass: top", "objectClass: person", "cn: test", "sn: big", "sn: small", "sn: this is a test");
    List<LdifEntry> reverseds = LdifRevertor.reverseRename(entry, newRdn, LdifRevertor.DELETE_OLD_RDN);
    assertNotNull(reverseds);
    assertEquals(1, reverseds.size());
    LdifEntry reversed = reverseds.get(0);
    assertEquals("cn=joe+sn=plumber,ou=system", reversed.getDn().getName());
    assertEquals(ChangeType.ModRdn, reversed.getChangeType());
    assertTrue(reversed.isDeleteOldRdn());
    assertEquals(oldRdn.getName(), reversed.getNewRdn());
    assertNull(reversed.getNewSuperior());
}
Also used : LdifEntry(org.apache.directory.api.ldap.model.ldif.LdifEntry) Dn(org.apache.directory.api.ldap.model.name.Dn) Rdn(org.apache.directory.api.ldap.model.name.Rdn) LdifEntry(org.apache.directory.api.ldap.model.ldif.LdifEntry) Test(org.junit.Test)

Example 49 with Dn

use of org.apache.directory.api.ldap.model.name.Dn in project directory-ldap-api by apache.

the class LdifUtilsTest method testReverseModifyDNSuperior.

/**
 * Check that the correct reverse LDIF is produced for a modifyDn
 * operation that moves and renames the entry while preserving the
 * old rdn.
 *
 * @throws NamingException on error
 */
@Test
public void testReverseModifyDNSuperior() throws LdapException {
    Dn dn = new Dn("cn=john doe, dc=example, dc=com");
    Dn newSuperior = new Dn("ou=system");
    Entry entry = new DefaultEntry(dn);
    entry.add("objectClass", "person", "uidObject");
    entry.add("cn", "john doe", "jack doe");
    entry.add("sn", "doe");
    entry.add("uid", "jdoe");
    List<LdifEntry> reverseds = LdifRevertor.reverseMoveAndRename(entry, newSuperior, new Rdn("cn=jack doe"), false);
    assertNotNull(reverseds);
    assertEquals(1, reverseds.size());
    LdifEntry reversed = reverseds.get(0);
    assertEquals("cn=jack doe,ou=system", reversed.getDn().getName());
    assertEquals(ChangeType.ModRdn, reversed.getChangeType());
    assertFalse(reversed.isDeleteOldRdn());
    assertEquals("cn=john doe", reversed.getNewRdn());
    assertEquals("dc=example, dc=com", Strings.trim(reversed.getNewSuperior()));
    assertNull(reversed.getEntry());
}
Also used : DefaultEntry(org.apache.directory.api.ldap.model.entry.DefaultEntry) Entry(org.apache.directory.api.ldap.model.entry.Entry) LdifEntry(org.apache.directory.api.ldap.model.ldif.LdifEntry) DefaultEntry(org.apache.directory.api.ldap.model.entry.DefaultEntry) Dn(org.apache.directory.api.ldap.model.name.Dn) Rdn(org.apache.directory.api.ldap.model.name.Rdn) LdifEntry(org.apache.directory.api.ldap.model.ldif.LdifEntry) Test(org.junit.Test)

Example 50 with Dn

use of org.apache.directory.api.ldap.model.name.Dn in project directory-ldap-api by apache.

the class LdifUtilsTest method testReverseModifyDNDeleteOldRdnSuperior.

/**
 * Test a reversed ModifyDN with a deleteOldRdn, rdn change, and a superior
 *
 * @throws NamingException on error
 */
@Test
public void testReverseModifyDNDeleteOldRdnSuperior() throws LdapException {
    Dn dn = new Dn("cn=john doe, dc=example, dc=com");
    Dn newSuperior = new Dn("ou=system");
    Entry entry = new DefaultEntry(dn);
    entry.add("objectClass", "person", "uidObject");
    entry.add("cn", "john doe");
    entry.add("sn", "doe");
    entry.add("uid", "jdoe");
    List<LdifEntry> reverseds = LdifRevertor.reverseMoveAndRename(entry, newSuperior, new Rdn("cn=jack doe"), false);
    assertNotNull(reverseds);
    assertEquals(1, reverseds.size());
    LdifEntry reversed = reverseds.get(0);
    assertEquals("cn=jack doe,ou=system", reversed.getDn().getName());
    assertEquals(ChangeType.ModRdn, reversed.getChangeType());
    assertTrue(reversed.isDeleteOldRdn());
    assertEquals("cn=john doe", reversed.getNewRdn());
    assertEquals("dc=example, dc=com", Strings.trim(reversed.getNewSuperior()));
    assertNull(reversed.getEntry());
}
Also used : DefaultEntry(org.apache.directory.api.ldap.model.entry.DefaultEntry) Entry(org.apache.directory.api.ldap.model.entry.Entry) LdifEntry(org.apache.directory.api.ldap.model.ldif.LdifEntry) DefaultEntry(org.apache.directory.api.ldap.model.entry.DefaultEntry) Dn(org.apache.directory.api.ldap.model.name.Dn) Rdn(org.apache.directory.api.ldap.model.name.Rdn) LdifEntry(org.apache.directory.api.ldap.model.ldif.LdifEntry) Test(org.junit.Test)

Aggregations

Dn (org.apache.directory.api.ldap.model.name.Dn)307 Test (org.junit.Test)183 Rdn (org.apache.directory.api.ldap.model.name.Rdn)63 LdifEntry (org.apache.directory.api.ldap.model.ldif.LdifEntry)50 LdapException (org.apache.directory.api.ldap.model.exception.LdapException)39 Entry (org.apache.directory.api.ldap.model.entry.Entry)34 DnNode (org.apache.directory.api.ldap.util.tree.DnNode)30 DefaultEntry (org.apache.directory.api.ldap.model.entry.DefaultEntry)20 LdapInvalidDnException (org.apache.directory.api.ldap.model.exception.LdapInvalidDnException)19 DefaultAttribute (org.apache.directory.api.ldap.model.entry.DefaultAttribute)17 Modification (org.apache.directory.api.ldap.model.entry.Modification)17 DefaultModification (org.apache.directory.api.ldap.model.entry.DefaultModification)16 TLV (org.apache.directory.api.asn1.ber.tlv.TLV)10 Attribute (org.apache.directory.api.ldap.model.entry.Attribute)10 ModifyRequest (org.apache.directory.api.ldap.model.message.ModifyRequest)10 Referral (org.apache.directory.api.ldap.model.message.Referral)10 File (java.io.File)9 ArrayList (java.util.ArrayList)9 ResponseCarryingException (org.apache.directory.api.ldap.codec.api.ResponseCarryingException)8 Value (org.apache.directory.api.ldap.model.entry.Value)8