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());
}
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());
}
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());
}
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());
}
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());
}
Aggregations