Search in sources :

Example 36 with Dn

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

the class LdifRevertorTest method testReverseModifyDNMove.

/**
 * Test a reversed move ModifyDN
 *
 * @throws LdapException on error
 */
@Test
public void testReverseModifyDNMove() throws LdapException {
    Dn dn = new Dn("cn=john doe, dc=example, dc=com");
    Dn newSuperior = new Dn("ou=system");
    Rdn rdn = new Rdn("cn=john doe");
    LdifEntry reversed = LdifRevertor.reverseMove(newSuperior, dn);
    assertNotNull(reversed);
    assertEquals("cn=john doe,ou=system", reversed.getDn().getName());
    assertEquals(ChangeType.ModDn, reversed.getChangeType());
    assertFalse(reversed.isDeleteOldRdn());
    assertEquals(rdn.getName(), reversed.getNewRdn());
    assertEquals("dc=example, dc=com", Strings.trim(reversed.getNewSuperior()));
    assertNull(reversed.getEntry());
}
Also used : 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 37 with Dn

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

the class LdifRevertorTest method test3ReverseRenameCompositeSimpleNotOverlappingKeepOldRdnExistsInEntry.

/**
 * Test a reversed rename ModifyDN, where the initial Rdn is composite,
 * the new Rdn is simple, not overlapping, with deleteOldRdn = false, and
 * with an Ava present in the initial entry.
 *
 * Covers case 3 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
 * cn: big
 * sn: small
 * sn: This is a test
 *
 * new Rdn : cn=big
 *
 * @throws LdapException on error
 */
@Test
public void test3ReverseRenameCompositeSimpleNotOverlappingKeepOldRdnExistsInEntry() 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=big");
    Entry entry = new DefaultEntry(dn, "objectClass: top", "objectClass: person", "cn: test", "cn: big", "sn: small", "sn: this is a test");
    List<LdifEntry> reverseds = LdifRevertor.reverseRename(entry, newRdn, LdifRevertor.KEEP_OLD_RDN);
    assertNotNull(reverseds);
    assertEquals(1, reverseds.size());
    LdifEntry reversed = reverseds.get(0);
    assertEquals("cn=big,ou=system", reversed.getDn().getName());
    assertEquals(ChangeType.ModRdn, reversed.getChangeType());
    assertFalse(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 38 with Dn

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

the class LdifRevertorTest method test4ReverseRenameCompositeSimpleNotOverlappingDeleteOldRdnDontExistsInEntry.

/**
 * Test a reversed rename ModifyDN, where the initial Rdn is composite,
 * the new Rdn is simple, not overlapping, with deleteOldRdn = true, and
 * with an Ava not present in the initial entry.
 *
 * Covers case 4 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: small
 * sn: This is a test
 *
 * new Rdn : cn=joe
 *
 * @throws LdapException on error
 */
@Test
public void test4ReverseRenameCompositeSimpleNotOverlappingDeleteOldRdnDontExistsInEntry() 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");
    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.DELETE_OLD_RDN);
    assertNotNull(reverseds);
    assertEquals(1, reverseds.size());
    LdifEntry reversed = reverseds.get(0);
    assertEquals("cn=joe,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 39 with Dn

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

the class LdifRevertorTest method test21ReverseRenameSimpleSimpleNotOverlappingDeleteOldRdnDontExistInEntry.

/**
 * Test a reversed rename ModifyDN, where the Rdn are both simple, not overlapping,
 * with deleteOldRdn = true, and the Ava not present in the initial entry
 *
 * Covers case 2.1 of http://cwiki.apache.org/confluence/display/DIRxSRVx11/Reverse+LDIF
 *
 * Initial entry
 * dn: cn=test,ou=system
 * objectclass: top
 * objectclass: person
 * cn: test
 * sn: This is a test
 *
 * new Rdn : cn=joe
 *
 * @throws LdapException on error
 */
@Test
public void test21ReverseRenameSimpleSimpleNotOverlappingDeleteOldRdnDontExistInEntry() throws LdapException {
    Dn dn = new Dn("cn=test,ou=system");
    Rdn oldRdn = new Rdn("cn=test");
    Rdn newRdn = new Rdn("cn=joe");
    Entry entry = new DefaultEntry(dn, "objectClass: top", "objectClass: person", "cn: test", "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,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 40 with Dn

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

the class LdifRevertorTest method test121ReverseRenameCompositeCompositeOverlappingKeepOldRdnDontExistInEntry.

/**
 * Test a reversed rename ModifyDN, where the initial Rdn is composite,
 * the new Rdn is composite, they are overlapping, with deleteOldRdn = false, and
 * none of new values exists in the entry.
 *
 * Covers case 12.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
 * cn: big
 * sn: small
 * sn: This is a test
 *
 * new Rdn : cn=joe+cn=test
 *
 * @throws LdapException on error
 */
@Test
public void test121ReverseRenameCompositeCompositeOverlappingKeepOldRdnDontExistInEntry() throws LdapException {
    Dn dn = new Dn("sn=small+cn=test,ou=system");
    Rdn oldRdn = new Rdn("sn=small+cn=test");
    Rdn newRdn = new Rdn("sn=joe+cn=test");
    Entry entry = new DefaultEntry(dn, "objectClass: top", "objectClass: person", "cn: test", "cn: big", "sn: small", "sn: this is a test");
    List<LdifEntry> reverseds = LdifRevertor.reverseRename(entry, newRdn, LdifRevertor.KEEP_OLD_RDN);
    assertNotNull(reverseds);
    assertEquals(1, reverseds.size());
    LdifEntry reversed = reverseds.get(0);
    assertEquals("sn=joe+cn=test,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)

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