You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2011/01/11 20:04:24 UTC
svn commit: r1057800 -
/directory/apacheds/branches/apacheds-AP/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryRenameOperationIT.java
Author: elecharny
Date: Tue Jan 11 19:04:24 2011
New Revision: 1057800
URL: http://svn.apache.org/viewvc?rev=1057800&view=rev
Log:
o Added a new test
o Cleared all the others unrelated tests
Modified:
directory/apacheds/branches/apacheds-AP/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryRenameOperationIT.java
Modified: directory/apacheds/branches/apacheds-AP/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryRenameOperationIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-AP/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryRenameOperationIT.java?rev=1057800&r1=1057799&r2=1057800&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-AP/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryRenameOperationIT.java (original)
+++ directory/apacheds/branches/apacheds-AP/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryRenameOperationIT.java Tue Jan 11 19:04:24 2011
@@ -21,10 +21,8 @@ package org.apache.directory.server.core
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
import java.util.Set;
@@ -34,13 +32,11 @@ import org.apache.directory.server.core.
import org.apache.directory.server.core.annotations.CreateDS;
import org.apache.directory.server.core.integ.FrameworkRunner;
import org.apache.directory.shared.ldap.entry.Entry;
-import org.apache.directory.shared.ldap.entry.EntryAttribute;
import org.apache.directory.shared.ldap.ldif.LdifUtils;
import org.apache.directory.shared.ldap.message.AddResponse;
import org.apache.directory.shared.ldap.message.ModifyDnResponse;
import org.apache.directory.shared.ldap.message.ResultCodeEnum;
import org.apache.directory.shared.ldap.name.DN;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -69,489 +65,11 @@ public class SubentryRenameOperationIT e
// -------------------------------------------------------------------
// Failure expected
// -------------------------------------------------------------------
- /**
- * Test the addition of an autonomous area in the rootDN
- */
- @Test
- @Ignore
- public void testAddAutonomousAreaRootDN() throws Exception
- {
- Entry autonomousArea = LdifUtils.createEntry(
- "",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: autonomousArea",
- "administrativeRole: autonomousArea" );
-
- // It should fail
- AddResponse response = adminConnection.add( autonomousArea );
-
- assertEquals( ResultCodeEnum.ENTRY_ALREADY_EXISTS, response.getLdapResult().getResultCode() );
- }
-
-
- /**
- * Test the addition of an autonomous area in a naming context
- */
- @Test
- @Ignore
- public void testAddAutonomousAreaNamingContext() throws Exception
- {
- Entry autonomousArea = LdifUtils.createEntry(
- "ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: autonomousArea",
- "administrativeRole: autonomousArea" );
-
- // It should fail
- AddResponse response = adminConnection.add( autonomousArea );
-
- assertEquals( ResultCodeEnum.ENTRY_ALREADY_EXISTS, response.getLdapResult().getResultCode() );
- }
-
-
- /**
- * Test the addition of an autonomous area in an existing entry
- */
- @Test
- @Ignore
- public void testAddAutonomousAreaExistingEntry() throws Exception
- {
- Entry autonomousArea = LdifUtils.createEntry(
- "uid=admin,ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: autonomousArea",
- "administrativeRole: autonomousArea" );
-
- // It should fail
- AddResponse response = adminConnection.add( autonomousArea );
-
- assertEquals( ResultCodeEnum.ENTRY_ALREADY_EXISTS, response.getLdapResult().getResultCode() );
- }
-
-
- /**
- * Test the addition of an IAP with no parent SAP
- */
- @Test
- @Ignore
- public void testAddIAPWithNoSAP() throws Exception
- {
- Entry iap = LdifUtils.createEntry(
- "ou=IAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: IAP",
- "administrativeRole: accessControlInnerArea" );
-
- // It should fail
- AddResponse response = adminConnection.add( iap );
-
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, response.getLdapResult().getResultCode() );
- }
-
-
- /**
- * Test the addition of an SAP with the same IAP (AccessControl)
- */
- @Test
- @Ignore
- public void testAddIAPWithSAPAccessControl() throws Exception
- {
- Entry sapiap = LdifUtils.createEntry(
- "ou=SAP-IAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: SAP-IAP",
- "administrativeRole: accessControlInnerArea",
- "administrativeRole: accessControlSpecificArea"
- );
-
- // It should fail
- AddResponse response = adminConnection.add( sapiap );
-
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, response.getLdapResult().getResultCode() );
- }
-
-
- /**
- * Test the addition of an SAP with the same IAP (CollectiveAttribute)
- */
- @Test
- @Ignore
- public void testAddIAPWithSAPCollectiveAttribute() throws Exception
- {
- Entry sapiap = LdifUtils.createEntry(
- "ou=SAP-IAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: SAP-IAP",
- "administrativeRole: CollectiveAttributeInnerArea",
- "administrativeRole: CollectiveAttributeSpecificArea"
- );
-
- // It should fail
- AddResponse response = adminConnection.add( sapiap );
-
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, response.getLdapResult().getResultCode() );
- }
-
-
- /**
- * Test the addition of an SAP with the same IAP (TriggerExecution)
- */
- @Test
- @Ignore
- public void testAddIAPWithSAPTriggerExecution() throws Exception
- {
- Entry sapiap = LdifUtils.createEntry(
- "ou=SAP-IAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: SAP-IAP",
- "administrativeRole: TriggerExecutionInnerArea",
- "administrativeRole: TriggerExecutionSpecificArea"
- );
-
- // It should fail
- AddResponse response = adminConnection.add( sapiap );
-
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, response.getLdapResult().getResultCode() );
- }
-
-
- /**
- * Test the addition of an IAP within an IAP (TriggerExecution)
- */
- @Test
- @Ignore
- public void testAddIAPWithinAAPTriggerExecution() throws Exception
- {
- Entry sapiap = LdifUtils.createEntry(
- "ou=SAP-IAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: SAP-IAP",
- "administrativeRole: autonomousArea",
- "administrativeRole: TriggerExecutionInnerArea"
- );
-
- // It should fail
- AddResponse response = adminConnection.add( sapiap );
-
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, response.getLdapResult().getResultCode() );
- }
-
-
- /**
- * Test the addition of an AAP with no role
- */
- @Test
- @Ignore
- public void testAddAAPWithNoRole() throws Exception
- {
- Entry autonomousArea = LdifUtils.createEntry(
- "ou=AAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: AAP",
- "administrativeRole: " );
-
- // It should fail
- AddResponse response = adminConnection.add( autonomousArea );
-
- assertEquals( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, response.getLdapResult().getResultCode() );
- }
-
-
- /**
- * Test the addition of an AP directly under a subentry
- */
- @Test
- @Ignore
- public void testAddAPUnderSubentry() throws Exception
- {
- // First add an AAP
- createAAP( "ou=AAP,ou=system" );
-
- // Add a subentry now
- createCaSubentry( "cn=test,ou=AAP,ou=system", "{}" );
-
- Entry subentryEntry = adminConnection.lookup( "cn=test,ou=AAP,ou=system", "+", "*" );
- assertNotNull( subentryEntry );
-
- Entry ap = adminConnection.lookup( "ou=AAP,ou=system", "+", "*" );
- assertNotNull( ap );
- assertEquals( "1", ap.get( "CollectiveAttributeSeqNumber" ).getString() );
-
- // Now, try to inject an AP under the subentry
- // First add an AAP
- Entry badAP = LdifUtils.createEntry(
- "ou=BADAP,cn=test,ou=AAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: BADAP",
- "administrativeRole: autonomousArea" );
-
- AddResponse response = adminConnection.add( badAP );
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, response.getLdapResult().getResultCode() );
- }
-
-
- /**
- * Test the addition of a SAP with a normal user
- */
- @Test
- @Ignore
- public void testAddSAPWithNonAdmin() throws Exception
- {
- Entry sap = LdifUtils.createEntry(
- "ou=SAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: SAP",
- "administrativeRole: accessControlSpecificArea" );
-
- // It should fail
- AddResponse response = userConnection.add( sap );
-
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, response.getLdapResult().getResultCode() );
- }
-
-
- /**
- * Test the addition of some invalid role
- * @throws Exception
- */
- @Test
- @Ignore
- public void testAddInvalidRole() throws Exception
- {
- Entry autonomousArea = LdifUtils.createEntry(
- "ou=autonomousArea, ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: autonomousArea",
- "administrativeRole: accessControlBadArea",
- "administrativeRole: TRIGGEREXECUTIONINNERAREA" );
-
- AddResponse response = adminConnection.add( autonomousArea );
-
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, response.getLdapResult().getResultCode() );
- }
-
-
- /**
- * Test the addition of some roles more than once
- * @throws Exception
- */
- @Test
- @Ignore
- public void testAddRoleMoreThanOnce() throws Exception
- {
- Entry autonomousArea = LdifUtils.createEntry(
- "ou=autonomousArea, ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: autonomousArea",
- "administrativeRole: autonomousArea",
- "administrativeRole: 2.5.23.1" );
-
- // It should not succeed
- AddResponse response = adminConnection.add( autonomousArea );
-
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, response.getLdapResult().getResultCode() );
- }
-
-
- /**
- * Test the addition of an IAP under a SAP for a different role
- */
- @Test
- @Ignore
- public void testAddIAPUnderSAPDifferentRole() throws Exception
- {
- // First add an SAP
- createAcSAP( "ou=SAP,ou=system" );
-
- // Add a IAP now
- Entry iap = LdifUtils.createEntry(
- "ou=IAP,ou=SAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: IAP",
- "administrativeRole: collectiveATtributeInnerArea" );
-
- AddResponse response = adminConnection.add( iap );
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, response.getLdapResult().getResultCode() );
- }
// -------------------------------------------------------------------
// Success expected
// -------------------------------------------------------------------
- /**
- * Test the addition of an AAP with SAPs
- */
- @Test
- @Ignore
- public void testAddAAPWithSAPs() throws Exception
- {
- Entry autonomousArea = LdifUtils.createEntry(
- "ou=AAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: AAP",
- "administrativeRole: accessControlSpecificArea",
- "administrativeRole: autonomousArea"
- );
-
- // It should succeed
- AddResponse response = adminConnection.add( autonomousArea );
-
- assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
-
- Entry adminPoint = adminConnection.lookup( "ou=AAP,ou=system", "+", "*" );
-
- EntryAttribute roles = adminPoint.get( "administrativeRole" );
-
- assertNotNull( roles );
- assertEquals( 5, roles.size() );
- assertTrue( roles.contains( "autonomousArea", "accessControlSpecificArea", "collectiveAttributeSpecificArea",
- "triggerExecutionSpecificArea", "subSchemaSpecificArea" ) );
- }
-
-
- /**
- * Test the addition of an autonomous area
- * @throws Exception
- */
- @Test
- @Ignore
- public void testAddAutonomousArea() throws Exception
- {
- createAAP( "ou=autonomousArea, ou=system" );
-
- Entry adminPoint = adminConnection.lookup( "ou=autonomousArea, ou=system", "+" );
- assertNotNull( adminPoint );
- assertEquals( -1, Long.parseLong( adminPoint.get( "AccessControlSeqNumber" ).getString() ) );
- assertEquals( -1, Long.parseLong( adminPoint.get( "CollectiveAttributeSeqNumber" ).getString() ) );
- assertEquals( -1, Long.parseLong( adminPoint.get( "SubSchemaSeqNumber" ).getString() ) );
- assertEquals( -1, Long.parseLong( adminPoint.get( "TriggerExecutionSeqNumber" ).getString() ) );
-
- // Check that the entry is containing all the roles
- Entry entry = getAdminRole( "ou=autonomousArea, ou=system" );
-
- assertTrue( entry.contains( "administrativeRole", "autonomousArea" ) );
- assertTrue( entry.contains( "administrativeRole", "accessControlSpecificArea" ) );
- assertTrue( entry.contains( "administrativeRole", "collectiveAttributeSpecificArea" ) );
- assertTrue( entry.contains( "administrativeRole", "subschemaSpecificArea" ) );
- assertTrue( entry.contains( "administrativeRole", "triggerExecutionSpecificArea" ) );
-
- Entry autonomousArea = LdifUtils.createEntry(
- "ou=autonomousArea2, ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: autonomousArea2",
- "administrativeRole: autonomousArea",
- "administrativeRole: accessControlSpecificArea",
- "administrativeRole: collectiveAttributeInnerArea",
- "administrativeRole: subschemaSpecificArea",
- "administrativeRole: TRIGGEREXECUTIONSPECIFICAREA" );
-
- // It should fail, as an autonomous area is already defining the specific areas
- AddResponse response = adminConnection.add( autonomousArea );
-
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, response.getLdapResult().getResultCode() );
- }
-
-
- /**
- * Test the addition of some specific area
- * @throws Exception
- */
- @Test
- @Ignore
- public void testAddSpecificAreas() throws Exception
- {
- Entry autonomousArea = LdifUtils.createEntry(
- "ou=autonomousArea, ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: autonomousArea",
- "administrativeRole: accessControlSpecificArea",
- "administrativeRole: TRIGGEREXECUTIONSPECIFICAREA" );
-
- AddResponse response = adminConnection.add( autonomousArea );
-
- assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
-
- // Check that the entry is containing all the roles
- Entry entry = getAdminRole( "ou=autonomousArea, ou=system" );
-
- assertFalse( entry.contains( "administrativeRole", "autonomousArea" ) );
- assertTrue( entry.contains( "administrativeRole", "accessControlSpecificArea" ) );
- assertFalse( entry.contains( "administrativeRole", "collectiveAttributeSpecificArea" ) );
- assertFalse( entry.contains( "administrativeRole", "2.5.23.4" ) );
- assertTrue( entry.contains( "administrativeRole", "triggerExecutionSpecificArea" ) );
- }
-
-
- /**
- * Test the addition of some inner area
- * @throws Exception
- */
- @Test
- @Ignore
- public void testAddInnerAreas() throws Exception
- {
- createAAP( "ou=AAP,ou=system" );
-
- // Now add the IAPs
- Entry innerAreas = LdifUtils.createEntry(
- "ou=innerAreas, ou=AAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: innerAreas",
- "administrativeRole: accessControlINNERArea",
- "administrativeRole: TRIGGEREXECUTIONINNERAREA" );
-
- AddResponse response = adminConnection.add( innerAreas );
-
- assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
-
- // Check that the entry is containing all the roles
- Entry entry = getAdminRole( "ou=innerAreas, ou=AAP,ou=system" );
-
- assertFalse( entry.contains( "administrativeRole", "autonomousArea" ) );
- assertTrue( entry.contains( "administrativeRole", "accessControlInnerArea" ) );
- assertTrue( entry.contains( "administrativeRole", "triggerExecutionInnerArea" ) );
- }
-
-
- /**
- * Test the addition of an IAP under a SAP
- */
- @Test
- @Ignore
- public void testAddIAPUnderSAP() throws Exception
- {
- // First add an SAP
- createAcSAP( "ou=SAP,ou=system" );
-
- // Add a IAP now
- Entry iap = LdifUtils.createEntry(
- "ou=IAP,ou=SAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: IAP",
- "administrativeRole: accessControlInnerArea" );
-
- AddResponse response = adminConnection.add( iap );
- assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
- }
// ===================================================================
@@ -703,7 +221,7 @@ public class SubentryRenameOperationIT e
assertEquals( "test1", sub.getCn().getString() );
}
- // Now ch"ck the UUID cache
+ // Now check the UUID cache
Subentry[] subArray = service.getSubentryCache().getSubentries( oldSubentryDn );
assertNull( subArray );
@@ -723,265 +241,67 @@ public class SubentryRenameOperationIT e
/**
- * Test the addition of a subentry under a SAP
+ * Test the rename of a subentry under a SAP
*/
@Test
- @Ignore
- public void testAddSubentryUnderSAP() throws Exception
+ public void testRenameSubentryUnderSAP() throws Exception
{
- // First add an SAP
- createCaSAP( "ou=SAP,ou=system" );
-
- // Add a subentry now
- Entry subentry = LdifUtils.createEntry(
- "cn=test,ou=SAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: subentry",
- "ObjectClass: collectiveAttributeSubentry",
- "cn: test",
- "subtreeSpecification: {}",
- "c-o: Test Org" );
+ DN sapDn = service.getDNFactory().create( "ou=SAP,ou=system" );
+ DN oldSubentryDn = service.getDNFactory().create( "cn=test,ou=SAP,ou=system" );
+ DN newSubentryDn = service.getDNFactory().create( "cn=test1,ou=SAP,ou=system" );
- AddResponse response = adminConnection.add( subentry );
- assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
- }
-
-
- /**
- * Test the addition of a subentry under an IAP
- */
- @Test
- @Ignore
- public void testAddSubentryUnderIAP() throws Exception
- {
// First add an SAP
createCaSAP( "ou=SAP,ou=system" );
- // Add a IAP now
- Entry iap = LdifUtils.createEntry(
- "ou=IAP,ou=SAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: IAP",
- "administrativeRole: collectiveAttributeInnerArea" );
-
- AddResponse response = adminConnection.add( iap );
- assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
-
// Add a subentry now
createCaSubentry( "cn=test,ou=SAP,ou=system", "{}" );
- }
-
-
- /**
- * Test the addition of a subentry with 2 roles under an AAP
- */
- @Test
- @Ignore
- public void testAddSubentryWith2Roles() throws Exception
- {
- // First add an AAP
- createAAP( "ou=AAP,ou=system" );
- // Add a subentry now
- Entry subentry = LdifUtils.createEntry(
- "cn=test,ou=AAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: subentry",
- "ObjectClass: collectiveAttributeSubentry",
- "ObjectClass: accessControlSubentry",
- "cn: test",
- "subtreeSpecification: {}",
- "c-o: Test Org",
- "prescriptiveACI: { "
- + " identificationTag \"addAci\", "
- + " precedence 14, "
- + " authenticationLevel none, "
- + " itemOrUserFirst userFirst: "
- + " { "
- + " userClasses { userGroup { \"cn=Administrators,ou=groups,ou=system\" } },"
- + " userPermissions "
- + " { "
- + " { "
- + " protectedItems { entry, allUserAttributeTypesAndValues }, "
- + " grantsAndDenials { grantCompare, grantRead, grantBrowse } "
- + " } "
- + " } "
- + " } "
- + "}" );
+ long caSeqNumber = getCaSeqNumber( "ou=SAP,ou=system" );
- AddResponse response = adminConnection.add( subentry );
- assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
+ // Check the rename
+ ModifyDnResponse renameResponse = adminConnection.rename( "cn=test,ou=SAP,ou=system", "cn=test1" );
+ assertEquals( ResultCodeEnum.SUCCESS, renameResponse.getLdapResult().getResultCode() );
- DN subentryDN = new DN( "cn=test, ou=AAP,ou=system" );
+ // The SeqNumber should not have changed
+ assertEquals(caSeqNumber, getCaSeqNumber( "ou=SAP,ou=system" ) );
- // Get back the subentry
- Entry addedSE = adminConnection.lookup( subentryDN, "+" );
- String subentryUUID = addedSE.get( "entryUUID" ).getString();
+ // The CA APCache should point to the new subentries
+ // Then CA
+ AdministrativePoint caAP = service.getCollectiveAttributeAPCache().getElement( sapDn );
- DN apDn = new DN( "ou=AAP,ou=system" );
- apDn.normalize( service.getSchemaManager() );
+ assertNotNull( caAP );
+ Set<Subentry> subentries = caAP.getSubentries();
- // Check that we have a ref to the added subentry in the two APs (AC and CA)
- AdministrativePoint apAC = service.getAccessControlAPCache().getElement( apDn );
+ assertNotNull( subentries );
- assertNotNull( apAC.getSubentries() );
- assertEquals( 1, apAC.getSubentries().size() );
- Subentry subentryAC = (Subentry)(apAC.getSubentries().toArray()[0]);
+ for ( Subentry sub : subentries )
+ {
+ assertEquals( "test1", sub.getCn().getString() );
+ }
- assertEquals( subentryAC.getUuid(), subentryUUID );
-
- AdministrativePoint apCA = service.getCollectiveAttributeAPCache().getElement( apDn );
+ // Now check the UUID cache
+ Subentry[] subArray = service.getSubentryCache().getSubentries( oldSubentryDn );
- assertNotNull( apCA.getSubentries() );
- assertEquals( 1, apCA.getSubentries().size() );
- Subentry subentryCA = (Subentry)(apCA.getSubentries().toArray()[0]);
+ assertNull( subArray );
- assertEquals( subentryCA.getUuid(), subentryUUID );
+ subArray = service.getSubentryCache().getSubentries( newSubentryDn );
+
+ assertNotNull( subArray );
+
+ for ( Subentry sub : subentries )
+ {
+ if ( sub != null )
+ {
+ assertEquals( "test1", sub.getCn().getString() );
+ }
+ }
}
// ===================================================================
- // Test the Add operation for Entries
+ // Test the Rename operation for Entries
// -------------------------------------------------------------------
// -------------------------------------------------------------------
// Success expected
// -------------------------------------------------------------------
- /**
- * Test the addition of a SAP, SE and 2 entries
- */
- @Test
- @Ignore
- public void testAdd2Entries() throws Exception
- {
- // First add an SAP
- createCaSAP( "ou=SAP,ou=system" );
- assertEquals( -1L, getCaSeqNumber( "ou=SAP,ou=system" ) );
-
- // Create a first entry
- Entry e1 = LdifUtils.createEntry(
- "cn=e1,ou=SAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: person",
- "cn: e1",
- "sn: entry 1" );
-
- AddResponse response = adminConnection.add( e1 );
- assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
-
- assertEquals( -1L, getCaSeqNumber( "cn=e1,ou=SAP,ou=system" ) );
-
- // Create a second entry
- Entry e2 = LdifUtils.createEntry(
- "cn=e2,ou=SAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: person",
- "cn: e2",
- "sn: entry 2" );
-
- response = adminConnection.add( e2 );
- assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
-
- assertEquals( -1L, getCaSeqNumber( "cn=e2,ou=SAP,ou=system" ) );
-
- // Add a subentry now
- createCaSubentry( "cn=test,ou=SAP,ou=system", "{}" );
-
- // Get back the CA SeqNumber
- long caSeqNumber = getCaSeqNumber( "ou=SAP,ou=system" );
-
- assertTrue( caSeqNumber > -1L );
-
- // Create a third entry
- Entry e3 = LdifUtils.createEntry(
- "cn=e3,ou=SAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: person",
- "cn: e3",
- "sn: entry 3" );
-
- response = adminConnection.add( e3 );
- assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
-
- // The CASeqNumber for this entry must be the same than it's AP
- assertEquals( caSeqNumber, getCaSeqNumber( "cn=e3,ou=SAP,ou=system" ) );
-
- // Now, check that when we read the other entries, their CA seqNumber is also updated
- assertEquals( caSeqNumber, getCaSeqNumber( "cn=e1,ou=SAP,ou=system" ) );
- assertEquals( caSeqNumber, getCaSeqNumber( "cn=e2,ou=SAP,ou=system" ) );
- }
-
-
- /**
- * Test an addition of AP, SE and entries with a selection
- */
- @Test
- @Ignore
- public void testAddComplex() throws Exception
- {
- // First add an SAP
- createCaSAP( "ou=SAP,ou=system" );
-
- // Create a first entry
- Entry e1 = LdifUtils.createEntry(
- "ou=e1,ou=SAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: organizationalUnit",
- "ou: e1" );
-
- AddResponse response = adminConnection.add( e1 );
- assertEquals( -1L, getCaSeqNumber( "ou=e1,ou=SAP,ou=system" ) );
-
- // Create a second entry
- Entry e2 = LdifUtils.createEntry(
- "cn=e2,ou=SAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: person",
- "cn: e2",
- "sn: entry 2" );
-
- response = adminConnection.add( e2 );
- assertEquals( -1L, getCaSeqNumber( "cn=e2,ou=SAP,ou=system" ) );
-
- // Add a subentry now, selecting only entries with a person AT
- createCaSubentry( "cn=test,ou=SAP,ou=system", "{ specificationFilter item:person }" );
-
- // Get back the CA SeqNumber
- long caSeqNumber = getCaSeqNumber( "ou=SAP,ou=system" );
-
- assertTrue( caSeqNumber > -1L );
-
- // Create a third entry under e1
- Entry e3 = LdifUtils.createEntry(
- "cn=e3,ou=e1,ou=SAP,ou=system",
- "ObjectClass: top",
- "ObjectClass: person",
- "cn: e3",
- "sn: entry 3" );
-
- response = adminConnection.add( e3 );
- assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
-
- // Check the entries now: get the SAP SN and the Subentry UUID
- long sapSN = getCaSeqNumber( "ou=SAP,ou=system" );
- String uuid = adminConnection.lookup( "cn=test,ou=SAP,ou=system", "entryUUID" ).get( "entryUUID" ).getString();
-
- // E1
- e1 = adminConnection.lookup( "ou=e1,ou=SAP,ou=system", "+" );
-
- assertNull( e1.get( "CollectiveAttributeSubentriesUUID" ) );
- assertEquals( sapSN, Long.parseLong( e1.get( "CollectiveAttributeSeqNumber" ).getString() ) );
-
- // E2
- e2 = adminConnection.lookup( "cn=e2,ou=SAP,ou=system", "+" );
-
- assertEquals( uuid, e2.get( "CollectiveAttributeSubentriesUUID" ).getString() );
- assertEquals( sapSN, Long.parseLong( e2.get( "CollectiveAttributeSeqNumber" ).getString() ) );
-
- // E3
- e3 = adminConnection.lookup( "cn=e3,ou=e1,ou=SAP,ou=system", "+" );
-
- assertEquals( uuid, e3.get( "CollectiveAttributeSubentriesUUID" ).getString() );
- assertEquals( sapSN, Long.parseLong( e3.get( "CollectiveAttributeSeqNumber" ).getString() ) );
- }
}