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 2012/04/10 17:51:31 UTC
svn commit: r1311803 - in
/directory/apacheds/branches/index-work/server-integ/src/test/java/org/apache/directory/server/operations/search:
PagedSearchIT.java SearchIT.java
Author: elecharny
Date: Tue Apr 10 15:51:31 2012
New Revision: 1311803
URL: http://svn.apache.org/viewvc?rev=1311803&view=rev
Log:
Closed cursors
Modified:
directory/apacheds/branches/index-work/server-integ/src/test/java/org/apache/directory/server/operations/search/PagedSearchIT.java
directory/apacheds/branches/index-work/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java
Modified: directory/apacheds/branches/index-work/server-integ/src/test/java/org/apache/directory/server/operations/search/PagedSearchIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/index-work/server-integ/src/test/java/org/apache/directory/server/operations/search/PagedSearchIT.java?rev=1311803&r1=1311802&r2=1311803&view=diff
==============================================================================
--- directory/apacheds/branches/index-work/server-integ/src/test/java/org/apache/directory/server/operations/search/PagedSearchIT.java (original)
+++ directory/apacheds/branches/index-work/server-integ/src/test/java/org/apache/directory/server/operations/search/PagedSearchIT.java Tue Apr 10 15:51:31 2012
@@ -197,934 +197,948 @@ import org.junit.runner.RunWith;
})
public class PagedSearchIT extends AbstractLdapTestUnit
{
-@Rule
-public MultiThreadedMultiInvoker i = new MultiThreadedMultiInvoker( MultiThreadedMultiInvoker.THREADSAFE );
-
-private LdapApiService codec = LdapApiServiceFactory.getSingleton();
-
-
-/**
- * Create the searchControls with a paged size
- * @throws EncoderException on codec failures
- */
-private SearchControls createSearchControls( DirContext ctx, int sizeLimit, int pagedSize )
- throws NamingException, EncoderException
-{
- SearchControls controls = new SearchControls();
- controls.setCountLimit( sizeLimit );
- controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
- PagedResultsDecorator pagedSearchControl = new PagedResultsDecorator( codec );
- pagedSearchControl.setSize( pagedSize );
-
- ( ( LdapContext ) ctx ).setRequestControls( JndiUtils.toJndiControls( codec, new Control[]
- { pagedSearchControl } ) );
-
- return controls;
-}
-
-
-/**
- * Create the searchControls with a paged size
- * @throws EncoderException on codec failures
- */
-private void createNextSearchControls( DirContext ctx, byte[] cookie, int pagedSize )
- throws NamingException, EncoderException
-{
- PagedResultsDecorator pagedSearchControl = new PagedResultsDecorator( codec );
- pagedSearchControl.setCookie( cookie );
- pagedSearchControl.setSize( pagedSize );
- ( ( LdapContext ) ctx ).setRequestControls( JndiUtils.toJndiControls( codec, new Control[]
- { pagedSearchControl } ) );
-}
-
-
-/**
- * Check that we got the correct result set
- */
-private void checkResults( List<SearchResult> results, int expectedSize ) throws NamingException
-{
- assertEquals( expectedSize, results.size() );
-
- // check that we have correctly read all the entries
- for ( int i = 0; i < expectedSize; i++ )
+ @Rule
+ public MultiThreadedMultiInvoker i = new MultiThreadedMultiInvoker( MultiThreadedMultiInvoker.THREADSAFE );
+
+ private LdapApiService codec = LdapApiServiceFactory.getSingleton();
+
+
+ /**
+ * Create the searchControls with a paged size
+ * @throws EncoderException on codec failures
+ */
+ private SearchControls createSearchControls( DirContext ctx, int sizeLimit, int pagedSize )
+ throws NamingException, EncoderException
{
- SearchResult entry = results.get( i );
- assertEquals( "user" + i, entry.getAttributes().get( "cn" ).get() );
+ SearchControls controls = new SearchControls();
+ controls.setCountLimit( sizeLimit );
+ controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
+ PagedResultsDecorator pagedSearchControl = new PagedResultsDecorator( codec );
+ pagedSearchControl.setSize( pagedSize );
+
+ ( ( LdapContext ) ctx ).setRequestControls( JndiUtils.toJndiControls( codec, new Control[]
+ { pagedSearchControl } ) );
+
+ return controls;
}
-}
-
-
-/**
- * Do the loop over the entries, until we can't get any more, or until we
- * reach a limit. It will check that we have got all the expected entries.
- * @throws EncoderException on codec failures
- */
-private void doLoop( DirContext ctx, SearchControls controls, int pagedSizeLimit,
- int expectedLoop, int expectedNbEntries, boolean expectedException ) throws NamingException, EncoderException
-{
- // Loop over all the elements
- int loop = 0;
- boolean hasSizeLimitException = false;
- List<SearchResult> results = new ArrayList<SearchResult>();
-
- while ( true )
+
+
+ /**
+ * Create the searchControls with a paged size
+ * @throws EncoderException on codec failures
+ */
+ private void createNextSearchControls( DirContext ctx, byte[] cookie, int pagedSize )
+ throws NamingException, EncoderException
{
- loop++;
- NamingEnumeration<SearchResult> list = null;
-
- try
+ PagedResultsDecorator pagedSearchControl = new PagedResultsDecorator( codec );
+ pagedSearchControl.setCookie( cookie );
+ pagedSearchControl.setSize( pagedSize );
+ ( ( LdapContext ) ctx ).setRequestControls( JndiUtils.toJndiControls( codec, new Control[]
+ { pagedSearchControl } ) );
+ }
+
+
+ /**
+ * Check that we got the correct result set
+ */
+ private void checkResults( List<SearchResult> results, int expectedSize ) throws NamingException
+ {
+ assertEquals( expectedSize, results.size() );
+
+ // check that we have correctly read all the entries
+ for ( int i = 0; i < expectedSize; i++ )
{
- list = ctx.search( "dc=users,ou=system", "(cn=*)", controls );
-
- while ( list.hasMore() )
+ SearchResult entry = results.get( i );
+ assertEquals( "user" + i, entry.getAttributes().get( "cn" ).get() );
+ }
+ }
+
+
+ /**
+ * Do the loop over the entries, until we can't get any more, or until we
+ * reach a limit. It will check that we have got all the expected entries.
+ * @throws EncoderException on codec failures
+ */
+ private void doLoop( DirContext ctx, SearchControls controls, int pagedSizeLimit,
+ int expectedLoop, int expectedNbEntries, boolean expectedException ) throws NamingException, EncoderException
+ {
+ // Loop over all the elements
+ int loop = 0;
+ boolean hasSizeLimitException = false;
+ List<SearchResult> results = new ArrayList<SearchResult>();
+
+ while ( true )
+ {
+ loop++;
+ NamingEnumeration<SearchResult> list = null;
+
+ try
{
- SearchResult result = list.next();
- results.add( result );
+ list = ctx.search( "dc=users,ou=system", "(cn=*)", controls );
+
+ while ( list.hasMore() )
+ {
+ SearchResult result = list.next();
+ results.add( result );
+ }
}
- }
- catch ( SizeLimitExceededException e )
- {
- hasSizeLimitException = true;
- break;
- }
- finally
- {
- // Close the NamingEnumeration
- if ( list != null )
+ catch ( SizeLimitExceededException e )
{
- list.close();
+ hasSizeLimitException = true;
+ break;
}
- }
-
- // Now read the next ones
- javax.naming.ldap.Control[] responseControls = ( ( LdapContext ) ctx ).getResponseControls();
-
- PagedResultsResponseControl responseControl =
- ( PagedResultsResponseControl ) responseControls[0];
- assertEquals( 0, responseControl.getResultSize() );
-
- // check if this is over
- byte[] cookie = responseControl.getCookie();
-
- if ( Strings.isEmpty( cookie ) )
- {
- // If so, exit the loop
- break;
- }
-
- // Prepare the next iteration
- createNextSearchControls( ctx, responseControl.getCookie(), pagedSizeLimit );
+ finally
+ {
+ // Close the NamingEnumeration
+ if ( list != null )
+ {
+ list.close();
+ }
+ }
+
+ // Now read the next ones
+ javax.naming.ldap.Control[] responseControls = ( ( LdapContext ) ctx ).getResponseControls();
+
+ PagedResultsResponseControl responseControl =
+ ( PagedResultsResponseControl ) responseControls[0];
+ assertEquals( 0, responseControl.getResultSize() );
+
+ // check if this is over
+ byte[] cookie = responseControl.getCookie();
+
+ if ( Strings.isEmpty( cookie ) )
+ {
+ // If so, exit the loop
+ break;
+ }
+
+ // Prepare the next iteration
+ createNextSearchControls( ctx, responseControl.getCookie(), pagedSizeLimit );
+ }
+
+ assertEquals( expectedException, hasSizeLimitException );
+ assertEquals( expectedLoop, loop );
+ checkResults( results, expectedNbEntries );
+
+ // And close the connection
+ closeConnection( ctx );
}
-
- assertEquals( expectedException, hasSizeLimitException );
- assertEquals( expectedLoop, loop );
- checkResults( results, expectedNbEntries );
-
- // And close the connection
- closeConnection( ctx );
-}
-
-
-/**
- * Close a connection, and wait a bit to be sure it's done
- */
-private void closeConnection( DirContext ctx ) throws NamingException
-{
- if ( ctx != null )
+
+
+ /**
+ * Close a connection, and wait a bit to be sure it's done
+ */
+ private void closeConnection( DirContext ctx ) throws NamingException
{
- ctx.close();
-
- try
- {
- Thread.sleep( 10 );
- }
- catch ( Exception e )
+ if ( ctx != null )
{
+ ctx.close();
+
+ try
+ {
+ Thread.sleep( 10 );
+ }
+ catch ( Exception e )
+ {
+ }
}
}
-}
-
-
-/**
- * Admin = yes <br>
- * SL = none<br>
- * RL = none<br>
- * PL = 3<br>
- * expected exception : no<br>
- * expected number of entries returned : 10 ( 3 + 3 + 3 + 1 )<br>
- */
-@Test
-public void testPagedSearchtest1() throws Exception
-{
- getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
- DirContext ctx = getWiredContext( getLdapServer() );
- SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 3 );
-
- doLoop( ctx, controls, 3, 4, 10, false );
-}
-
-
-/**
- * Admin = yes <br>
- * SL = none<br>
- * RL = none<br>
- * PL = 5<br>
- * expected exception : no<br>
- * expected number of entries returned : 10 ( 5 + 5 )<br>
- */
-@Test
-public void testPagedSearchtest2() throws Exception
-{
- getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
- DirContext ctx = getWiredContext( getLdapServer() );
- SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 5 );
-
- doLoop( ctx, controls, 5, 2, 10, false );
-}
-
-
-/**
- * Admin = yes <br>
- * SL = 3<br>
- * RL = none<br>
- * PL = 5<br>
- * expected exception : no<br>
- * expected number of entries returned : 10 ( 5 + 5 )<br>
- */
-@Test
-public void testPagedSearchTest3() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 3 );
- DirContext ctx = getWiredContext( getLdapServer() );
- SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 5 );
-
- doLoop( ctx, controls, 5, 2, 10, false );
-}
-
-
-/**
- * Admin = yes <br>
- * SL = none<br>
- * RL = 3<br>
- * PL = 5<br>
- * expected exception : yes<br>
- * expected number of entries returned : 3<br>
- */
-@Test
-public void testPagedSearchTest4() throws Exception
-{
- getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
- DirContext ctx = getWiredContext( getLdapServer() );
- SearchControls controls = createSearchControls( ctx, 3, 5 );
-
- doLoop( ctx, controls, 5, 1, 3, true );
-}
-
-
-/**
- * Admin = yes <br>
- * SL = 5<br>
- * RL = none<br>
- * PL = 3<br>
- * expected exception : no<br>
- * expected number of entries returned : 10 ( 3 + 3 + 3 + 1 )<br>
- */
-@Test
-public void testPagedSearchtest5() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 5 );
- DirContext ctx = getWiredContext( getLdapServer() );
- SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 3 );
-
- doLoop( ctx, controls, 3, 4, 10, false );
-}
-
-
-/**
- * Admin = yes <br>
- * SL = none<br>
- * RL = 9<br>
- * PL = 5<br>
- * expected exception : yes<br>
- * expected number of entries returned : 9 ( 5 + 4 )<br>
- */
-@Test
-public void testPagedSearchTest6() throws Exception
-{
- getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
- DirContext ctx = getWiredContext( getLdapServer() );
- SearchControls controls = createSearchControls( ctx, 9, 5 );
-
- doLoop( ctx, controls, 5, 2, 9, true );
-}
-
-
-/**
- * Admin = yes <br>
- * SL = 5<br>
- * RL = none<br>
- * PL = 5<br>
- * expected exception : no<br>
- * expected number of entries returned : 10 ( 5 + 5 )<br>
- */
-@Test
-public void testPagedSearchtest7() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 5 );
- DirContext ctx = getWiredContext( getLdapServer() );
- SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 5 );
-
- doLoop( ctx, controls, 5, 2, 10, false );
-}
-
-
-/**
- * Admin = yes <br>
- * SL = none<br>
- * RL = 5<br>
- * PL = 5<br>
- * expected exception : yes<br>
- * expected number of entries returned : 5<br>
- */
-@Test
-public void testPagedSearchTest8() throws Exception
-{
- getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
- DirContext ctx = getWiredContext( getLdapServer() );
- SearchControls controls = createSearchControls( ctx, 5, 5 );
-
- doLoop( ctx, controls, 5, 1, 5, true );
-}
-
-
-/**
- * Admin = yes <br>
- * SL = 5<br>
- * RL = 4<br>
- * PL = 3<br>
- * expected exception : yes<br>
- * expected number of entries returned : 2 ( 3 + 1 )<br>
- */
-@Test
-public void testPagedSearchTest9() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 5 );
- DirContext ctx = getWiredContext( getLdapServer() );
- SearchControls controls = createSearchControls( ctx, 4, 3 );
-
- doLoop( ctx, controls, 3, 2, 4, true );
-}
-
-
-/**
- * Admin = yes <br>
- * SL = 4<br>
- * RL = 5<br>
- * PL = 3<br>
- * expected exception : yes<br>
- * expected number of entries returned : 5 ( 3 + 2 )<br>
- */
-@Test
-public void testPagedSearchtest10() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 4 );
- DirContext ctx = getWiredContext( getLdapServer() );
- SearchControls controls = createSearchControls( ctx, 5, 3 );
-
- doLoop( ctx, controls, 3, 2, 5, true );
-}
-
-
-/**
- * Admin = yes <br>
- * SL = 5<br>
- * RL = 3<br>
- * PL = 4<br>
- * expected exception : yes<br>
- * expected number of entries returned : 3<br>
- */
-@Test
-public void testPagedSearchtest11() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 5 );
- DirContext ctx = getWiredContext( getLdapServer() );
- SearchControls controls = createSearchControls( ctx, 3, 4 );
-
- doLoop( ctx, controls, 4, 1, 3, true );
-}
-
-
-/**
- * Admin = yes <br>
- * SL = 5<br>
- * RL = 4<br>
- * PL = 3<br>
- * expected exception : yes<br>
- * expected number of entries returned : 4 ( 3 + 1 )<br>
- */
-@Test
-public void testPagedSearchtest12() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 5 );
- DirContext ctx = getWiredContext( getLdapServer() );
- SearchControls controls = createSearchControls( ctx, 4, 3 );
-
- doLoop( ctx, controls, 3, 2, 4, true );
-}
-
-
-/**
- * Admin = yes <br>
- * SL = 4<br>
- * RL = 5<br>
- * PL = 3<br>
- * expected exception : yes<br>
- * expected number of entries returned : 5 ( 3 + 2 )<br>
- */
-@Test
-public void testPagedSearchtest13() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 4 );
- DirContext ctx = getWiredContext( getLdapServer() );
- SearchControls controls = createSearchControls( ctx, 5, 3 );
-
- doLoop( ctx, controls, 3, 2, 5, true );
-}
-
-
-/**
- * Admin = yes <br>
- * SL = 4<br>
- * RL = 3<br>
- * PL = 5<br>
- * expected exception : yes<br>
- * expected number of entries returned : 3 <br>
- */
-@Test
-public void testPagedSearchtest14() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 4 );
- DirContext ctx = getWiredContext( getLdapServer() );
- SearchControls controls = createSearchControls( ctx, 3, 5 );
-
- doLoop( ctx, controls, 5, 1, 3, true );
-}
-
-
-/**
- * Admin = yes <br>
- * SL = 3<br>
- * RL = 5<br>
- * PL = 4<br>
- * expected exception : yes<br>
- * expected number of entries returned : 5 ( 4 + 1 )<br>
- */
-@Test
-public void testPagedSearchtest15() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 3 );
- DirContext ctx = getWiredContext( getLdapServer() );
- SearchControls controls = createSearchControls( ctx, 5, 4 );
-
- doLoop( ctx, controls, 4, 2, 5, true );
-}
-
-
-/**
- * Admin = yes <br>
- * SL = 3<br>
- * RL = 4<br>
- * PL = 5<br>
- * expected exception : yes<br>
- * expected number of entries returned : 4 <br>
- */
-@Test
-public void testPagedSearchtest16() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 3 );
- DirContext ctx = getWiredContext( getLdapServer() );
- SearchControls controls = createSearchControls( ctx, 4, 5 );
-
- doLoop( ctx, controls, 5, 1, 4, true );
-}
-
-
-/**
- * Admin = yes <br>
- * SL = 5<br>
- * RL = 5<br>
- * PL = 5<br>
- * expected exception : yes<br>
- * expected number of entries returned : 5 <br>
- */
-@Test
-public void testPagedSearchtest17() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 5 );
- DirContext ctx = getWiredContext( getLdapServer() );
- SearchControls controls = createSearchControls( ctx, 5, 5 );
-
- doLoop( ctx, controls, 5, 1, 5, true );
-}
-
-
-/**
- * Admin = no <br>
- * SL = none<br>
- * RL = none<br>
- * PL = 3<br>
- * expected exception : no<br>
- * expected number of entries returned : 10 ( 3 + 3 + 3 + 1 )<br>
- */
-@Test
-public void testPagedSearchtest18() throws Exception
-{
- getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 3 );
-
- doLoop( ctx, controls, 3, 4, 10, false );
-}
-
-
-/**
- * Admin = no <br>
- * SL = none<br>
- * RL = none<br>
- * PL = 5<br>
- * expected exception : no<br>
- * expected number of entries returned : 10 ( 5 + 5 )<br>
- */
-@Test
-public void testPagedSearchtest19() throws Exception
-{
- getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 5 );
-
- doLoop( ctx, controls, 5, 2, 10, false );
-}
-
-
-/**
- * Admin = no <br>
- * SL = 3<br>
- * RL = none<br>
- * PL = 5<br>
- * expected exception : yes<br>
- * expected number of entries returned : 3<br>
- */
-@Test
-public void testPagedSearchTest20() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 3 );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 5 );
-
- doLoop( ctx, controls, 5, 1, 3, true );
-}
-
-
-/**
- * Admin = no <br>
- * SL = none<br>
- * RL = 3<br>
- * PL = 5<br>
- * expected exception : yes<br>
- * expected number of entries returned : 3<br>
- */
-@Test
-public void testPagedSearchTest21() throws Exception
-{
- getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, 3, 5 );
-
- doLoop( ctx, controls, 5, 1, 3, true );
-}
-
-
-/**
- * Admin = no <br>
- * SL = 5<br>
- * RL = none<br>
- * PL = 3<br>
- * expected exception : yes<br>
- * expected number of entries returned : 5 ( 3 + 2 )<br>
- */
-@Test
-public void testPagedSearchtest22() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 5 );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 3 );
-
- doLoop( ctx, controls, 3, 2, 5, true );
-}
-
-
-/**
- * Admin = no <br>
- * SL = none<br>
- * RL = 9<br>
- * PL = 5<br>
- * expected exception : yes<br>
- * expected number of entries returned : 9 ( 5 + 4 )<br>
- */
-@Test
-public void testPagedSearchTest23() throws Exception
-{
- getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, 9, 5 );
-
- doLoop( ctx, controls, 5, 2, 9, true );
-}
-
-
-/**
- * Admin = no <br>
- * SL = 5<br>
- * RL = none<br>
- * PL = 5<br>
- * expected exception : yes<br>
- * expected number of entries returned : 5<br>
- */
-@Test
-public void testPagedSearchtest24() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 5 );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 5 );
-
- doLoop( ctx, controls, 5, 1, 5, true );
-}
-
-
-/**
- * Admin = no <br>
- * SL = none<br>
- * RL = 5<br>
- * PL = 5<br>
- * expected exception : yes<br>
- * expected number of entries returned : 5<br>
- */
-@Test
-public void testPagedSearchTest25() throws Exception
-{
- getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, 5, 5 );
-
- doLoop( ctx, controls, 5, 1, 5, true );
-}
-
-
-/**
- * Admin = no <br>
- * SL = 5<br>
- * RL = 4<br>
- * PL = 3<br>
- * expected exception : yes<br>
- * expected number of entries returned : 2 ( 3 + 1 )<br>
- */
-@Test
-public void testPagedSearchTest26() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 5 );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, 4, 3 );
-
- doLoop( ctx, controls, 3, 2, 4, true );
-}
-
-
-/**
- * Admin = no <br>
- * SL = 4<br>
- * RL = 5<br>
- * PL = 3<br>
- * expected exception : yes<br>
- * expected number of entries returned : 4 ( 3 + 1 )<br>
- */
-@Test
-public void testPagedSearchtest27() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 4 );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, 5, 3 );
-
- doLoop( ctx, controls, 3, 2, 4, true );
-}
-
-
-/**
- * Admin = no <br>
- * SL = 5<br>
- * RL = 3<br>
- * PL = 4<br>
- * expected exception : yes<br>
- * expected number of entries returned : 3<br>
- */
-@Test
-public void testPagedSearchtest28() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 5 );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, 3, 4 );
-
- doLoop( ctx, controls, 4, 1, 3, true );
-}
-
-
-/**
- * Admin = no <br>
- * SL = 5<br>
- * RL = 4<br>
- * PL = 3<br>
- * expected exception : yes<br>
- * expected number of entries returned : 4 ( 3 + 1 )<br>
- */
-@Test
-public void testPagedSearchtest29() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 5 );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, 4, 3 );
-
- doLoop( ctx, controls, 3, 2, 4, true );
-}
-
-
-/**
- * Admin = no <br>
- * SL = 4<br>
- * RL = 5<br>
- * PL = 3<br>
- * expected exception : yes<br>
- * expected number of entries returned : 4 ( 3 + 1 )<br>
- */
-@Test
-public void testPagedSearchtest30() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 4 );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, 5, 3 );
-
- doLoop( ctx, controls, 3, 2, 4, true );
-}
-
-
-/**
- * Admin = no <br>
- * SL = 4<br>
- * RL = 3<br>
- * PL = 5<br>
- * expected exception : yes<br>
- * expected number of entries returned : 3 <br>
- */
-@Test
-public void testPagedSearchtest31() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 4 );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, 3, 5 );
-
- doLoop( ctx, controls, 3, 1, 3, true );
-}
-
-
-/**
- * Admin = no <br>
- * SL = 3<br>
- * RL = 5<br>
- * PL = 4<br>
- * expected exception : yes<br>
- * expected number of entries returned : 3 <br>
- */
-@Test
-public void testPagedSearchtest32() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 3 );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, 5, 4 );
-
- doLoop( ctx, controls, 3, 1, 3, true );
-}
-
-
-/**
- * Admin = no <br>
- * SL = 3<br>
- * RL = 4<br>
- * PL = 5<br>
- * expected exception : yes<br>
- * expected number of entries returned : 3 <br>
- */
-@Test
-public void testPagedSearchtest33() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 3 );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, 4, 5 );
-
- doLoop( ctx, controls, 3, 1, 3, true );
-}
-
-
-/**
- * Admin = no <br>
- * SL = 5<br>
- * RL = 5<br>
- * PL = 5<br>
- * expected exception : yes<br>
- * expected number of entries returned : 5 <br>
- */
-@Test
-public void testPagedSearchtest34() throws Exception
-{
- getLdapServer().setMaxSizeLimit( 5 );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, 5, 5 );
-
- doLoop( ctx, controls, 5, 1, 5, true );
-}
-
-
-/**
- * Admin = no <br>
- * SL = none<br>
- * RL = none<br>
- * PL = -2<br>
- * expected exception : no<br>
- * expected number of entries returned : 10 <br>
- */
-@Test
-public void testPagedSearchWithNegativePL() throws Exception
-{
- getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, -2 );
-
- doLoop( ctx, controls, -2, 1, 10, false );
-}
-
-
-/**
- * Do a test with a paged search and send a wrong cookie in the middle
- */
-@Test
-public void testPagedSearchWrongCookie() throws Exception
-{
- getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 3 );
-
- // Loop over all the elements
- int loop = 0;
- List<SearchResult> results = new ArrayList<SearchResult>();
- boolean hasUnwillingToPerform = false;
-
- while ( true )
+
+
+ /**
+ * Admin = yes <br>
+ * SL = none<br>
+ * RL = none<br>
+ * PL = 3<br>
+ * expected exception : no<br>
+ * expected number of entries returned : 10 ( 3 + 3 + 3 + 1 )<br>
+ */
+ @Test
+ public void testPagedSearchtest1() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
+ DirContext ctx = getWiredContext( getLdapServer() );
+ SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 3 );
+
+ doLoop( ctx, controls, 3, 4, 10, false );
+ }
+
+
+ /**
+ * Admin = yes <br>
+ * SL = none<br>
+ * RL = none<br>
+ * PL = 5<br>
+ * expected exception : no<br>
+ * expected number of entries returned : 10 ( 5 + 5 )<br>
+ */
+ @Test
+ public void testPagedSearchtest2() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
+ DirContext ctx = getWiredContext( getLdapServer() );
+ SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 5 );
+
+ doLoop( ctx, controls, 5, 2, 10, false );
+ }
+
+
+ /**
+ * Admin = yes <br>
+ * SL = 3<br>
+ * RL = none<br>
+ * PL = 5<br>
+ * expected exception : no<br>
+ * expected number of entries returned : 10 ( 5 + 5 )<br>
+ */
+ @Test
+ public void testPagedSearchTest3() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 3 );
+ DirContext ctx = getWiredContext( getLdapServer() );
+ SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 5 );
+
+ doLoop( ctx, controls, 5, 2, 10, false );
+ }
+
+
+ /**
+ * Admin = yes <br>
+ * SL = none<br>
+ * RL = 3<br>
+ * PL = 5<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 3<br>
+ */
+ @Test
+ public void testPagedSearchTest4() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
+ DirContext ctx = getWiredContext( getLdapServer() );
+ SearchControls controls = createSearchControls( ctx, 3, 5 );
+
+ doLoop( ctx, controls, 5, 1, 3, true );
+ }
+
+
+ /**
+ * Admin = yes <br>
+ * SL = 5<br>
+ * RL = none<br>
+ * PL = 3<br>
+ * expected exception : no<br>
+ * expected number of entries returned : 10 ( 3 + 3 + 3 + 1 )<br>
+ */
+ @Test
+ public void testPagedSearchtest5() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 5 );
+ DirContext ctx = getWiredContext( getLdapServer() );
+ SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 3 );
+
+ doLoop( ctx, controls, 3, 4, 10, false );
+ }
+
+
+ /**
+ * Admin = yes <br>
+ * SL = none<br>
+ * RL = 9<br>
+ * PL = 5<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 9 ( 5 + 4 )<br>
+ */
+ @Test
+ public void testPagedSearchTest6() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
+ DirContext ctx = getWiredContext( getLdapServer() );
+ SearchControls controls = createSearchControls( ctx, 9, 5 );
+
+ doLoop( ctx, controls, 5, 2, 9, true );
+ }
+
+
+ /**
+ * Admin = yes <br>
+ * SL = 5<br>
+ * RL = none<br>
+ * PL = 5<br>
+ * expected exception : no<br>
+ * expected number of entries returned : 10 ( 5 + 5 )<br>
+ */
+ @Test
+ public void testPagedSearchtest7() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 5 );
+ DirContext ctx = getWiredContext( getLdapServer() );
+ SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 5 );
+
+ doLoop( ctx, controls, 5, 2, 10, false );
+ }
+
+
+ /**
+ * Admin = yes <br>
+ * SL = none<br>
+ * RL = 5<br>
+ * PL = 5<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 5<br>
+ */
+ @Test
+ public void testPagedSearchTest8() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
+ DirContext ctx = getWiredContext( getLdapServer() );
+ SearchControls controls = createSearchControls( ctx, 5, 5 );
+
+ doLoop( ctx, controls, 5, 1, 5, true );
+ }
+
+
+ /**
+ * Admin = yes <br>
+ * SL = 5<br>
+ * RL = 4<br>
+ * PL = 3<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 2 ( 3 + 1 )<br>
+ */
+ @Test
+ public void testPagedSearchTest9() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 5 );
+ DirContext ctx = getWiredContext( getLdapServer() );
+ SearchControls controls = createSearchControls( ctx, 4, 3 );
+
+ doLoop( ctx, controls, 3, 2, 4, true );
+ }
+
+
+ /**
+ * Admin = yes <br>
+ * SL = 4<br>
+ * RL = 5<br>
+ * PL = 3<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 5 ( 3 + 2 )<br>
+ */
+ @Test
+ public void testPagedSearchtest10() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 4 );
+ DirContext ctx = getWiredContext( getLdapServer() );
+ SearchControls controls = createSearchControls( ctx, 5, 3 );
+
+ doLoop( ctx, controls, 3, 2, 5, true );
+ }
+
+
+ /**
+ * Admin = yes <br>
+ * SL = 5<br>
+ * RL = 3<br>
+ * PL = 4<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 3<br>
+ */
+ @Test
+ public void testPagedSearchtest11() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 5 );
+ DirContext ctx = getWiredContext( getLdapServer() );
+ SearchControls controls = createSearchControls( ctx, 3, 4 );
+
+ doLoop( ctx, controls, 4, 1, 3, true );
+ }
+
+
+ /**
+ * Admin = yes <br>
+ * SL = 5<br>
+ * RL = 4<br>
+ * PL = 3<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 4 ( 3 + 1 )<br>
+ */
+ @Test
+ public void testPagedSearchtest12() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 5 );
+ DirContext ctx = getWiredContext( getLdapServer() );
+ SearchControls controls = createSearchControls( ctx, 4, 3 );
+
+ doLoop( ctx, controls, 3, 2, 4, true );
+ }
+
+
+ /**
+ * Admin = yes <br>
+ * SL = 4<br>
+ * RL = 5<br>
+ * PL = 3<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 5 ( 3 + 2 )<br>
+ */
+ @Test
+ public void testPagedSearchtest13() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 4 );
+ DirContext ctx = getWiredContext( getLdapServer() );
+ SearchControls controls = createSearchControls( ctx, 5, 3 );
+
+ doLoop( ctx, controls, 3, 2, 5, true );
+ }
+
+
+ /**
+ * Admin = yes <br>
+ * SL = 4<br>
+ * RL = 3<br>
+ * PL = 5<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 3 <br>
+ */
+ @Test
+ public void testPagedSearchtest14() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 4 );
+ DirContext ctx = getWiredContext( getLdapServer() );
+ SearchControls controls = createSearchControls( ctx, 3, 5 );
+
+ doLoop( ctx, controls, 5, 1, 3, true );
+ }
+
+
+ /**
+ * Admin = yes <br>
+ * SL = 3<br>
+ * RL = 5<br>
+ * PL = 4<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 5 ( 4 + 1 )<br>
+ */
+ @Test
+ public void testPagedSearchtest15() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 3 );
+ DirContext ctx = getWiredContext( getLdapServer() );
+ SearchControls controls = createSearchControls( ctx, 5, 4 );
+
+ doLoop( ctx, controls, 4, 2, 5, true );
+ }
+
+
+ /**
+ * Admin = yes <br>
+ * SL = 3<br>
+ * RL = 4<br>
+ * PL = 5<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 4 <br>
+ */
+ @Test
+ public void testPagedSearchtest16() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 3 );
+ DirContext ctx = getWiredContext( getLdapServer() );
+ SearchControls controls = createSearchControls( ctx, 4, 5 );
+
+ doLoop( ctx, controls, 5, 1, 4, true );
+ }
+
+
+ /**
+ * Admin = yes <br>
+ * SL = 5<br>
+ * RL = 5<br>
+ * PL = 5<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 5 <br>
+ */
+ @Test
+ public void testPagedSearchtest17() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 5 );
+ DirContext ctx = getWiredContext( getLdapServer() );
+ SearchControls controls = createSearchControls( ctx, 5, 5 );
+
+ doLoop( ctx, controls, 5, 1, 5, true );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = none<br>
+ * RL = none<br>
+ * PL = 3<br>
+ * expected exception : no<br>
+ * expected number of entries returned : 10 ( 3 + 3 + 3 + 1 )<br>
+ */
+ @Test
+ public void testPagedSearchtest18() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 3 );
+
+ doLoop( ctx, controls, 3, 4, 10, false );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = none<br>
+ * RL = none<br>
+ * PL = 5<br>
+ * expected exception : no<br>
+ * expected number of entries returned : 10 ( 5 + 5 )<br>
+ */
+ @Test
+ public void testPagedSearchtest19() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 5 );
+
+ doLoop( ctx, controls, 5, 2, 10, false );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = 3<br>
+ * RL = none<br>
+ * PL = 5<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 3<br>
+ */
+ @Test
+ public void testPagedSearchTest20() throws Exception
{
- loop++;
+ getLdapServer().setMaxSizeLimit( 3 );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 5 );
+
+ doLoop( ctx, controls, 5, 1, 3, true );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = none<br>
+ * RL = 3<br>
+ * PL = 5<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 3<br>
+ */
+ @Test
+ public void testPagedSearchTest21() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, 3, 5 );
+
+ doLoop( ctx, controls, 5, 1, 3, true );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = 5<br>
+ * RL = none<br>
+ * PL = 3<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 5 ( 3 + 2 )<br>
+ */
+ @Test
+ public void testPagedSearchtest22() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 5 );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 3 );
+
+ doLoop( ctx, controls, 3, 2, 5, true );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = none<br>
+ * RL = 9<br>
+ * PL = 5<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 9 ( 5 + 4 )<br>
+ */
+ @Test
+ public void testPagedSearchTest23() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, 9, 5 );
+
+ doLoop( ctx, controls, 5, 2, 9, true );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = 5<br>
+ * RL = none<br>
+ * PL = 5<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 5<br>
+ */
+ @Test
+ public void testPagedSearchtest24() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 5 );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 5 );
+
+ doLoop( ctx, controls, 5, 1, 5, true );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = none<br>
+ * RL = 5<br>
+ * PL = 5<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 5<br>
+ */
+ @Test
+ public void testPagedSearchTest25() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, 5, 5 );
+
+ doLoop( ctx, controls, 5, 1, 5, true );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = 5<br>
+ * RL = 4<br>
+ * PL = 3<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 2 ( 3 + 1 )<br>
+ */
+ @Test
+ public void testPagedSearchTest26() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 5 );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, 4, 3 );
+
+ doLoop( ctx, controls, 3, 2, 4, true );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = 4<br>
+ * RL = 5<br>
+ * PL = 3<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 4 ( 3 + 1 )<br>
+ */
+ @Test
+ public void testPagedSearchtest27() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 4 );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, 5, 3 );
+
+ doLoop( ctx, controls, 3, 2, 4, true );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = 5<br>
+ * RL = 3<br>
+ * PL = 4<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 3<br>
+ */
+ @Test
+ public void testPagedSearchtest28() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 5 );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, 3, 4 );
+
+ doLoop( ctx, controls, 4, 1, 3, true );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = 5<br>
+ * RL = 4<br>
+ * PL = 3<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 4 ( 3 + 1 )<br>
+ */
+ @Test
+ public void testPagedSearchtest29() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 5 );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, 4, 3 );
+
+ doLoop( ctx, controls, 3, 2, 4, true );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = 4<br>
+ * RL = 5<br>
+ * PL = 3<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 4 ( 3 + 1 )<br>
+ */
+ @Test
+ public void testPagedSearchtest30() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 4 );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, 5, 3 );
+
+ doLoop( ctx, controls, 3, 2, 4, true );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = 4<br>
+ * RL = 3<br>
+ * PL = 5<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 3 <br>
+ */
+ @Test
+ public void testPagedSearchtest31() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 4 );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, 3, 5 );
+
+ doLoop( ctx, controls, 3, 1, 3, true );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = 3<br>
+ * RL = 5<br>
+ * PL = 4<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 3 <br>
+ */
+ @Test
+ public void testPagedSearchtest32() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 3 );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, 5, 4 );
+
+ doLoop( ctx, controls, 3, 1, 3, true );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = 3<br>
+ * RL = 4<br>
+ * PL = 5<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 3 <br>
+ */
+ @Test
+ public void testPagedSearchtest33() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 3 );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, 4, 5 );
+
+ doLoop( ctx, controls, 3, 1, 3, true );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = 5<br>
+ * RL = 5<br>
+ * PL = 5<br>
+ * expected exception : yes<br>
+ * expected number of entries returned : 5 <br>
+ */
+ @Test
+ public void testPagedSearchtest34() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( 5 );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, 5, 5 );
+
+ doLoop( ctx, controls, 5, 1, 5, true );
+ }
+
+
+ /**
+ * Admin = no <br>
+ * SL = none<br>
+ * RL = none<br>
+ * PL = -2<br>
+ * expected exception : no<br>
+ * expected number of entries returned : 10 <br>
+ */
+ @Test
+ public void testPagedSearchWithNegativePL() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, -2 );
+
+ doLoop( ctx, controls, -2, 1, 10, false );
+ }
+
+
+ /**
+ * Do a test with a paged search and send a wrong cookie in the middle
+ */
+ @Test
+ public void testPagedSearchWrongCookie() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 3 );
+
+ // Loop over all the elements
+ int loop = 0;
+ List<SearchResult> results = new ArrayList<SearchResult>();
+ boolean hasUnwillingToPerform = false;
+
+ while ( true )
+ {
+ loop++;
+
+ NamingEnumeration<SearchResult> list = null;
+
+ try
+ {
+ list = ctx.search( "dc=users,ou=system", "(cn=*)", controls );
+
+ while ( list.hasMore() )
+ {
+ SearchResult result = list.next();
+ results.add( result );
+ }
+ }
+ catch ( OperationNotSupportedException onse )
+ {
+ hasUnwillingToPerform = true;
+ break;
+ }
+ finally
+ {
+ if ( list != null )
+ {
+ list.close();
+ }
+ }
+
+ // Now read the next ones
+ javax.naming.ldap.Control[] responseControls = ( ( LdapContext ) ctx ).getResponseControls();
+
+ PagedResultsResponseControl responseControl =
+ ( PagedResultsResponseControl ) responseControls[0];
+ assertEquals( 0, responseControl.getResultSize() );
+
+ // check if this is over
+ byte[] cookie = responseControl.getCookie();
+
+ if ( Strings.isEmpty( cookie ) )
+ {
+ // If so, exit the loop
+ break;
+ }
+
+ // Prepare the next iteration, sending a bad cookie
+ createNextSearchControls( ctx, "test".getBytes( "UTF-8" ), 3 );
+ }
- try
+ assertTrue( hasUnwillingToPerform );
+
+ // Cleanup the session
+ ctx.close();
+
+ }
+
+
+ /**
+ * Do a test with a paged search, changing the number of entries to
+ * return in the middle of the loop
+ */
+ @Test
+ public void testPagedSearchModifyingPagedLimit() throws Exception
+ {
+ getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
+ DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
+ SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 4 );
+
+ // Loop over all the elements
+ int loop = 0;
+ List<SearchResult> results = new ArrayList<SearchResult>();
+
+ // The expected size after each loop.
+ int[] expectedSize = new int[]
+ { 4, 7, 9, 10 };
+
+ while ( true )
{
+ loop++;
+
NamingEnumeration<SearchResult> list =
ctx.search( "dc=users,ou=system", "(cn=*)", controls );
-
+
while ( list.hasMore() )
{
SearchResult result = list.next();
results.add( result );
}
- }
- catch ( OperationNotSupportedException onse )
- {
- hasUnwillingToPerform = true;
- break;
- }
-
- // Now read the next ones
- javax.naming.ldap.Control[] responseControls = ( ( LdapContext ) ctx ).getResponseControls();
-
- PagedResultsResponseControl responseControl =
- ( PagedResultsResponseControl ) responseControls[0];
- assertEquals( 0, responseControl.getResultSize() );
-
- // check if this is over
- byte[] cookie = responseControl.getCookie();
-
- if ( Strings.isEmpty( cookie ) )
- {
- // If so, exit the loop
- break;
- }
-
- // Prepare the next iteration, sending a bad cookie
- createNextSearchControls( ctx, "test".getBytes( "UTF-8" ), 3 );
- }
-
- assertTrue( hasUnwillingToPerform );
-}
-
-
-/**
- * Do a test with a paged search, changing the number of entries to
- * return in the middle of the loop
- */
-@Test
-public void testPagedSearchModifyingPagedLimit() throws Exception
-{
- getLdapServer().setMaxSizeLimit( LdapServer.NO_SIZE_LIMIT );
- DirContext ctx = getWiredContext( getLdapServer(), "cn=user,ou=system", "secret" );
- SearchControls controls = createSearchControls( ctx, ( int ) LdapServer.NO_SIZE_LIMIT, 4 );
-
- // Loop over all the elements
- int loop = 0;
- List<SearchResult> results = new ArrayList<SearchResult>();
-
- // The expected size after each loop.
- int[] expectedSize = new int[]
- { 4, 7, 9, 10 };
-
- while ( true )
- {
- loop++;
-
- NamingEnumeration<SearchResult> list =
- ctx.search( "dc=users,ou=system", "(cn=*)", controls );
-
- while ( list.hasMore() )
- {
- SearchResult result = list.next();
- results.add( result );
- }
-
- // Now read the next ones
- javax.naming.ldap.Control[] responseControls = ( ( LdapContext ) ctx ).getResponseControls();
-
- PagedResultsResponseControl responseControl =
- ( PagedResultsResponseControl ) responseControls[0];
- assertEquals( 0, responseControl.getResultSize() );
-
- // check if this is over
- byte[] cookie = responseControl.getCookie();
-
- if ( Strings.isEmpty( cookie ) )
- {
- // If so, exit the loop
- break;
- }
-
- // Prepare the next iteration, sending a bad cookie
- createNextSearchControls( ctx, responseControl.getCookie(), 4 - loop );
-
- assertEquals( expectedSize[loop - 1], results.size() );
+
+ list.close();
+
+ // Now read the next ones
+ javax.naming.ldap.Control[] responseControls = ( ( LdapContext ) ctx ).getResponseControls();
+
+ PagedResultsResponseControl responseControl =
+ ( PagedResultsResponseControl ) responseControls[0];
+ assertEquals( 0, responseControl.getResultSize() );
+
+ // check if this is over
+ byte[] cookie = responseControl.getCookie();
+
+ if ( Strings.isEmpty( cookie ) )
+ {
+ // If so, exit the loop
+ break;
+ }
+
+ // Prepare the next iteration, sending a bad cookie
+ createNextSearchControls( ctx, responseControl.getCookie(), 4 - loop );
+
+ assertEquals( expectedSize[loop - 1], results.size() );
+ }
+
+ assertEquals( 4, loop );
+ checkResults( results, 10 );
}
-
- assertEquals( 4, loop );
- checkResults( results, 10 );
-}
}
\ No newline at end of file
Modified: directory/apacheds/branches/index-work/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/index-work/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java?rev=1311803&r1=1311802&r2=1311803&view=diff
==============================================================================
--- directory/apacheds/branches/index-work/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java (original)
+++ directory/apacheds/branches/index-work/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java Tue Apr 10 15:51:31 2012
@@ -1615,6 +1615,7 @@ public class SearchIT extends AbstractLd
public void testAbandonnedRequest() throws Exception
{
LdapConnection asyncCnx = new LdapNetworkConnection( "localhost", getLdapServer().getPort() );
+ EntryCursor cursor = null;
try
{
@@ -1636,7 +1637,7 @@ public class SearchIT extends AbstractLd
}
// Searches for all the entries in ou=system
- EntryCursor cursor = asyncCnx.search( "ou=system", "(ObjectClass=*)", SearchScope.SUBTREE, "*" );
+ cursor = asyncCnx.search( "ou=system", "(ObjectClass=*)", SearchScope.SUBTREE, "*" );
// Now loop on all the elements found, and abandon after 10 elements returned
int count = 0;
@@ -1663,6 +1664,7 @@ public class SearchIT extends AbstractLd
{
asyncCnx.unBind();
asyncCnx.close();
+ cursor.close();
}
}