You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2009/06/14 14:34:14 UTC
svn commit: r784549 - in
/directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations:
ClientAddRequestTest.java ClientDeleteRequestTest.java
ClientModifyDnRequestTest.java ClientModifyRequestTest.java
Author: kayyagari
Date: Sun Jun 14 12:34:14 2009
New Revision: 784549
URL: http://svn.apache.org/viewvc?rev=784549&view=rev
Log:
added test cases for async feature
Modified:
directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java
directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientDeleteRequestTest.java
directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyDnRequestTest.java
directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyRequestTest.java
Modified: directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java?rev=784549&r1=784548&r2=784549&view=diff
==============================================================================
--- directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java (original)
+++ directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java Sun Jun 14 12:34:14 2009
@@ -25,18 +25,24 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
+import java.util.concurrent.Semaphore;
+
import org.apache.directory.server.core.CoreSession;
import org.apache.directory.server.core.integ.Level;
import org.apache.directory.server.core.integ.annotations.CleanupLevel;
import org.apache.directory.server.integ.SiRunner;
import org.apache.directory.server.ldap.LdapServer;
+import org.apache.directory.shared.ldap.client.api.AddRequest;
import org.apache.directory.shared.ldap.client.api.LdapConnection;
+import org.apache.directory.shared.ldap.client.api.exception.LdapException;
+import org.apache.directory.shared.ldap.client.api.listeners.AddListener;
import org.apache.directory.shared.ldap.client.api.messages.AddResponse;
import org.apache.directory.shared.ldap.constants.SchemaConstants;
import org.apache.directory.shared.ldap.entry.Entry;
import org.apache.directory.shared.ldap.entry.client.DefaultClientEntry;
import org.apache.directory.shared.ldap.message.ResultCodeEnum;
import org.apache.directory.shared.ldap.name.LdapDN;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -53,22 +59,30 @@
/** The server instance */
public static LdapServer ldapServer;
- @Test
- public void testModify() throws Exception
+ private LdapConnection connection;
+
+ private CoreSession session;
+
+ @Before
+ public void setup() throws Exception
{
- LdapConnection connection = new LdapConnection( "localhost", ldapServer.getPort() );
-
+ connection = new LdapConnection( "localhost", ldapServer.getPort() );
LdapDN bindDn = new LdapDN( "uid=admin,ou=system" );
connection.bind( bindDn.getUpName(), "secret" );
-
+
+ session = ldapServer.getDirectoryService().getSession();
+ }
+
+
+ @Test
+ public void testModify() throws Exception
+ {
LdapDN dn = new LdapDN( "cn=testadd,ou=system" );
Entry entry = new DefaultClientEntry( dn );
entry.add( SchemaConstants.OBJECT_CLASS_AT, SchemaConstants.PERSON_OC );
entry.add( SchemaConstants.CN_AT, "testadd_cn" );
entry.add( SchemaConstants.SN_AT, "testadd_sn" );
- CoreSession session = ldapServer.getDirectoryService().getSession();
-
assertFalse( session.exists( dn ) );
AddResponse response = connection.add( entry );
@@ -78,4 +92,32 @@
assertTrue( session.exists( dn ) );
}
+
+ @Test
+ public void testModifyAsync() throws Exception
+ {
+ LdapDN dn = new LdapDN( "cn=testAsyncAdd,ou=system" );
+ Entry entry = new DefaultClientEntry( dn );
+ entry.add( SchemaConstants.OBJECT_CLASS_AT, SchemaConstants.PERSON_OC );
+ entry.add( SchemaConstants.CN_AT, "testAsyncAdd_cn" );
+ entry.add( SchemaConstants.SN_AT, "testAsyncAdd_sn" );
+
+ assertFalse( session.exists( dn ) );
+
+ final Semaphore lock = new Semaphore( 1 );
+ lock.acquire();
+
+ connection.add( new AddRequest( entry ), new AddListener()
+ {
+ public void entryAdded( LdapConnection connection, AddResponse response ) throws LdapException
+ {
+ assertNotNull( response );
+ assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
+ lock.release();
+ }
+ });
+
+ lock.acquire();
+ assertTrue( session.exists( dn ) );
+ }
}
Modified: directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientDeleteRequestTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientDeleteRequestTest.java?rev=784549&r1=784548&r2=784549&view=diff
==============================================================================
--- directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientDeleteRequestTest.java (original)
+++ directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientDeleteRequestTest.java Sun Jun 14 12:34:14 2009
@@ -23,10 +23,12 @@
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.lang.reflect.Method;
import java.util.Map;
+import java.util.concurrent.Semaphore;
import org.apache.directory.server.core.CoreSession;
import org.apache.directory.server.core.integ.Level;
@@ -35,6 +37,8 @@
import org.apache.directory.server.integ.SiRunner;
import org.apache.directory.server.ldap.LdapServer;
import org.apache.directory.shared.ldap.client.api.LdapConnection;
+import org.apache.directory.shared.ldap.client.api.exception.LdapException;
+import org.apache.directory.shared.ldap.client.api.listeners.DeleteListener;
import org.apache.directory.shared.ldap.client.api.messages.DeleteResponse;
import org.apache.directory.shared.ldap.message.ResultCodeEnum;
import org.apache.directory.shared.ldap.name.LdapDN;
@@ -184,4 +188,29 @@
assertFalse( session.exists( dn ) );
}
+
+
+ @Test
+ public void testDeleteAsync() throws Exception
+ {
+ LdapDN dn = new LdapDN( "cn=grand_child12,cn=child1,cn=parent,ou=system" );
+
+ assertTrue( session.exists( dn ) );
+
+ final Semaphore lock = new Semaphore(1);
+ lock.acquire();
+ DeleteResponse response = connection.delete( dn, new DeleteListener()
+ {
+ public void entryDeleted( LdapConnection connection, DeleteResponse response ) throws LdapException
+ {
+ assertNotNull( response );
+ assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
+ lock.release();
+ }
+ });
+
+ lock.acquire();
+ assertNull( response );
+ assertFalse( session.exists( dn ) );
+ }
}
Modified: directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyDnRequestTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyDnRequestTest.java?rev=784549&r1=784548&r2=784549&view=diff
==============================================================================
--- directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyDnRequestTest.java (original)
+++ directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyDnRequestTest.java Sun Jun 14 12:34:14 2009
@@ -20,10 +20,14 @@
package org.apache.directory.shared.client.api.operations;
+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.concurrent.Semaphore;
+
import org.apache.directory.server.core.CoreSession;
import org.apache.directory.server.core.integ.Level;
import org.apache.directory.server.core.integ.annotations.ApplyLdifs;
@@ -31,8 +35,12 @@
import org.apache.directory.server.integ.SiRunner;
import org.apache.directory.server.ldap.LdapServer;
import org.apache.directory.shared.ldap.client.api.LdapConnection;
+import org.apache.directory.shared.ldap.client.api.exception.LdapException;
+import org.apache.directory.shared.ldap.client.api.listeners.ModifyDnListener;
+import org.apache.directory.shared.ldap.client.api.messages.ModifyDnRequest;
import org.apache.directory.shared.ldap.client.api.messages.ModifyDnResponse;
import org.apache.directory.shared.ldap.entry.Entry;
+import org.apache.directory.shared.ldap.message.ResultCodeEnum;
import org.apache.directory.shared.ldap.name.LdapDN;
import org.apache.directory.shared.ldap.name.Rdn;
import org.junit.Before;
@@ -115,4 +123,31 @@
System.out.println( session.lookup( new LdapDN( "cn=modDn,ou=users,ou=system" ) ) );
}
+
+
+ @Test
+ public void testModifyDnAsync() throws Exception
+ {
+ ModifyDnRequest modDnReq = new ModifyDnRequest();
+ modDnReq.setEntryDn( new LdapDN( dn ) );
+ modDnReq.setNewRdn( new Rdn( "cn=modifyDnWithString" ) );
+ modDnReq.setDeleteOldRdn( true );
+
+ final Semaphore lock = new Semaphore(1);
+ lock.acquire();
+ ModifyDnResponse resp = connection.modifyDn( modDnReq, new ModifyDnListener()
+ {
+ public void modifyDnCompleted( LdapConnection connection, ModifyDnResponse response ) throws LdapException
+ {
+ assertNotNull( response );
+ assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
+ lock.release();
+ }
+ });
+
+ lock.acquire();
+ assertNull( resp );
+ assertFalse( session.exists( new LdapDN( dn ) ) );
+ assertTrue( session.exists( new LdapDN( "cn=modifyDnWithString,ou=system" ) ) );
+ }
}
Modified: directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyRequestTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyRequestTest.java?rev=784549&r1=784548&r2=784549&view=diff
==============================================================================
--- directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyRequestTest.java (original)
+++ directory/apacheds/trunk/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyRequestTest.java Sun Jun 14 12:34:14 2009
@@ -21,19 +21,29 @@
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import java.util.concurrent.Semaphore;
+
+import org.apache.directory.server.core.CoreSession;
import org.apache.directory.server.core.entry.ServerEntry;
import org.apache.directory.server.core.integ.Level;
import org.apache.directory.server.core.integ.annotations.CleanupLevel;
import org.apache.directory.server.integ.SiRunner;
import org.apache.directory.server.ldap.LdapServer;
import org.apache.directory.shared.ldap.client.api.LdapConnection;
+import org.apache.directory.shared.ldap.client.api.exception.LdapException;
+import org.apache.directory.shared.ldap.client.api.listeners.ModifyListener;
import org.apache.directory.shared.ldap.client.api.messages.ModifyRequest;
+import org.apache.directory.shared.ldap.client.api.messages.ModifyResponse;
import org.apache.directory.shared.ldap.constants.SchemaConstants;
import org.apache.directory.shared.ldap.entry.Entry;
import org.apache.directory.shared.ldap.entry.ModificationOperation;
import org.apache.directory.shared.ldap.entry.client.DefaultClientEntry;
+import org.apache.directory.shared.ldap.message.ResultCodeEnum;
import org.apache.directory.shared.ldap.name.LdapDN;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -51,13 +61,26 @@
/** The server instance */
public static LdapServer ldapServer;
+ private LdapConnection connection;
+
+ private CoreSession session;
+
+ @Before
+ public void setup() throws Exception
+ {
+ connection = new LdapConnection( "localhost", ldapServer.getPort() );
+
+ LdapDN bindDn = new LdapDN( "uid=admin,ou=system" );
+ connection.bind( bindDn.getUpName(), "secret" );
+
+ session = ldapServer.getDirectoryService().getAdminSession();
+ }
+
+
@Test
public void testModify() throws Exception
{
- LdapConnection connection = new LdapConnection( "localhost", ldapServer.getPort() );
-
LdapDN dn = new LdapDN( "uid=admin,ou=system" );
- connection.bind( dn.getUpName(), "secret" );
String expected = String.valueOf( System.currentTimeMillis() );
ModifyRequest modRequest = new ModifyRequest( dn );
@@ -65,7 +88,7 @@
connection.modify( modRequest, null );
- ServerEntry entry = ldapServer.getDirectoryService().getAdminSession().lookup( dn );
+ ServerEntry entry = session.lookup( dn );
String actual = entry.get( SchemaConstants.SN_AT ).getString();
@@ -76,10 +99,7 @@
@Test
public void testModifyWithEntry() throws Exception
{
- LdapConnection connection = new LdapConnection( "localhost", ldapServer.getPort() );
-
LdapDN dn = new LdapDN( "uid=admin,ou=system" );
- connection.bind( dn.getUpName(), "secret" );
Entry entry = new DefaultClientEntry( dn );
@@ -92,7 +112,7 @@
connection.modify( entry, ModificationOperation.REPLACE_ATTRIBUTE );
- ServerEntry lookupEntry = ldapServer.getDirectoryService().getAdminSession().lookup( dn );
+ ServerEntry lookupEntry = session.lookup( dn );
String actualSn = lookupEntry.get( SchemaConstants.SN_AT ).getString();
assertEquals( expectedSn, actualSn );
@@ -100,4 +120,37 @@
String actualCn = lookupEntry.get( SchemaConstants.CN_AT ).getString();
assertEquals( expectedCn, actualCn );
}
+
+
+ @Test
+ public void modifyAsync() throws Exception
+ {
+ LdapDN dn = new LdapDN( "uid=admin,ou=system" );
+
+ String expected = String.valueOf( System.currentTimeMillis() );
+ ModifyRequest modRequest = new ModifyRequest( dn );
+ modRequest.replace( SchemaConstants.SN_AT, expected );
+
+ final Semaphore lock = new Semaphore(1);
+ lock.acquire();
+
+ ModifyResponse response = connection.modify( modRequest, new ModifyListener()
+ {
+ public void modifyCompleted( LdapConnection connection, ModifyResponse response ) throws LdapException
+ {
+ assertNotNull( response );
+ assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
+ lock.release();
+ }
+ });
+
+ lock.acquire();
+ assertNull( response );
+
+ ServerEntry entry = session.lookup( dn );
+
+ String actual = entry.get( SchemaConstants.SN_AT ).getString();
+
+ assertEquals( expected, actual );
+ }
}