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/02/27 17:07:22 UTC

svn commit: r916980 - in /directory/clients/ldap/trunk: ldap-client-api/src/main/java/org/apache/directory/ldap/client/api/LdapConnection.java ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/bind/SimpleBindRequestTest.java

Author: elecharny
Date: Sat Feb 27 16:07:22 2010
New Revision: 916980

URL: http://svn.apache.org/viewvc?rev=916980&view=rev
Log:
o Added a test looping over 300 bind/unbind operations 
o Reseting the messageId to 0 when the connection is closed

Modified:
    directory/clients/ldap/trunk/ldap-client-api/src/main/java/org/apache/directory/ldap/client/api/LdapConnection.java
    directory/clients/ldap/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/bind/SimpleBindRequestTest.java

Modified: directory/clients/ldap/trunk/ldap-client-api/src/main/java/org/apache/directory/ldap/client/api/LdapConnection.java
URL: http://svn.apache.org/viewvc/directory/clients/ldap/trunk/ldap-client-api/src/main/java/org/apache/directory/ldap/client/api/LdapConnection.java?rev=916980&r1=916979&r2=916980&view=diff
==============================================================================
--- directory/clients/ldap/trunk/ldap-client-api/src/main/java/org/apache/directory/ldap/client/api/LdapConnection.java (original)
+++ directory/clients/ldap/trunk/ldap-client-api/src/main/java/org/apache/directory/ldap/client/api/LdapConnection.java Sat Feb 27 16:07:22 2010
@@ -668,6 +668,9 @@
 
         // Store the container into the session 
         ldapSession.setAttribute( "LDAP-Container", ldapMessageContainer );
+        
+        // Initialize the MessageId 
+        messageId.set( 0 );
 
         // And return
         return true;
@@ -696,6 +699,9 @@
             connector.dispose();
             connector = null;
         }
+        
+        // Reset the messageId
+        messageId.set( 0 );
 
         return true;
     }
@@ -1584,6 +1590,9 @@
             LOG.debug( "closeFuture done" );
             connected.set( false );
         }
+        
+        // Last, not least, reset the MessageId value
+        messageId.set(0);
 
         // And get out
         LOG.debug( "Unbind successful" );

Modified: directory/clients/ldap/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/bind/SimpleBindRequestTest.java
URL: http://svn.apache.org/viewvc/directory/clients/ldap/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/bind/SimpleBindRequestTest.java?rev=916980&r1=916979&r2=916980&view=diff
==============================================================================
--- directory/clients/ldap/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/bind/SimpleBindRequestTest.java (original)
+++ directory/clients/ldap/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/bind/SimpleBindRequestTest.java Sat Feb 27 16:07:22 2010
@@ -44,7 +44,6 @@
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -164,9 +163,12 @@
     @Test
     public void testSimpleBindAnonymous() throws Exception
     {
-        for ( int i = 0; i < 1; i++)
+        for ( int i = 0; i < 100; i++)
         {
-            System.out.print( "." );
+            //System.out.println( "------------------Create connection" + i + "-------------" );
+            LdapConnection connection = new LdapConnection( "localhost", ldapServer.getPort() );
+            //System.out.println( "------------------Bind" + i + "-------------" );
+            
             // Try with no parameters
             BindResponse bindResponse = connection.bind();
             
@@ -176,6 +178,7 @@
             assertEquals( 1, bindResponse.getMessageId() );
             assertTrue( connection.isAuthenticated() );
     
+            //System.out.println( "----------------Unbind" + i + "-------------" );
             connection.unBind();
             assertFalse( connection.isConnected() );
     
@@ -207,6 +210,12 @@
             assertFalse( connection.isConnected() );
 
             connection = new LdapConnection( "localhost", ldapServer.getPort() );
+            
+            
+            //System.out.println( "----------------Unbind done" + i + "-------------" );
+            assertFalse( connection.isConnected() );
+            //System.out.println( "----------------Unconnected" + i + "-------------" );
+            
         }
     }
 
@@ -289,19 +298,31 @@
      * Test a valid bind followed by another valid bind
      */
     @Test
-    @Ignore
     public void testDoubleSimpleBindValid() throws Exception
     {
-        BindResponse response = connection.bind( "uid=admin,ou=system", "secret" );
-        LdapResult ldapResult = response.getLdapResult();
-        assertEquals( ResultCodeEnum.SUCCESS, ldapResult.getResultCode() );
-        assertEquals( 1, response.getMessageId() );
+        BindResponse response1 = connection.bind( "uid=admin,ou=system", "secret" );
+        LdapResult ldapResult1 = response1.getLdapResult();
+        assertEquals( ResultCodeEnum.SUCCESS, ldapResult1.getResultCode() );
+        assertEquals( 1, response1.getMessageId() );
         assertTrue( connection.isAuthenticated() );
         
+        // The messageId must have been incremented
         BindResponse response2 = connection.bind( "uid=admin,ou=system", "secret" );
-        LdapResult ldapResult2 = response.getLdapResult();
+        LdapResult ldapResult2 = response2.getLdapResult();
         assertEquals( ResultCodeEnum.SUCCESS, ldapResult2.getResultCode() );
-        assertEquals( 1, response2.getMessageId() );
+        assertEquals( 2, response2.getMessageId() );
+        assertTrue( connection.isAuthenticated() );
+        
+        // Now, unbind
+        connection.unBind();
+        assertFalse( connection.isAuthenticated() );
+        assertFalse( connection.isConnected() );
+        
+        // And Bind again. The messageId should be 1 
+        BindResponse response3 = connection.bind( "uid=admin,ou=system", "secret" );
+        LdapResult ldapResult3 = response3.getLdapResult();
+        assertEquals( ResultCodeEnum.SUCCESS, ldapResult3.getResultCode() );
+        assertEquals( 1, response3.getMessageId() );
         assertTrue( connection.isAuthenticated() );
     }