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