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 2010/07/30 01:03:41 UTC
svn commit: r980603 - in /directory/apacheds/trunk:
core-integ/src/test/java/org/apache/directory/server/core/admin/AdministrativePointServiceIT.java
core/src/main/java/org/apache/directory/server/core/admin/AdministrativePointInterceptor.java
Author: elecharny
Date: Thu Jul 29 23:03:41 2010
New Revision: 980603
URL: http://svn.apache.org/viewvc?rev=980603&view=rev
Log:
Added code and tests for move, rename and move&rename methods. atm, it just throw an UnwillingToPerform exception when applied on AdminsitrativePoint.
Modified:
directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/admin/AdministrativePointServiceIT.java
directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/admin/AdministrativePointInterceptor.java
Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/admin/AdministrativePointServiceIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/admin/AdministrativePointServiceIT.java?rev=980603&r1=980602&r2=980603&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/admin/AdministrativePointServiceIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/admin/AdministrativePointServiceIT.java Thu Jul 29 23:03:41 2010
@@ -26,6 +26,7 @@ import static org.junit.Assert.assertTru
import org.apache.directory.ldap.client.api.LdapConnection;
import org.apache.directory.ldap.client.api.message.AddResponse;
+import org.apache.directory.ldap.client.api.message.ModifyDnResponse;
import org.apache.directory.ldap.client.api.message.SearchResponse;
import org.apache.directory.ldap.client.api.message.SearchResultEntry;
import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
@@ -66,6 +67,9 @@ public class AdministrativePointServiceI
}
+ // -------------------------------------------------------------------
+ // Test the Add operation
+ // -------------------------------------------------------------------
/**
* Test the addition of an autonomous area
* @throws Exception
@@ -73,9 +77,6 @@ public class AdministrativePointServiceI
@Test
public void testAddAutonomousArea() throws Exception
{
- // -------------------------------------------------------------------
- // Inject an AA alone
- // -------------------------------------------------------------------
Entry autonomousArea = LdifUtils.createEntry(
"ou=autonomousArea, ou=system",
"ObjectClass: top",
@@ -84,7 +85,7 @@ public class AdministrativePointServiceI
"administrativeRole: autonomousArea"
);
- // It should fail, as we haven't injected all the roles
+ // It should succeed
AddResponse response = connection.add( autonomousArea );
assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
@@ -102,9 +103,6 @@ public class AdministrativePointServiceI
assertFalse( result.contains( "administrativeRole", "2.5.23.4" ) );
assertFalse( result.contains( "administrativeRole", "triggerExecutionSpecificArea" ) );
- // -------------------------------------------------------------------
- // Inject a AA with specific A
- // -------------------------------------------------------------------
autonomousArea = LdifUtils.createEntry(
"ou=autonomousArea2, ou=system",
"ObjectClass: top",
@@ -234,4 +232,91 @@ public class AdministrativePointServiceI
assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, response.getLdapResult().getResultCode() );
}
+
+
+ // -------------------------------------------------------------------
+ // Test the Modify operation
+ // -------------------------------------------------------------------
+ // -------------------------------------------------------------------
+ // Test the Move operation
+ // -------------------------------------------------------------------
+ /**
+ * Test the move of an autonomous area
+ * @throws Exception
+ */
+ @Test
+ public void testMoveAutonomousArea() throws Exception
+ {
+ // Inject an AAA
+ Entry autonomousArea = LdifUtils.createEntry(
+ "ou=autonomousArea, ou=system",
+ "ObjectClass: top",
+ "ObjectClass: organizationalUnit",
+ "ou: autonomousArea",
+ "administrativeRole: autonomousArea"
+ );
+
+ connection.add( autonomousArea );
+
+ // It should fail, as we haven't injected all the roles
+ ModifyDnResponse response = connection.move( "ou=autonomousArea, ou=system", "uid=admin, ou=system" );
+
+ assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, response.getLdapResult().getResultCode() );
+ }
+
+
+ // -------------------------------------------------------------------
+ // Test the Move And Rename operation
+ // -------------------------------------------------------------------
+ /**
+ * Test the move and rename of an autonomous area
+ * @throws Exception
+ */
+ @Test
+ public void testMoveAndRenameAutonomousArea() throws Exception
+ {
+ // Inject an AAA
+ Entry autonomousArea = LdifUtils.createEntry(
+ "ou=autonomousArea, ou=system",
+ "ObjectClass: top",
+ "ObjectClass: organizationalUnit",
+ "ou: autonomousArea",
+ "administrativeRole: autonomousArea"
+ );
+
+ connection.add( autonomousArea );
+
+ // It should fail, as we haven't injected all the roles
+ ModifyDnResponse response = connection.moveAndRename( "ou=autonomousArea, ou=system", "ou=new autonomousArea, uid=admin, ou=system" );
+
+ assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, response.getLdapResult().getResultCode() );
+ }
+
+
+ // -------------------------------------------------------------------
+ // Test the Rename operation
+ // -------------------------------------------------------------------
+ /**
+ * Test the renaming of an autonomous area
+ * @throws Exception
+ */
+ @Test
+ public void testRenameAutonomousArea() throws Exception
+ {
+ // Inject an AAA
+ Entry autonomousArea = LdifUtils.createEntry(
+ "ou=autonomousArea, ou=system",
+ "ObjectClass: top",
+ "ObjectClass: organizationalUnit",
+ "ou: autonomousArea",
+ "administrativeRole: autonomousArea"
+ );
+
+ connection.add( autonomousArea );
+
+ // It should fail, as we haven't injected all the roles
+ ModifyDnResponse response = connection.rename( "ou=autonomousArea, ou=system", "ou=new autonomousArea" );
+
+ assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, response.getLdapResult().getResultCode() );
+ }
}
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/admin/AdministrativePointInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/admin/AdministrativePointInterceptor.java?rev=980603&r1=980602&r2=980603&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/admin/AdministrativePointInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/admin/AdministrativePointInterceptor.java Thu Jul 29 23:03:41 2010
@@ -316,7 +316,7 @@ public class AdministrativePointIntercep
adminPoint.contains( SchemaConstants.TRIGGER_EXECUTION_INNER_AREA_OID ) ) ) )
{
// This is inconsistant
- String message = "Cannot add a specific Administratve Point and the same" +
+ String message = "Cannot add a specific Administrative Point and the same" +
" inner Administrative point at the same time : " + adminPoint;
LOG.error( message );
throw new LdapUnwillingToPerformException( message );
@@ -494,7 +494,25 @@ public class AdministrativePointIntercep
*/
public void move( NextInterceptor next, MoveOperationContext moveContext ) throws LdapException
{
- next.move( moveContext );
+ Entry entry = moveContext.getOriginalEntry();
+
+ // Check if we are moving an Administrative Point
+ EntryAttribute adminPoint = entry.get( ADMINISTRATIVE_ROLE_AT );
+
+ if ( adminPoint == null )
+ {
+ // Nope, go on.
+ next.move( moveContext );
+
+ LOG.debug( "Exit from Administrative Interceptor" );
+
+ return;
+ }
+
+ // Else throw an UnwillingToPerform exception ATM
+ String message = "Cannot move an Administrative Point in the current version";
+ LOG.error( message );
+ throw new LdapUnwillingToPerformException( message );
}
@@ -504,7 +522,25 @@ public class AdministrativePointIntercep
public void moveAndRename( NextInterceptor next, MoveAndRenameOperationContext moveAndRenameContext )
throws LdapException
{
- next.moveAndRename( moveAndRenameContext );
+ Entry entry = moveAndRenameContext.getOriginalEntry();
+
+ // Check if we are moving and renaming an Administrative Point
+ EntryAttribute adminPoint = entry.get( ADMINISTRATIVE_ROLE_AT );
+
+ if ( adminPoint == null )
+ {
+ // Nope, go on.
+ next.moveAndRename( moveAndRenameContext );
+
+ LOG.debug( "Exit from Administrative Interceptor" );
+
+ return;
+ }
+
+ // Else throw an UnwillingToPerform exception ATM
+ String message = "Cannot move and rename an Administrative Point in the current version";
+ LOG.error( message );
+ throw new LdapUnwillingToPerformException( message );
}
@@ -514,6 +550,24 @@ public class AdministrativePointIntercep
public void rename( NextInterceptor next, RenameOperationContext renameContext )
throws LdapException
{
- next.rename( renameContext );
+ Entry entry = renameContext.getEntry();
+
+ // Check if we are renaming an Administrative Point
+ EntryAttribute adminPoint = entry.get( ADMINISTRATIVE_ROLE_AT );
+
+ if ( adminPoint == null )
+ {
+ // Nope, go on.
+ next.rename( renameContext );
+
+ LOG.debug( "Exit from Administrative Interceptor" );
+
+ return;
+ }
+
+ // Else throw an UnwillingToPerform exception ATM
+ String message = "Cannot rename an Administrative Point in the current version";
+ LOG.error( message );
+ throw new LdapUnwillingToPerformException( message );
}
}