From 6439bba5cc09d6febc59bdc9e0d9bc25f1f1eb18 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Wed, 01 Sep 2010 09:04:15 +0000
Subject: [PATCH] Various improvements:
---
sdk/tests/unit-tests-testng/src/org/opends/sdk/ConnectionFactoryTestCase.java | 105 ++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 76 insertions(+), 29 deletions(-)
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/ConnectionFactoryTestCase.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/ConnectionFactoryTestCase.java
index 4d85d2e..1bde983 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/ConnectionFactoryTestCase.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/ConnectionFactoryTestCase.java
@@ -33,16 +33,21 @@
import static org.testng.Assert.assertTrue;
import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import org.opends.sdk.requests.Requests;
+import org.opends.sdk.requests.SearchRequest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
+import org.testng.annotations.DataProvider;
+import javax.net.ssl.SSLContext;
/**
* Tests the connectionfactory classes.
*/
-public abstract class ConnectionFactoryTestCase extends SdkTestCase
+public class ConnectionFactoryTestCase extends SdkTestCase
{
class MyResultHandler implements ResultHandler<AsynchronousConnection>
{
@@ -90,7 +95,63 @@
TestCaseUtils.startServer();
}
+ @DataProvider(name = "connectionFactories")
+ public Object[][] getModifyDNRequests() throws Exception
+ {
+ Object[][] factories = new Object[7][1];
+ // HeartBeatConnectionFactory
+ // Use custom search request.
+ SearchRequest request = Requests.newSearchRequest(
+ "uid=user.0,ou=people,o=test", SearchScope.BASE_OBJECT, "objectclass=*",
+ "cn");
+
+ factories[0][0] = new HeartBeatConnectionFactory(
+ new LDAPConnectionFactory("localhost", TestCaseUtils.getLdapPort()),
+ 1000, TimeUnit.MILLISECONDS, request);
+
+ // InternalConnectionFactory
+ factories[1][0] = Connections
+ .newInternalConnectionFactory(LDAPServer.getInstance(), null);
+
+ // AuthenticatedConnectionFactory
+ factories[2][0] = new AuthenticatedConnectionFactory(
+ new LDAPConnectionFactory("localhost", TestCaseUtils.getLdapPort()),
+ Requests.newSimpleBindRequest("", ""));
+
+ // AuthenticatedConnectionFactory with multi-stage SASL
+ factories[3][0] = new AuthenticatedConnectionFactory(
+ new LDAPConnectionFactory("localhost", TestCaseUtils.getLdapPort()),
+ Requests.newCRAMMD5SASLBindRequest("id:user",
+ ByteString.valueOf("password")));
+
+ // LDAPConnectionFactory with default options
+ factories[4][0] = new LDAPConnectionFactory(
+ "localhost", TestCaseUtils.getLdapPort());
+
+ // LDAPConnectionFactory with startTLS
+ SSLContext sslContext = new SSLContextBuilder().
+ setTrustManager(TrustManagers.trustAll()).getSSLContext();
+ LDAPOptions options = new LDAPOptions().setSSLContext(sslContext).
+ setUseStartTLS(true).setEnabledCipherSuites(
+ new String[]{"SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA",
+ "SSL_DH_anon_EXPORT_WITH_RC4_40_MD5",
+ "SSL_DH_anon_WITH_3DES_EDE_CBC_SHA",
+ "SSL_DH_anon_WITH_DES_CBC_SHA",
+ "SSL_DH_anon_WITH_RC4_128_MD5",
+ "TLS_DH_anon_WITH_AES_128_CBC_SHA",
+ "TLS_DH_anon_WITH_AES_256_CBC_SHA"});
+ factories[5][0] = new LDAPConnectionFactory(
+ "localhost", TestCaseUtils.getLdapPort(), options);
+
+ // startTLS + SASL confidentiality
+ factories[6][0] = new AuthenticatedConnectionFactory(
+ new LDAPConnectionFactory("localhost", TestCaseUtils.getLdapPort(),
+ options), Requests.newDigestMD5SASLBindRequest("id:user",
+ ByteString.valueOf("password")));
+
+ return factories;
+ }
/**
* Tests the async connection in the blocking mode. This is not fully async as
@@ -98,10 +159,12 @@
*
* @throws Exception
*/
- @Test()
- public void testBlockingFutureNoHandler() throws Exception
+ @Test(dataProvider = "connectionFactories")
+ public void testBlockingFutureNoHandler(ConnectionFactory factory)
+ throws Exception
{
- final FutureResult<AsynchronousConnection> future = getAsynchronousConnection(null);
+ final FutureResult<AsynchronousConnection> future =
+ factory.getAsynchronousConnection(null);
final AsynchronousConnection con = future.get();
// quickly check if iit is a valid connection.
// Don't use a result handler.
@@ -116,13 +179,15 @@
*
* @throws Exception
*/
- @Test()
- public void testNonBlockingFutureWithHandler() throws Exception
+ @Test(dataProvider = "connectionFactories")
+ public void testNonBlockingFutureWithHandler(ConnectionFactory factory)
+ throws Exception
{
// Use the handler to get the result asynchronously.
final CountDownLatch latch = new CountDownLatch(1);
final MyResultHandler handler = new MyResultHandler(latch);
- final FutureResult<AsynchronousConnection> future = getAsynchronousConnection(handler);
+ final FutureResult<AsynchronousConnection> future =
+ factory.getAsynchronousConnection(handler);
// Since we don't have anything to do, we would rather
// be notified by the latch when the other thread calls our handler.
latch.await(); // should do a timed wait rather?
@@ -140,32 +205,14 @@
*
* @throws Exception
*/
- @Test()
- public void testSynchronousConnection() throws Exception
+ @Test(dataProvider = "connectionFactories")
+ public void testSynchronousConnection(ConnectionFactory factory)
+ throws Exception
{
- final Connection con = getConnection();
+ final Connection con = factory.getConnection();
assertNotNull(con);
// quickly check if iit is a valid connection.
assertTrue(con.readRootDSE().getEntry().getName().isRootDN());
con.close();
}
-
-
-
- /**
- * Gets the future result from the implementations.
- *
- * @return FutureResult.
- */
- protected abstract FutureResult<AsynchronousConnection> getAsynchronousConnection(
- ResultHandler<AsynchronousConnection> handler) throws Exception;
-
-
-
- /**
- * Gets the connection from the implementations.
- *
- * @return Connection
- */
- protected abstract Connection getConnection() throws Exception;
}
--
Gitblit v1.10.0