Return-Path: Delivered-To: apmail-directory-commits-archive@www.apache.org Received: (qmail 26365 invoked from network); 5 May 2009 21:53:07 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 5 May 2009 21:53:07 -0000 Received: (qmail 70735 invoked by uid 500); 5 May 2009 21:53:07 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 70679 invoked by uid 500); 5 May 2009 21:53:07 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 70670 invoked by uid 99); 5 May 2009 21:53:07 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 May 2009 21:53:07 +0000 X-ASF-Spam-Status: No, hits=-1998.8 required=10.0 tests=ALL_TRUSTED,FS_REPLICA X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 May 2009 21:53:04 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 14D00238898F; Tue, 5 May 2009 21:52:43 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r771982 - in /directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api: BindRequestTest.java LdapConnectionTest.java SearchRequestTest.java getRootDSETest.java Date: Tue, 05 May 2009 21:52:42 -0000 To: commits@directory.apache.org From: elecharny@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090505215243.14D00238898F@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: elecharny Date: Tue May 5 21:52:42 2009 New Revision: 771982 URL: http://svn.apache.org/viewvc?rev=771982&view=rev Log: o Split tests into many classes : one per operation o Added some test class for getRootDSE() o Improved the existing tests Added: directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/SearchRequestTest.java directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/getRootDSETest.java Modified: directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/BindRequestTest.java directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/LdapConnectionTest.java Modified: directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/BindRequestTest.java URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/BindRequestTest.java?rev=771982&r1=771981&r2=771982&view=diff ============================================================================== --- directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/BindRequestTest.java (original) +++ directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/BindRequestTest.java Tue May 5 21:52:42 2009 @@ -20,6 +20,7 @@ package org.apache.directory.shared.client.api; import java.io.IOException; +import java.util.concurrent.ExecutionException; import org.apache.directory.server.core.integ.Level; import org.apache.directory.server.core.integ.annotations.CleanupLevel; @@ -32,6 +33,7 @@ import org.apache.directory.shared.ldap.client.api.messages.BindRequestImpl; import org.apache.directory.shared.ldap.client.api.messages.BindResponse; import org.apache.directory.shared.ldap.client.api.messages.LdapResult; +import org.apache.directory.shared.ldap.client.api.messages.future.BindFuture; import org.apache.directory.shared.ldap.message.ResultCodeEnum; import org.apache.directory.shared.ldap.util.StringTools; import org.junit.Before; @@ -42,7 +44,6 @@ import static org.junit.Assert.fail; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; /** * Test the BindRequest client api @@ -57,12 +58,12 @@ /** The server instance */ public static LdapService ldapService; - private static boolean responseReceived = false; + private static BindResponse staticBindResponse = null; @Before public void init() { - responseReceived = false; + staticBindResponse = null; } //------------------------------------------------------------------------ @@ -84,7 +85,7 @@ assertNotNull( bindResponse ); - assertEquals( 0, bindResponse.getMessageId() ); + assertEquals( 1, bindResponse.getMessageId() ); assertNotNull( bindResponse.getControls() ); assertEquals( 0, bindResponse.getControls().values().size() ); @@ -130,10 +131,9 @@ { BindResponse bindResponse = connection.bind(); - assertNotNull( bindResponse ); - assertEquals( 0, bindResponse.getMessageId() ); + assertEquals( 1, bindResponse.getMessageId() ); assertNotNull( bindResponse.getControls() ); assertEquals( 0, bindResponse.getControls().values().size() ); @@ -185,19 +185,24 @@ bindRequest.setCredentials( "secret" ); bindRequest.setName( "uid=admin,ou=system" ); - connection.bind( bindRequest, new BindListener() + BindFuture bindFuture = connection.bind( bindRequest, new BindListener() { public void bindCompleted( LdapConnection connection, BindResponse bindResponse ) throws LdapException { assertNotNull( bindResponse ); - responseReceived = true; + staticBindResponse = bindResponse; } } ); - // Wait a bit - Thread.sleep( 1000 ); + // We should also receive the response from the future. + BindResponse bindResponse = bindFuture.get(); + + assertNotNull( bindResponse ); + + // Wait a bit so that the listener is called. + Thread.sleep( 200 ); - assertTrue( responseReceived ); + assertEquals( bindResponse, staticBindResponse ); connection.unBind(); } @@ -209,6 +214,10 @@ { fail(); } + catch ( ExecutionException ee ) + { + fail(); + } finally { try Modified: directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/LdapConnectionTest.java URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/LdapConnectionTest.java?rev=771982&r1=771981&r2=771982&view=diff ============================================================================== --- directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/LdapConnectionTest.java (original) +++ directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/LdapConnectionTest.java Tue May 5 21:52:42 2009 @@ -41,6 +41,7 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertEquals; /** * Test the LdapConnection class @@ -167,9 +168,18 @@ Cursor cursor = connection.search( "uid=admin,ou=system", "(objectClass=*)", SearchScope.SUBTREE, "*" ); - SearchResponse response = cursor.get(); + assertNotNull( cursor ); + + SearchResponse response = null; + int count = 0; + + while ( (response = cursor.get() ) != null ) + { + assertNotNull( response ); + count++; + } - // TODO: check return. + assertEquals( 1, count ); connection.unBind(); } Added: directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/SearchRequestTest.java URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/SearchRequestTest.java?rev=771982&view=auto ============================================================================== --- directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/SearchRequestTest.java (added) +++ directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/SearchRequestTest.java Tue May 5 21:52:42 2009 @@ -0,0 +1,171 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.apache.directory.shared.client.api; + +import java.io.IOException; + +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.LdapService; +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.messages.SearchResponse; +import org.apache.directory.shared.ldap.client.api.messages.SearchResultEntry; +import org.apache.directory.shared.ldap.cursor.Cursor; +import org.apache.directory.shared.ldap.entry.Entry; +import org.apache.directory.shared.ldap.filter.SearchScope; +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.junit.Assert.assertNotNull; + +/** + * Test the LdapConnection class + * + * @author Apache Directory Project + * @version $Rev$, $Date$ + */ +@RunWith ( SiRunner.class ) +@CleanupLevel ( Level.CLASS ) +public class SearchRequestTest +{ + /** The server instance */ + public static LdapService ldapService; + + + //------------------------------------------------------------------------ + // Synchronous Search + //------------------------------------------------------------------------ + /** + * Test a search request on rootDSE + */ + @Test + public void testSearchNoArgs() + { + LdapConnection connection = new LdapConnection( "localhost", ldapService.getPort() ); + + try + { + connection.bind( "uid=admin,ou=system", "secret" ); + + SearchResultEntry rootDSE = connection.search(); + + assertNotNull( rootDSE ); + + assertTrue( rootDSE instanceof SearchResultEntry ); + + assertEquals( 2, rootDSE.getMessageId() ); + Entry entry = rootDSE.getEntry(); + + assertNotNull( entry ); + assertEquals( "", entry.getDn().toString() ); + assertTrue( entry.contains( "ObjectClass", "top", "extensibleObject" ) ); + assertFalse( entry.contains( "vendorName", "Apache Software Foundation" ) ); + + connection.unBind(); + } + catch ( LdapException le ) + { + le.printStackTrace(); + fail(); + } + catch ( Exception e ) + { + fail(); + } + finally + { + try + { + connection.close(); + } + catch( IOException ioe ) + { + fail(); + } + } + } + + + /** + * Test a simple search request + */ + @Test + public void testSearchRequest() + { + LdapConnection connection = new LdapConnection( "localhost", ldapService.getPort() ); + + try + { + connection.bind( "uid=admin,ou=system", "secret" ); + + Cursor cursor = + connection.search( "uid=admin,ou=system", "(objectClass=*)", SearchScope.SUBTREE, "*" ); + + assertNotNull( cursor ); + + SearchResponse response = null; + int count = 0; + + while ( cursor.next() ) + { + response = cursor.get(); + assertNotNull( response ); + assertTrue( response instanceof SearchResultEntry ); + SearchResultEntry searchResultEntry = (SearchResultEntry)response; + + assertEquals( 2, searchResultEntry.getMessageId() ); + Entry entry = searchResultEntry.getEntry(); + + assertNotNull( entry ); + assertEquals( "uid=admin,ou=system", entry.getDn().toString() ); + count++; + } + + assertEquals( 1, count ); + + connection.unBind(); + } + catch ( LdapException le ) + { + fail(); + } + catch ( Exception e ) + { + fail(); + } + finally + { + try + { + connection.close(); + } + catch( IOException ioe ) + { + fail(); + } + } + } +} Added: directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/getRootDSETest.java URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/getRootDSETest.java?rev=771982&view=auto ============================================================================== --- directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/getRootDSETest.java (added) +++ directory/apacheds/branches/apacheds-replication/ldap-api-test/src/test/java/org/apache/directory/shared/client/api/getRootDSETest.java Tue May 5 21:52:42 2009 @@ -0,0 +1,217 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.apache.directory.shared.client.api; + +import java.io.IOException; + +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.LdapService; +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.messages.SearchResultEntry; +import org.apache.directory.shared.ldap.entry.Entry; +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.fail; +import static org.junit.Assert.assertNotNull; + +/** + * Test the getRootDSE methods. + * + * @author Apache Directory Project + * @version $Rev$, $Date$ + */ +@RunWith ( SiRunner.class ) +@CleanupLevel ( Level.CLASS ) +public class getRootDSETest +{ + /** The server instance */ + public static LdapService ldapService; + + //------------------------------------------------------------------------ + // Synchronous getRootDSE() + //------------------------------------------------------------------------ + /** + * Test a simple getRootDSE() call. + */ + @Test + public void testGetRootDSE() + { + LdapConnection connection = new LdapConnection( "localhost", ldapService.getPort() ); + + try + { + connection.bind( "uid=admin,ou=system", "secret" ); + + SearchResultEntry rootDSE = connection.getRootDSE(); + + assertNotNull( rootDSE ); + + assertTrue( rootDSE instanceof SearchResultEntry ); + + assertEquals( 2, rootDSE.getMessageId() ); + Entry entry = rootDSE.getEntry(); + + assertNotNull( entry ); + assertEquals( "", entry.getDn().toString() ); + assertTrue( entry.contains( "ObjectClass", "top", "extensibleObject" ) ); + assertFalse( entry.contains( "vendorName", "Apache Software Foundation" ) ); + + connection.unBind(); + } + catch ( LdapException le ) + { + le.printStackTrace(); + fail(); + } + catch ( Exception e ) + { + fail(); + } + finally + { + try + { + connection.close(); + } + catch( IOException ioe ) + { + fail(); + } + } + } + + + /** + * Test a getRootDSE() call where we want all the operational and users attributes . + */ + @Test + public void testGetRootDSEAllAttrs() + { + LdapConnection connection = new LdapConnection( "localhost", ldapService.getPort() ); + + try + { + connection.bind( "uid=admin,ou=system", "secret" ); + + SearchResultEntry rootDSE = connection.getRootDSE( "*", "+" ); + + assertNotNull( rootDSE ); + + assertTrue( rootDSE instanceof SearchResultEntry ); + + assertEquals( 2, rootDSE.getMessageId() ); + Entry entry = rootDSE.getEntry(); + + assertNotNull( entry ); + assertEquals( "", entry.getDn().toString() ); + assertTrue( entry.contains( "ObjectClass", "top", "extensibleObject" ) ); + assertTrue( entry.contains( "subschemaSubentry", "cn=schema" ) ); + assertTrue( entry.contains( "vendorName", "Apache Software Foundation" ) ); + assertTrue( entry.contains( "supportedLDAPVersion", "3" ) ); + + connection.unBind(); + } + catch ( LdapException le ) + { + le.printStackTrace(); + fail(); + } + catch ( Exception e ) + { + fail(); + } + finally + { + try + { + connection.close(); + } + catch( IOException ioe ) + { + fail(); + } + } + } + + + /** + * Test a getRootDSE() call where we want all the operational attributes . + */ + @Test + public void testGetRootDSEOperAttrs() + { + LdapConnection connection = new LdapConnection( "localhost", ldapService.getPort() ); + + try + { + connection.bind( "uid=admin,ou=system", "secret" ); + + SearchResultEntry rootDSE = connection.getRootDSE( "+" ); + + assertNotNull( rootDSE ); + + assertTrue( rootDSE instanceof SearchResultEntry ); + + assertEquals( 2, rootDSE.getMessageId() ); + Entry entry = rootDSE.getEntry(); + + assertNotNull( entry ); + assertEquals( "", entry.getDn().toString() ); + assertFalse( entry.contains( "ObjectClass", "top", "extensibleObject" ) ); + assertTrue( entry.contains( "subschemaSubentry", "cn=schema" ) ); + assertTrue( entry.contains( "vendorName", "Apache Software Foundation" ) ); + assertTrue( entry.contains( "supportedLDAPVersion", "3" ) ); + + connection.unBind(); + } + catch ( LdapException le ) + { + le.printStackTrace(); + fail(); + } + catch ( Exception e ) + { + fail(); + } + finally + { + try + { + connection.close(); + } + catch( IOException ioe ) + { + fail(); + } + } + } + + + //------------------------------------------------------------------------ + // Asynchronous getRootDSE() + //------------------------------------------------------------------------ +}