You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2017/02/12 18:02:06 UTC
svn commit: r1782687 - in
/directory/studio/trunk/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core:
ConnectionWrapperTestBase.java DirectoryApiConnectionWrapperTest.java
JNDIConnectionWrapperTest.java
Author: seelmann
Date: Sun Feb 12 18:02:06 2017
New Revision: 1782687
URL: http://svn.apache.org/viewvc?rev=1782687&view=rev
Log:
Move duplicate tests to super class
Added:
directory/studio/trunk/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/ConnectionWrapperTestBase.java (with props)
Modified:
directory/studio/trunk/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/DirectoryApiConnectionWrapperTest.java
directory/studio/trunk/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/JNDIConnectionWrapperTest.java
Added: directory/studio/trunk/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/ConnectionWrapperTestBase.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/ConnectionWrapperTestBase.java?rev=1782687&view=auto
==============================================================================
--- directory/studio/trunk/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/ConnectionWrapperTestBase.java (added)
+++ directory/studio/trunk/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/ConnectionWrapperTestBase.java Sun Feb 12 18:02:06 2017
@@ -0,0 +1,381 @@
+
+package org.apache.directory.studio.test.integration.core;
+
+
+import static org.apache.directory.studio.test.integration.core.Constants.LOCALHOST;
+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.net.ConnectException;
+import java.net.UnknownHostException;
+import java.nio.channels.UnresolvedAddressException;
+
+import javax.naming.AuthenticationException;
+import javax.naming.CommunicationException;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+import javax.naming.directory.Attributes;
+import javax.naming.directory.DirContext;
+import javax.naming.directory.ModificationItem;
+import javax.naming.directory.SearchControls;
+import javax.naming.directory.SearchResult;
+
+import org.apache.directory.api.ldap.model.entry.AttributeUtils;
+import org.apache.directory.api.ldap.model.entry.DefaultAttribute;
+import org.apache.directory.api.ldap.model.entry.DefaultEntry;
+import org.apache.directory.api.ldap.model.entry.Entry;
+import org.apache.directory.api.ldap.model.name.Dn;
+import org.apache.directory.ldap.client.api.exception.InvalidConnectionException;
+import org.apache.directory.server.annotations.CreateLdapServer;
+import org.apache.directory.server.annotations.CreateTransport;
+import org.apache.directory.server.core.annotations.ApplyLdifFiles;
+import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
+import org.apache.directory.server.core.integ.FrameworkRunner;
+import org.apache.directory.studio.common.core.jobs.StudioProgressMonitor;
+import org.apache.directory.studio.connection.core.Connection;
+import org.apache.directory.studio.connection.core.Connection.AliasDereferencingMethod;
+import org.apache.directory.studio.connection.core.Connection.ReferralHandlingMethod;
+import org.apache.directory.studio.connection.core.ConnectionCorePlugin;
+import org.apache.directory.studio.connection.core.ConnectionParameter;
+import org.apache.directory.studio.connection.core.ConnectionParameter.AuthenticationMethod;
+import org.apache.directory.studio.connection.core.ConnectionParameter.EncryptionMethod;
+import org.apache.directory.studio.connection.core.ConnectionParameter.NetworkProvider;
+import org.apache.directory.studio.connection.core.IReferralHandler;
+import org.apache.directory.studio.connection.core.io.ConnectionWrapper;
+import org.apache.mina.util.AvailablePortFinder;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+
+@RunWith(FrameworkRunner.class)
+@CreateLdapServer(transports =
+ { @CreateTransport(protocol = "LDAP"), @CreateTransport(protocol = "LDAPS") })
+@ApplyLdifFiles(clazz = ConnectionWrapperTestBase.class, value = "org/apache/directory/studio/test/integration/core/TestData.ldif")
+public abstract class ConnectionWrapperTestBase extends AbstractLdapTestUnit
+{
+
+ protected NetworkProvider provider;
+
+
+ public ConnectionWrapperTestBase( NetworkProvider provider )
+ {
+ this.provider = provider;
+ }
+
+
+ @Before
+ public void setUp() throws Exception
+ {
+ // create referral entry
+ Entry entry = new DefaultEntry( getService().getSchemaManager() );
+ entry.setDn( new Dn( "cn=referral,ou=system" ) );
+ entry.add( "objectClass", "top", "referral", "extensibleObject" );
+ entry.add( "cn", "referral" );
+ entry.add( "ref", "ldap://" + LOCALHOST + ":" + ldapServer.getPort() + "/ou=users,ou=system" );
+ service.getAdminSession().add( entry );
+ }
+
+
+ /**
+ * Tests connecting to the server.
+ */
+ @Test
+ public void testConnect()
+ {
+ StudioProgressMonitor monitor = getProgressMonitor();
+ ConnectionParameter connectionParameter = new ConnectionParameter( null, LOCALHOST, ldapServer.getPort(),
+ EncryptionMethod.NONE, NetworkProvider.JNDI, AuthenticationMethod.NONE, null, null, null, true, null );
+ Connection connection = new Connection( connectionParameter );
+ ConnectionWrapper connectionWrapper = connection.getConnectionWrapper();
+
+ assertFalse( connectionWrapper.isConnected() );
+
+ connectionWrapper.connect( monitor );
+ assertTrue( connectionWrapper.isConnected() );
+ assertNull( monitor.getException() );
+
+ connectionWrapper.disconnect();
+ assertFalse( connectionWrapper.isConnected() );
+
+ // TODO: SSL, StartTLS
+ }
+
+
+ /**
+ * Test failed connections to the server.
+ */
+ @Test
+ public void testConnectFailures()
+ {
+ StudioProgressMonitor monitor = null;
+ ConnectionParameter connectionParameter = null;
+ Connection connection = null;
+ ConnectionWrapper connectionWrapper = null;
+
+ // invalid port
+ monitor = getProgressMonitor();
+ connectionParameter = new ConnectionParameter( null, LOCALHOST, AvailablePortFinder.getNextAvailable(),
+ EncryptionMethod.NONE, provider, AuthenticationMethod.NONE, null, null, null, true, null );
+ connection = new Connection( connectionParameter );
+ connectionWrapper = connection.getConnectionWrapper();
+ connectionWrapper.connect( monitor );
+ assertFalse( connectionWrapper.isConnected() );
+ assertNotNull( monitor.getException() );
+ if ( provider == NetworkProvider.JNDI )
+ {
+ assertTrue( monitor.getException() instanceof CommunicationException );
+ assertNotNull( monitor.getException().getCause() );
+ assertTrue( monitor.getException().getCause() instanceof ConnectException );
+ }
+ if ( provider == NetworkProvider.APACHE_DIRECTORY_LDAP_API )
+ {
+ assertTrue( monitor.getException() instanceof InvalidConnectionException );
+ assertNotNull( monitor.getException().getCause() );
+ assertTrue( monitor.getException().getCause() instanceof ConnectException );
+ }
+
+ // unknown host
+ monitor = getProgressMonitor();
+ connectionParameter = new ConnectionParameter( null, "555.555.555.555", ldapServer.getPort(),
+ EncryptionMethod.NONE, provider, AuthenticationMethod.NONE, null, null, null, true, null );
+ connection = new Connection( connectionParameter );
+ connectionWrapper = connection.getConnectionWrapper();
+ connectionWrapper.connect( monitor );
+ assertFalse( connectionWrapper.isConnected() );
+ assertNotNull( monitor.getException() );
+ if ( provider == NetworkProvider.JNDI )
+ {
+ assertTrue( monitor.getException() instanceof CommunicationException );
+ assertNotNull( monitor.getException().getCause() );
+ assertTrue( monitor.getException().getCause() instanceof UnknownHostException );
+ }
+ if ( provider == NetworkProvider.APACHE_DIRECTORY_LDAP_API )
+ {
+ assertTrue( monitor.getException() instanceof InvalidConnectionException );
+ assertNotNull( monitor.getException().getCause() );
+ assertTrue( monitor.getException().getCause() instanceof UnresolvedAddressException );
+ }
+
+ // TODO: SSL, StartTLS
+ }
+
+
+ /**
+ * Test binding to the server.
+ */
+ @Test
+ public void testBind()
+ {
+ StudioProgressMonitor monitor = getProgressMonitor();
+ ConnectionParameter connectionParameter = new ConnectionParameter( null, LOCALHOST, ldapServer.getPort(),
+ EncryptionMethod.NONE, provider, AuthenticationMethod.SIMPLE, "uid=admin,ou=system", "secret", null, true,
+ null );
+ Connection connection = new Connection( connectionParameter );
+ ConnectionWrapper connectionWrapper = connection.getConnectionWrapper();
+
+ assertFalse( connectionWrapper.isConnected() );
+
+ connectionWrapper.connect( monitor );
+ connectionWrapper.bind( monitor );
+ assertTrue( connectionWrapper.isConnected() );
+ assertNull( monitor.getException() );
+
+ connectionWrapper.unbind();
+ connectionWrapper.disconnect();
+ assertFalse( connectionWrapper.isConnected() );
+ }
+
+
+ /**
+ * Test failed binds to the server.
+ */
+ @Test
+ public void testBindFailures()
+ {
+ StudioProgressMonitor monitor = null;
+ ConnectionParameter connectionParameter = null;
+ Connection connection = null;
+ ConnectionWrapper connectionWrapper = null;
+
+ // simple auth without principal and credential
+ monitor = getProgressMonitor();
+ connectionParameter = new ConnectionParameter( null, LOCALHOST, ldapServer.getPort(), EncryptionMethod.NONE,
+ provider, AuthenticationMethod.SIMPLE, "uid=admin", "invalid", null, true, null );
+ connection = new Connection( connectionParameter );
+ connectionWrapper = connection.getConnectionWrapper();
+ connectionWrapper.connect( monitor );
+ connectionWrapper.bind( monitor );
+ assertFalse( connectionWrapper.isConnected() );
+ assertNotNull( monitor.getException() );
+ if ( provider == NetworkProvider.JNDI )
+ {
+ assertTrue( monitor.getException() instanceof NamingException );
+ }
+ if ( provider == NetworkProvider.APACHE_DIRECTORY_LDAP_API )
+ {
+ assertTrue( monitor.getException() instanceof Exception );
+ assertTrue( monitor.getException().getMessage().contains( "error code 49 - INVALID_CREDENTIALS" ) );
+ }
+
+ // simple auth with invalid principal and credential
+ monitor = getProgressMonitor();
+ connectionParameter = new ConnectionParameter( null, LOCALHOST, ldapServer.getPort(), EncryptionMethod.NONE,
+ provider, AuthenticationMethod.SIMPLE, "uid=admin,ou=system", "bar", null, true, null );
+ connection = new Connection( connectionParameter );
+ connectionWrapper = connection.getConnectionWrapper();
+ connectionWrapper.connect( monitor );
+ connectionWrapper.bind( monitor );
+ assertFalse( connectionWrapper.isConnected() );
+ assertNotNull( monitor.getException() );
+ if ( provider == NetworkProvider.JNDI )
+ {
+ assertTrue( monitor.getException() instanceof AuthenticationException );
+ }
+ if ( provider == NetworkProvider.APACHE_DIRECTORY_LDAP_API )
+ {
+ assertTrue( monitor.getException() instanceof Exception );
+ assertTrue( monitor.getException().getMessage().contains( "error code 49 - INVALID_CREDENTIALS" ) );
+ }
+ }
+
+
+ /**
+ * Test searching.
+ */
+ @Test
+ public void testSearch() throws NamingException
+ {
+ StudioProgressMonitor monitor = getProgressMonitor();
+ SearchControls searchControls = new SearchControls();
+ NamingEnumeration<SearchResult> result = getConnectionWrapper( monitor ).search( "ou=system", "(objectClass=*)",
+ searchControls, AliasDereferencingMethod.NEVER, ReferralHandlingMethod.IGNORE, null, monitor, null );
+
+ assertFalse( monitor.isCanceled() );
+ assertFalse( monitor.errorsReported() );
+ assertNotNull( result );
+ assertTrue( result.hasMore() );
+ SearchResult entry = result.next();
+ assertNotNull( entry );
+ }
+
+
+ @Test
+ public void testSearchContinuation() throws NamingException
+ {
+ StudioProgressMonitor monitor = getProgressMonitor();
+ SearchControls searchControls = new SearchControls();
+ NamingEnumeration<SearchResult> result = getConnectionWrapper( monitor ).search( "cn=referral,ou=system",
+ "(objectClass=*)", searchControls, AliasDereferencingMethod.NEVER, ReferralHandlingMethod.FOLLOW, null,
+ monitor, null );
+
+ assertFalse( monitor.isCanceled() );
+ assertFalse( monitor.errorsReported() );
+ assertNotNull( result );
+ assertTrue( result.hasMore() );
+ SearchResult entry = result.next();
+ assertNotNull( entry );
+ assertEquals( "uid=user.1,ou=users,ou=system", entry.getNameInNamespace() );
+ }
+
+
+ @Test
+ public void testAddFollowsReferral() throws Exception
+ {
+ String targetDn = "uid=user.X,ou=users,ou=system";
+ String referralDn = "uid=user.X,cn=referral,ou=system";
+
+ // create entry under referral
+ StudioProgressMonitor monitor = getProgressMonitor();
+ Attributes attributes = AttributeUtils.toAttributes(
+ new DefaultEntry( referralDn, "objectClass: inetOrgPerson", "sn: X", "cn: X", "uid: user.X" ) );
+ getConnectionWrapper( monitor ).createEntry( referralDn, attributes, null, monitor, null );
+
+ // should have created target entry
+ assertFalse( monitor.isCanceled() );
+ assertFalse( monitor.errorsReported() );
+ assertTrue( service.getAdminSession().exists( targetDn ) );
+ }
+
+
+ @Test
+ public void testModifyFollowsReferral() throws Exception
+ {
+ String targetDn = "uid=user.X,ou=users,ou=system";
+ String referralDn = "uid=user.X,cn=referral,ou=system";
+
+ // create target entry
+ service.getAdminSession().add( new DefaultEntry( service.getSchemaManager(), targetDn,
+ "objectClass: inetOrgPerson", "sn: X", "cn: X", "uid: user.X" ) );
+
+ // modify referral entry
+ StudioProgressMonitor monitor = getProgressMonitor();
+ ModificationItem[] modificationItems =
+ { new ModificationItem( DirContext.REPLACE_ATTRIBUTE,
+ AttributeUtils.toJndiAttribute( new DefaultAttribute( "sn", "modified" ) ) ) };
+ getConnectionWrapper( monitor ).modifyEntry( referralDn, modificationItems, null, monitor, null );
+
+ // should have modified the target entry
+ assertFalse( monitor.isCanceled() );
+ assertFalse( monitor.errorsReported() );
+ Entry entry = service.getAdminSession().lookup( new Dn( targetDn ) );
+ assertEquals( "modified", entry.get( "sn" ).getString() );
+ }
+
+
+ @Test
+ public void testDeleteFollowsReferral() throws Exception
+ {
+ String targetDn = "uid=user.X,ou=users,ou=system";
+ String referralDn = "uid=user.X,cn=referral,ou=system";
+
+ // create target entry
+ service.getAdminSession().add( new DefaultEntry( service.getSchemaManager(), targetDn,
+ "objectClass: inetOrgPerson", "sn: X", "cn: X", "uid: user.X" ) );
+
+ // delete referral entry
+ StudioProgressMonitor monitor = getProgressMonitor();
+ getConnectionWrapper( monitor ).deleteEntry( referralDn, null, monitor, null );
+
+ // should have deleted the target entry
+ assertFalse( monitor.isCanceled() );
+ assertFalse( monitor.errorsReported() );
+ assertFalse( service.getAdminSession().exists( targetDn ) );
+ }
+
+
+ protected StudioProgressMonitor getProgressMonitor()
+ {
+ StudioProgressMonitor monitor = new StudioProgressMonitor( new NullProgressMonitor() );
+ return monitor;
+ }
+
+
+ protected ConnectionWrapper getConnectionWrapper( StudioProgressMonitor monitor )
+ {
+ // simple auth without principal and credential
+ ConnectionParameter connectionParameter = new ConnectionParameter( null, LOCALHOST, ldapServer.getPort(),
+ EncryptionMethod.NONE, provider, AuthenticationMethod.SIMPLE, "uid=admin,ou=system", "secret", null, false,
+ null );
+
+ Connection connection = new Connection( connectionParameter );
+
+ ConnectionWrapper connectionWrapper = connection.getConnectionWrapper();
+ connectionWrapper.connect( monitor );
+ connectionWrapper.bind( monitor );
+
+ IReferralHandler referralHandler = referralUrls -> {
+ return connection;
+ };
+ ConnectionCorePlugin.getDefault().setReferralHandler( referralHandler );
+
+ assertTrue( connectionWrapper.isConnected() );
+ assertNull( monitor.getException() );
+
+ return connectionWrapper;
+ }
+}
Propchange: directory/studio/trunk/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/ConnectionWrapperTestBase.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: directory/studio/trunk/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/DirectoryApiConnectionWrapperTest.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/DirectoryApiConnectionWrapperTest.java?rev=1782687&r1=1782686&r2=1782687&view=diff
==============================================================================
--- directory/studio/trunk/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/DirectoryApiConnectionWrapperTest.java (original)
+++ directory/studio/trunk/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/DirectoryApiConnectionWrapperTest.java Sun Feb 12 18:02:06 2017
@@ -24,12 +24,8 @@ package org.apache.directory.studio.test
import static org.apache.directory.studio.test.integration.core.Constants.LOCALHOST;
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.net.ConnectException;
-import java.nio.channels.UnresolvedAddressException;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -37,45 +33,17 @@ import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
-import javax.naming.NamingEnumeration;
-import javax.naming.NamingException;
-import javax.naming.directory.Attributes;
-import javax.naming.directory.DirContext;
-import javax.naming.directory.ModificationItem;
-import javax.naming.directory.SearchControls;
-import javax.naming.directory.SearchResult;
-
-import org.apache.directory.api.ldap.model.entry.AttributeUtils;
-import org.apache.directory.api.ldap.model.entry.DefaultAttribute;
-import org.apache.directory.api.ldap.model.entry.DefaultEntry;
-import org.apache.directory.api.ldap.model.entry.Entry;
-import org.apache.directory.api.ldap.model.name.Dn;
-import org.apache.directory.ldap.client.api.exception.InvalidConnectionException;
-import org.apache.directory.server.annotations.CreateLdapServer;
-import org.apache.directory.server.annotations.CreateTransport;
-import org.apache.directory.server.core.annotations.ApplyLdifFiles;
-import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
-import org.apache.directory.server.core.integ.FrameworkRunner;
import org.apache.directory.studio.common.core.jobs.StudioProgressMonitor;
import org.apache.directory.studio.connection.core.Connection;
-import org.apache.directory.studio.connection.core.ConnectionCorePlugin;
-import org.apache.directory.studio.connection.core.Connection.AliasDereferencingMethod;
-import org.apache.directory.studio.connection.core.Connection.ReferralHandlingMethod;
import org.apache.directory.studio.connection.core.ConnectionParameter;
-import org.apache.directory.studio.connection.core.IReferralHandler;
import org.apache.directory.studio.connection.core.ConnectionParameter.AuthenticationMethod;
import org.apache.directory.studio.connection.core.ConnectionParameter.EncryptionMethod;
import org.apache.directory.studio.connection.core.ConnectionParameter.NetworkProvider;
import org.apache.directory.studio.connection.core.event.ConnectionEventRegistry;
-import org.apache.directory.studio.connection.core.io.ConnectionWrapper;
import org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper;
import org.apache.directory.studio.ldapbrowser.core.jobs.InitializeRootDSERunnable;
import org.apache.directory.studio.ldapbrowser.core.model.impl.BrowserConnection;
-import org.apache.mina.util.AvailablePortFinder;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.junit.Before;
import org.junit.Test;
-import org.junit.runner.RunWith;
/**
@@ -84,191 +52,16 @@ import org.junit.runner.RunWith;
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$, $Date$
*/
-@RunWith(FrameworkRunner.class)
-@CreateLdapServer(transports =
- { @CreateTransport(protocol = "LDAP"), @CreateTransport(protocol = "LDAPS") })
-@ApplyLdifFiles(clazz = DirectoryApiConnectionWrapperTest.class, value = "org/apache/directory/studio/test/integration/core/TestData.ldif")
-public class DirectoryApiConnectionWrapperTest extends AbstractLdapTestUnit
+public class DirectoryApiConnectionWrapperTest extends ConnectionWrapperTestBase
{
-
- @Before
- public void setUp() throws Exception
- {
- // create referral entry
- Entry entry = new DefaultEntry( getService().getSchemaManager() );
- entry.setDn( new Dn( "cn=referral,ou=system" ) );
- entry.add( "objectClass", "top", "referral", "extensibleObject" );
- entry.add( "cn", "referral" );
- entry.add( "ref", "ldap://" + LOCALHOST + ":" + ldapServer.getPort() + "/ou=users,ou=system" );
- service.getAdminSession().add( entry );
- }
-
- /**
- * Tests connecting to the server.
- */
- @Test
- public void testConnect()
- {
- StudioProgressMonitor monitor = getProgressMonitor();
- ConnectionParameter connectionParameter = new ConnectionParameter( null, LOCALHOST, ldapServer.getPort(),
- EncryptionMethod.NONE, NetworkProvider.APACHE_DIRECTORY_LDAP_API, AuthenticationMethod.NONE, null, null,
- null, true, null );
- Connection connection = new Connection( connectionParameter );
- ConnectionWrapper connectionWrapper = connection.getConnectionWrapper();
-
- assertFalse( connectionWrapper.isConnected() );
-
- connectionWrapper.connect( monitor );
- assertTrue( connectionWrapper.isConnected() );
- assertNull( monitor.getException() );
-
- connectionWrapper.disconnect();
- assertFalse( connectionWrapper.isConnected() );
-
- // TODO: SSL, StartTLS
- }
-
-
- /**
- * Test failed connections to the server.
- */
- @Test
- public void testConnectFailures()
- {
- StudioProgressMonitor monitor = null;
- ConnectionParameter connectionParameter = null;
- Connection connection = null;
- ConnectionWrapper connectionWrapper = null;
-
- // invalid port
- monitor = getProgressMonitor();
- connectionParameter = new ConnectionParameter( null, LOCALHOST, AvailablePortFinder.getNextAvailable(),
- EncryptionMethod.NONE, NetworkProvider.APACHE_DIRECTORY_LDAP_API, AuthenticationMethod.NONE, null, null,
- null, true, null );
- connection = new Connection( connectionParameter );
- connectionWrapper = connection.getConnectionWrapper();
- connectionWrapper.connect( monitor );
- assertFalse( connectionWrapper.isConnected() );
- assertNotNull( monitor.getException() );
- assertTrue( monitor.getException() instanceof InvalidConnectionException );
- assertNotNull( monitor.getException().getCause() );
- assertTrue( monitor.getException().getCause() instanceof ConnectException );
-
- // unknown host
- monitor = getProgressMonitor();
- connectionParameter = new ConnectionParameter( null, "555.555.555.555", ldapServer.getPort(),
- EncryptionMethod.NONE, NetworkProvider.APACHE_DIRECTORY_LDAP_API, AuthenticationMethod.NONE, null, null,
- null, true, null );
- connection = new Connection( connectionParameter );
- connectionWrapper = connection.getConnectionWrapper();
- connectionWrapper.connect( monitor );
- assertFalse( connectionWrapper.isConnected() );
- assertNotNull( monitor.getException() );
- assertTrue( monitor.getException() instanceof InvalidConnectionException );
- assertNotNull( monitor.getException().getCause() );
- assertTrue( monitor.getException().getCause() instanceof UnresolvedAddressException );
-
- // TODO: SSL, StartTLS
- }
-
- /**
- * Test binding to the server.
- */
- @Test
- public void testBind()
- {
- StudioProgressMonitor monitor = getProgressMonitor();
- ConnectionParameter connectionParameter = new ConnectionParameter( null, LOCALHOST, ldapServer.getPort(),
- EncryptionMethod.NONE, NetworkProvider.APACHE_DIRECTORY_LDAP_API, AuthenticationMethod.SIMPLE,
- "uid=admin,ou=system", "secret", null, true, null );
- Connection connection = new Connection( connectionParameter );
- ConnectionWrapper connectionWrapper = connection.getConnectionWrapper();
-
- assertFalse( connectionWrapper.isConnected() );
-
- connectionWrapper.connect( monitor );
- connectionWrapper.bind( monitor );
- assertTrue( connectionWrapper.isConnected() );
- assertNull( monitor.getException() );
-
- connectionWrapper.unbind();
- connectionWrapper.disconnect();
- assertFalse( connectionWrapper.isConnected() );
-
- }
-
-
- /**
- * Test failed binds to the server.
- */
- @Test
- public void testBindFailures()
+ public DirectoryApiConnectionWrapperTest()
{
- StudioProgressMonitor monitor = null;
- ConnectionParameter connectionParameter = null;
- Connection connection = null;
- ConnectionWrapper connectionWrapper = null;
-
- // simple auth without principal and credential
- monitor = getProgressMonitor();
- connectionParameter = new ConnectionParameter( null, LOCALHOST, ldapServer.getPort(), EncryptionMethod.NONE,
- NetworkProvider.APACHE_DIRECTORY_LDAP_API, AuthenticationMethod.SIMPLE, "uid=admin", "invalid", null, true,
- null );
- connection = new Connection( connectionParameter );
- connectionWrapper = connection.getConnectionWrapper();
- connectionWrapper.connect( monitor );
- connectionWrapper.bind( monitor );
- assertFalse( connectionWrapper.isConnected() );
- assertNotNull( monitor.getException() );
- assertTrue( monitor.getException() instanceof Exception );
- assertTrue( monitor.getException().getMessage().contains( "error code 49 - INVALID_CREDENTIALS" ) );
-
- // simple auth with invalid principal and credential
- monitor = getProgressMonitor();
- connectionParameter = new ConnectionParameter( null, LOCALHOST, ldapServer.getPort(), EncryptionMethod.NONE,
- NetworkProvider.APACHE_DIRECTORY_LDAP_API, AuthenticationMethod.SIMPLE, "uid=admin,ou=system", "bar", null,
- true, null );
- connection = new Connection( connectionParameter );
- connectionWrapper = connection.getConnectionWrapper();
- connectionWrapper.connect( monitor );
- connectionWrapper.bind( monitor );
- assertFalse( connectionWrapper.isConnected() );
- assertNotNull( monitor.getException() );
- assertTrue( monitor.getException() instanceof Exception );
- assertTrue( monitor.getException().getMessage().contains( "error code 49 - INVALID_CREDENTIALS" ) );
+ super( NetworkProvider.APACHE_DIRECTORY_LDAP_API );
}
- /**
- * Test searching.
- */
- @Test
- public void testSearch()
- {
- StudioProgressMonitor monitor = null;
- ConnectionParameter connectionParameter = null;
- Connection connection = null;
- ConnectionWrapper connectionWrapper = null;
-
- // simple auth without principal and credential
- monitor = getProgressMonitor();
- connectionParameter = new ConnectionParameter( null, LOCALHOST, ldapServer.getPort(), EncryptionMethod.NONE,
- NetworkProvider.APACHE_DIRECTORY_LDAP_API, AuthenticationMethod.SIMPLE, "uid=admin,ou=system", "secret",
- null, true, null );
- connection = new Connection( connectionParameter );
- connectionWrapper = connection.getConnectionWrapper();
- connectionWrapper.connect( monitor );
- connectionWrapper.bind( monitor );
- assertTrue( connectionWrapper.isConnected() );
- assertNull( monitor.getException() );
-
- SearchControls searchControls = new SearchControls();
- NamingEnumeration<SearchResult> result = connectionWrapper.search( "ou=system", "(objectClass=*)",
- searchControls, AliasDereferencingMethod.NEVER, ReferralHandlingMethod.IGNORE, null, monitor, null );
- assertNotNull( result );
- }
-
+ // see tests in super class
/**
* Test initializing of Root DSE.
@@ -298,9 +91,9 @@ public class DirectoryApiConnectionWrapp
public void testConcurrentUseAndCloseOfConnection() throws Exception
{
final StudioProgressMonitor monitor = getProgressMonitor();
- final ConnectionParameter connectionParameter = new ConnectionParameter( null, LOCALHOST,
- ldapServer.getPort(), EncryptionMethod.NONE, NetworkProvider.APACHE_DIRECTORY_LDAP_API,
- AuthenticationMethod.SIMPLE, "uid=admin,ou=system", "secret", null, true, null );
+ final ConnectionParameter connectionParameter = new ConnectionParameter( null, LOCALHOST, ldapServer.getPort(),
+ EncryptionMethod.NONE, NetworkProvider.APACHE_DIRECTORY_LDAP_API, AuthenticationMethod.SIMPLE,
+ "uid=admin,ou=system", "secret", null, true, null );
final Connection connection = new Connection( connectionParameter );
final BrowserConnection browserConnection = new BrowserConnection( connection );
@@ -361,122 +154,4 @@ public class DirectoryApiConnectionWrapp
assertTrue( closeFuture.isDone() );
}
-
- private StudioProgressMonitor getProgressMonitor()
- {
- StudioProgressMonitor monitor = new StudioProgressMonitor( new NullProgressMonitor() );
- return monitor;
- }
-
-
-
- @Test
- public void testSearchContinuation() throws NamingException
- {
- StudioProgressMonitor monitor = getProgressMonitor();
- SearchControls searchControls = new SearchControls();
- NamingEnumeration<SearchResult> result = getConnectionWrapper( monitor ).search( "cn=referral,ou=system",
- "(objectClass=*)", searchControls, AliasDereferencingMethod.NEVER, ReferralHandlingMethod.FOLLOW, null,
- monitor, null );
-
- System.out.println( monitor.getException() );
- assertFalse( monitor.isCanceled() );
- assertFalse( monitor.errorsReported() );
- assertNotNull( result );
- assertTrue( result.hasMore() );
- SearchResult entry = result.next();
- assertNotNull( entry );
- assertEquals( "uid=user.1,ou=users,ou=system", entry.getNameInNamespace() );
- }
-
-
- @Test
- public void testAddFollowsReferral() throws Exception
- {
- String targetDn = "uid=user.X,ou=users,ou=system";
- String referralDn = "uid=user.X,cn=referral,ou=system";
-
- // create entry under referral
- StudioProgressMonitor monitor = getProgressMonitor();
- Attributes attributes = AttributeUtils.toAttributes(
- new DefaultEntry( referralDn, "objectClass: inetOrgPerson", "sn: X", "cn: X", "uid: user.X" ) );
- getConnectionWrapper( monitor ).createEntry( referralDn, attributes, null, monitor, null );
-
- // should have created target entry
- assertFalse( monitor.isCanceled() );
- assertFalse( monitor.errorsReported() );
- assertTrue( service.getAdminSession().exists( targetDn ) );
- }
-
-
- @Test
- public void testModifyFollowsReferral() throws Exception
- {
- String targetDn = "uid=user.X,ou=users,ou=system";
- String referralDn = "uid=user.X,cn=referral,ou=system";
-
- // create target entry
- service.getAdminSession().add( new DefaultEntry( service.getSchemaManager(), targetDn,
- "objectClass: inetOrgPerson", "sn: X", "cn: X", "uid: user.X" ) );
-
- // modify referral entry
- StudioProgressMonitor monitor = getProgressMonitor();
- ModificationItem[] modificationItems =
- { new ModificationItem( DirContext.REPLACE_ATTRIBUTE,
- AttributeUtils.toJndiAttribute( new DefaultAttribute( "sn", "modified" ) ) ) };
- getConnectionWrapper( monitor ).modifyEntry( referralDn, modificationItems, null, monitor, null );
-
- // should have modified the target entry
- assertFalse( monitor.isCanceled() );
- assertFalse( monitor.errorsReported() );
- Entry entry = service.getAdminSession().lookup( new Dn( targetDn ) );
- assertEquals( "modified", entry.get( "sn" ).getString() );
- }
-
-
- @Test
- public void testDeleteFollowsReferral() throws Exception
- {
- String targetDn = "uid=user.X,ou=users,ou=system";
- String referralDn = "uid=user.X,cn=referral,ou=system";
-
- // create target entry
- service.getAdminSession().add( new DefaultEntry( service.getSchemaManager(), targetDn,
- "objectClass: inetOrgPerson", "sn: X", "cn: X", "uid: user.X" ) );
-
- // delete referral entry
- StudioProgressMonitor monitor = getProgressMonitor();
- getConnectionWrapper( monitor ).deleteEntry( referralDn, null, monitor, null );
-
- // should have deleted the target entry
- assertFalse( monitor.isCanceled() );
- assertFalse( monitor.errorsReported() );
- assertFalse( service.getAdminSession().exists( targetDn ) );
- }
-
-
- private ConnectionWrapper getConnectionWrapper( StudioProgressMonitor monitor )
- {
- // simple auth without principal and credential
- ConnectionParameter connectionParameter = new ConnectionParameter( null, LOCALHOST, ldapServer.getPort(),
- EncryptionMethod.NONE, NetworkProvider.APACHE_DIRECTORY_LDAP_API, AuthenticationMethod.SIMPLE, "uid=admin,ou=system", "secret",
- null, false, null );
-
- Connection connection = new Connection( connectionParameter );
-
- ConnectionWrapper connectionWrapper = connection.getConnectionWrapper();
- connectionWrapper.connect( monitor );
- connectionWrapper.bind( monitor );
-
- IReferralHandler referralHandler = referralUrls -> {
- return connection;
- };
- ConnectionCorePlugin.getDefault().setReferralHandler( referralHandler );
-
- assertTrue( connectionWrapper.isConnected() );
- assertNull( monitor.getException() );
-
- return connectionWrapper;
- }
-
}
Modified: directory/studio/trunk/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/JNDIConnectionWrapperTest.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/JNDIConnectionWrapperTest.java?rev=1782687&r1=1782686&r2=1782687&view=diff
==============================================================================
--- directory/studio/trunk/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/JNDIConnectionWrapperTest.java (original)
+++ directory/studio/trunk/tests/test.integration.core/src/main/java/org/apache/directory/studio/test/integration/core/JNDIConnectionWrapperTest.java Sun Feb 12 18:02:06 2017
@@ -21,53 +21,8 @@
package org.apache.directory.studio.test.integration.core;
-import static org.apache.directory.studio.test.integration.core.Constants.LOCALHOST;
-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.net.ConnectException;
-import java.net.UnknownHostException;
-
-import javax.naming.AuthenticationException;
-import javax.naming.CommunicationException;
-import javax.naming.NamingEnumeration;
-import javax.naming.NamingException;
-import javax.naming.directory.Attributes;
-import javax.naming.directory.DirContext;
-import javax.naming.directory.ModificationItem;
-import javax.naming.directory.SearchControls;
-import javax.naming.directory.SearchResult;
-
-import org.apache.directory.api.ldap.model.entry.AttributeUtils;
-import org.apache.directory.api.ldap.model.entry.DefaultAttribute;
-import org.apache.directory.api.ldap.model.entry.DefaultEntry;
-import org.apache.directory.api.ldap.model.entry.Entry;
-import org.apache.directory.api.ldap.model.name.Dn;
-import org.apache.directory.server.annotations.CreateLdapServer;
-import org.apache.directory.server.annotations.CreateTransport;
-import org.apache.directory.server.core.annotations.ApplyLdifFiles;
-import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
-import org.apache.directory.server.core.integ.FrameworkRunner;
-import org.apache.directory.studio.common.core.jobs.StudioProgressMonitor;
-import org.apache.directory.studio.connection.core.Connection;
-import org.apache.directory.studio.connection.core.ConnectionCorePlugin;
-import org.apache.directory.studio.connection.core.Connection.AliasDereferencingMethod;
-import org.apache.directory.studio.connection.core.Connection.ReferralHandlingMethod;
-import org.apache.directory.studio.connection.core.ConnectionParameter;
-import org.apache.directory.studio.connection.core.ConnectionParameter.AuthenticationMethod;
-import org.apache.directory.studio.connection.core.ConnectionParameter.EncryptionMethod;
import org.apache.directory.studio.connection.core.ConnectionParameter.NetworkProvider;
-import org.apache.directory.studio.connection.core.IReferralHandler;
-import org.apache.directory.studio.connection.core.io.ConnectionWrapper;
import org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper;
-import org.apache.mina.util.AvailablePortFinder;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
/**
@@ -76,285 +31,14 @@ import org.junit.runner.RunWith;
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$, $Date$
*/
-@RunWith(FrameworkRunner.class)
-@CreateLdapServer(transports =
- { @CreateTransport(protocol = "LDAP"), @CreateTransport(protocol = "LDAPS") })
-@ApplyLdifFiles(clazz = JNDIConnectionWrapperTest.class, value = "org/apache/directory/studio/test/integration/core/TestData.ldif")
-public class JNDIConnectionWrapperTest extends AbstractLdapTestUnit
+public class JNDIConnectionWrapperTest extends ConnectionWrapperTestBase
{
- @Before
- public void setUp() throws Exception
- {
- // create referral entry
- Entry entry = new DefaultEntry( getService().getSchemaManager() );
- entry.setDn( new Dn( "cn=referral,ou=system" ) );
- entry.add( "objectClass", "top", "referral", "extensibleObject" );
- entry.add( "cn", "referral" );
- entry.add( "ref", "ldap://" + LOCALHOST + ":" + ldapServer.getPort() + "/ou=users,ou=system" );
- service.getAdminSession().add( entry );
- }
-
-
- /**
- * Tests connecting to the server.
- */
- @Test
- public void testConnect()
- {
- StudioProgressMonitor monitor = getProgressMonitor();
- ConnectionParameter connectionParameter = new ConnectionParameter( null, LOCALHOST, ldapServer.getPort(),
- EncryptionMethod.NONE, NetworkProvider.JNDI, AuthenticationMethod.NONE, null, null, null, true, null );
- Connection connection = new Connection( connectionParameter );
- ConnectionWrapper connectionWrapper = connection.getConnectionWrapper();
-
- assertFalse( connectionWrapper.isConnected() );
-
- connectionWrapper.connect( monitor );
- assertTrue( connectionWrapper.isConnected() );
- assertNull( monitor.getException() );
-
- connectionWrapper.disconnect();
- assertFalse( connectionWrapper.isConnected() );
-
- // TODO: SSL, StartTLS
- }
-
-
- /**
- * Test failed connections to the server.
- */
- @Test
- public void testConnectFailures()
- {
- StudioProgressMonitor monitor = null;
- ConnectionParameter connectionParameter = null;
- Connection connection = null;
- ConnectionWrapper connectionWrapper = null;
-
- // invalid port
- monitor = getProgressMonitor();
- connectionParameter = new ConnectionParameter( null, LOCALHOST, AvailablePortFinder.getNextAvailable(),
- EncryptionMethod.NONE, NetworkProvider.JNDI, AuthenticationMethod.NONE, null, null, null, true, null );
- connection = new Connection( connectionParameter );
- connectionWrapper = connection.getConnectionWrapper();
- connectionWrapper.connect( monitor );
- assertFalse( connectionWrapper.isConnected() );
- assertNotNull( monitor.getException() );
- assertTrue( monitor.getException() instanceof CommunicationException );
- assertNotNull( monitor.getException().getCause() );
- assertTrue( monitor.getException().getCause() instanceof ConnectException );
-
- // unknown host
- monitor = getProgressMonitor();
- connectionParameter = new ConnectionParameter( null, "555.555.555.555", ldapServer.getPort(),
- EncryptionMethod.NONE, NetworkProvider.JNDI, AuthenticationMethod.NONE, null, null, null, true, null );
- connection = new Connection( connectionParameter );
- connectionWrapper = connection.getConnectionWrapper();
- connectionWrapper.connect( monitor );
- assertFalse( connectionWrapper.isConnected() );
- assertNotNull( monitor.getException() );
- assertTrue( monitor.getException() instanceof CommunicationException );
- assertNotNull( monitor.getException().getCause() );
- assertTrue( monitor.getException().getCause() instanceof UnknownHostException );
-
- // TODO: SSL, StartTLS
- }
-
-
- /**
- * Test binding to the server.
- */
- @Test
- public void testBind()
- {
- StudioProgressMonitor monitor = getProgressMonitor();
- ConnectionParameter connectionParameter = new ConnectionParameter( null, LOCALHOST, ldapServer.getPort(),
- EncryptionMethod.NONE, NetworkProvider.JNDI, AuthenticationMethod.SIMPLE, "uid=admin,ou=system", "secret",
- null, true, null );
- Connection connection = new Connection( connectionParameter );
- ConnectionWrapper connectionWrapper = connection.getConnectionWrapper();
-
- assertFalse( connectionWrapper.isConnected() );
-
- connectionWrapper.connect( monitor );
- connectionWrapper.bind( monitor );
- assertTrue( connectionWrapper.isConnected() );
- assertNull( monitor.getException() );
-
- connectionWrapper.unbind();
- connectionWrapper.disconnect();
- assertFalse( connectionWrapper.isConnected() );
-
- }
-
-
- /**
- * Test failed binds to the server.
- */
- @Test
- public void testBindFailures()
- {
- StudioProgressMonitor monitor = null;
- ConnectionParameter connectionParameter = null;
- Connection connection = null;
- ConnectionWrapper connectionWrapper = null;
-
- // simple auth without principal and credential
- monitor = getProgressMonitor();
- connectionParameter = new ConnectionParameter( null, LOCALHOST, ldapServer.getPort(), EncryptionMethod.NONE,
- NetworkProvider.JNDI, AuthenticationMethod.SIMPLE, "uid=admin", "invalid", null, true, null );
- connection = new Connection( connectionParameter );
- connectionWrapper = connection.getConnectionWrapper();
- connectionWrapper.connect( monitor );
- connectionWrapper.bind( monitor );
- assertFalse( connectionWrapper.isConnected() );
- assertNotNull( monitor.getException() );
- assertTrue( monitor.getException() instanceof NamingException );
-
- // simple auth with invalid principal and credential
- monitor = getProgressMonitor();
- connectionParameter = new ConnectionParameter( null, LOCALHOST, ldapServer.getPort(), EncryptionMethod.NONE,
- NetworkProvider.JNDI, AuthenticationMethod.SIMPLE, "uid=admin,ou=system", "bar", null, true, null );
- connection = new Connection( connectionParameter );
- connectionWrapper = connection.getConnectionWrapper();
- connectionWrapper.connect( monitor );
- connectionWrapper.bind( monitor );
- assertFalse( connectionWrapper.isConnected() );
- assertNotNull( monitor.getException() );
- assertTrue( monitor.getException() instanceof AuthenticationException );
- }
-
-
- /**
- * Test searching.
- */
- @Test
- public void testSearch()
- {
- StudioProgressMonitor monitor = getProgressMonitor();
- ConnectionWrapper connectionWrapper = getConnectionWrapper( monitor );
-
- SearchControls searchControls = new SearchControls();
- NamingEnumeration<SearchResult> result = connectionWrapper.search( "ou=system", "objectClass=*", searchControls,
- AliasDereferencingMethod.NEVER, ReferralHandlingMethod.IGNORE, null, monitor, null );
- assertNotNull( result );
- }
-
-
- @Test
- public void testSearchContinuation() throws NamingException
+ public JNDIConnectionWrapperTest()
{
- StudioProgressMonitor monitor = getProgressMonitor();
- SearchControls searchControls = new SearchControls();
- NamingEnumeration<SearchResult> result = getConnectionWrapper( monitor ).search( "cn=referral,ou=system",
- "objectClass=*", searchControls, AliasDereferencingMethod.NEVER, ReferralHandlingMethod.FOLLOW, null,
- monitor, null );
-
- assertFalse( monitor.isCanceled() );
- assertFalse( monitor.errorsReported() );
- assertNotNull( result );
- assertTrue( result.hasMore() );
- SearchResult entry = result.next();
- assertNotNull( entry );
- assertEquals( "uid=user.1,ou=users,ou=system", entry.getNameInNamespace() );
+ super( NetworkProvider.JNDI );
}
-
- @Test
- public void testAddFollowsReferral() throws Exception
- {
- String targetDn = "uid=user.X,ou=users,ou=system";
- String referralDn = "uid=user.X,cn=referral,ou=system";
-
- // create entry under referral
- StudioProgressMonitor monitor = getProgressMonitor();
- Attributes attributes = AttributeUtils.toAttributes(
- new DefaultEntry( referralDn, "objectClass: inetOrgPerson", "sn: X", "cn: X", "uid: user.X" ) );
- getConnectionWrapper( monitor ).createEntry( referralDn, attributes, null, monitor, null );
-
- // should have created target entry
- assertFalse( monitor.isCanceled() );
- assertFalse( monitor.errorsReported() );
- assertTrue( service.getAdminSession().exists( targetDn ) );
- }
-
-
- @Test
- public void testModifyFollowsReferral() throws Exception
- {
- String targetDn = "uid=user.X,ou=users,ou=system";
- String referralDn = "uid=user.X,cn=referral,ou=system";
-
- // create target entry
- service.getAdminSession().add( new DefaultEntry( service.getSchemaManager(), targetDn,
- "objectClass: inetOrgPerson", "sn: X", "cn: X", "uid: user.X" ) );
-
- // modify referral entry
- StudioProgressMonitor monitor = getProgressMonitor();
- ModificationItem[] modificationItems =
- { new ModificationItem( DirContext.REPLACE_ATTRIBUTE,
- AttributeUtils.toJndiAttribute( new DefaultAttribute( "sn", "modified" ) ) ) };
- getConnectionWrapper( monitor ).modifyEntry( referralDn, modificationItems, null, monitor, null );
-
- // should have modified the target entry
- assertFalse( monitor.isCanceled() );
- assertFalse( monitor.errorsReported() );
- Entry entry = service.getAdminSession().lookup( new Dn( targetDn ) );
- assertEquals( "modified", entry.get( "sn" ).getString() );
- }
-
-
- @Test
- public void testDeleteFollowsReferral() throws Exception
- {
- String targetDn = "uid=user.X,ou=users,ou=system";
- String referralDn = "uid=user.X,cn=referral,ou=system";
-
- // create target entry
- service.getAdminSession().add( new DefaultEntry( service.getSchemaManager(), targetDn,
- "objectClass: inetOrgPerson", "sn: X", "cn: X", "uid: user.X" ) );
-
- // delete referral entry
- StudioProgressMonitor monitor = getProgressMonitor();
- getConnectionWrapper( monitor ).deleteEntry( referralDn, null, monitor, null );
-
- // should have deleted the target entry
- assertFalse( monitor.isCanceled() );
- assertFalse( monitor.errorsReported() );
- assertFalse( service.getAdminSession().exists( targetDn ) );
- }
-
-
- private StudioProgressMonitor getProgressMonitor()
- {
- StudioProgressMonitor monitor = new StudioProgressMonitor( new NullProgressMonitor() );
- return monitor;
- }
-
-
- private ConnectionWrapper getConnectionWrapper( StudioProgressMonitor monitor )
- {
- // simple auth without principal and credential
- ConnectionParameter connectionParameter = new ConnectionParameter( null, LOCALHOST, ldapServer.getPort(),
- EncryptionMethod.NONE, NetworkProvider.JNDI, AuthenticationMethod.SIMPLE, "uid=admin,ou=system", "secret",
- null, false, null );
-
- Connection connection = new Connection( connectionParameter );
-
- ConnectionWrapper connectionWrapper = connection.getConnectionWrapper();
- connectionWrapper.connect( monitor );
- connectionWrapper.bind( monitor );
-
- IReferralHandler referralHandler = referralUrls -> {
- return connection;
- };
- ConnectionCorePlugin.getDefault().setReferralHandler( referralHandler );
-
- assertTrue( connectionWrapper.isConnected() );
- assertNull( monitor.getException() );
-
- return connectionWrapper;
- }
+ // see tests in super class
}