org.apache.directory.server.unit
Class AbstractServerTest

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by org.apache.directory.server.unit.AbstractServerTest
All Implemented Interfaces:
junit.framework.Test

public abstract class AbstractServerTest
extends junit.framework.TestCase

A simple testcase for testing JNDI provider functionality.

Version:
$Rev: 566925 $
Author:
Apache Directory Project

Field Summary
protected  org.apache.directory.server.configuration.MutableServerStartupConfiguration configuration
           
protected  boolean doDelete
          flag whether to delete database files for each test or not
protected  int port
           
protected  javax.naming.ldap.LdapContext rootDSE
          the context root for the rootDSE
protected  javax.naming.ldap.LdapContext schemaRoot
          the context root for the schema
protected  javax.naming.ldap.LdapContext sysRoot
          the context root for the system partition
 
Constructor Summary
AbstractServerTest()
           
 
Method Summary
protected  void doDelete(java.io.File wkdir)
          Deletes the Eve working directory.
protected  javax.naming.ldap.LdapContext getWiredContext()
          Common code to get an initial context via a simple bind to the server over the wire using the SUN JNDI LDAP provider.
protected  javax.naming.ldap.LdapContext getWiredContext(java.lang.String bindPrincipalDn, java.lang.String password)
          Common code to get an initial context via a simple bind to the server over the wire using the SUN JNDI LDAP provider.
protected  void importLdif(java.io.InputStream in)
          Imports the LDIF entries packaged with the Eve JNDI provider jar into the newly created system partition to prime it up for operation.
protected  void injectEntries(java.lang.String ldif)
          Inject an ldif String into the server.
 boolean isServerOnline()
          Tells subclasses whether or not the server is online.
protected  java.util.List<org.apache.directory.shared.ldap.ldif.Entry> loadTestLdif(boolean verifyEntries)
          If there is an LDIF file with the same name as the test class but with the .ldif extension then it is read and the entries it contains are added to the server.
protected  void setContexts(java.util.Hashtable<java.lang.String,java.lang.Object> env)
          Sets the contexts of this class taking into account the extras and overrides properties.
protected  void setContexts(java.lang.String user, java.lang.String passwd)
          Sets the contexts for this base class.
protected  void setUp()
          Get's the initial context factory for the provider's ou=system context root.
protected  void tearDown()
          Sets the system context root to null.
protected  void verify(org.apache.directory.shared.ldap.ldif.Entry entry)
          Verifies that an entry exists in the directory with the specified attributes.
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, run, runBare, runTest, setName, toString
 
Methods inherited from class junit.framework.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail, failNotEquals, failNotSame, failSame, format
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

sysRoot

protected javax.naming.ldap.LdapContext sysRoot
the context root for the system partition


rootDSE

protected javax.naming.ldap.LdapContext rootDSE
the context root for the rootDSE


schemaRoot

protected javax.naming.ldap.LdapContext schemaRoot
the context root for the schema


doDelete

protected boolean doDelete
flag whether to delete database files for each test or not


configuration

protected org.apache.directory.server.configuration.MutableServerStartupConfiguration configuration

port

protected int port
Constructor Detail

AbstractServerTest

public AbstractServerTest()
Method Detail

isServerOnline

public boolean isServerOnline()
Tells subclasses whether or not the server is online.

Returns:
true if the server has started false otherwise.

loadTestLdif

protected java.util.List<org.apache.directory.shared.ldap.ldif.Entry> loadTestLdif(boolean verifyEntries)
                                                                            throws javax.naming.NamingException
If there is an LDIF file with the same name as the test class but with the .ldif extension then it is read and the entries it contains are added to the server. It appears as though the administor adds these entries to the server.

Parameters:
verifyEntries - whether or not all entry additions are checked to see if they were in fact correctly added to the server
Returns:
a list of entries added to the server in the order they were added
Throws:
javax.naming.NamingException

verify

protected void verify(org.apache.directory.shared.ldap.ldif.Entry entry)
               throws javax.naming.NamingException
Verifies that an entry exists in the directory with the specified attributes.

Parameters:
entry - the entry to verify
Throws:
javax.naming.NamingException - if there are problems accessing the entry

getWiredContext

protected javax.naming.ldap.LdapContext getWiredContext()
                                                 throws javax.naming.NamingException
Common code to get an initial context via a simple bind to the server over the wire using the SUN JNDI LDAP provider. Do not use this method until after the setUp() method is called to start the server otherwise it will fail.

Returns:
an LDAP context as the the administrator to the rootDSE
Throws:
javax.naming.NamingException - if the server cannot be contacted

getWiredContext

protected javax.naming.ldap.LdapContext getWiredContext(java.lang.String bindPrincipalDn,
                                                        java.lang.String password)
                                                 throws javax.naming.NamingException
Common code to get an initial context via a simple bind to the server over the wire using the SUN JNDI LDAP provider. Do not use this method until after the setUp() method is called to start the server otherwise it will fail.

Parameters:
bindPrincipalDn - the DN of the principal to bind as
password - the password of the bind principal
Returns:
an LDAP context as the the administrator to the rootDSE
Throws:
javax.naming.NamingException - if the server cannot be contacted

setUp

protected void setUp()
              throws java.lang.Exception
Get's the initial context factory for the provider's ou=system context root.

Overrides:
setUp in class junit.framework.TestCase
Throws:
java.lang.Exception
See Also:
TestCase.setUp()

doDelete

protected void doDelete(java.io.File wkdir)
                 throws java.io.IOException
Deletes the Eve working directory.

Throws:
java.io.IOException

setContexts

protected void setContexts(java.lang.String user,
                           java.lang.String passwd)
                    throws javax.naming.NamingException
Sets the contexts for this base class. Values of user and password used to set the respective JNDI properties. These values can be overriden by the overrides properties.

Parameters:
user - the username for authenticating as this user
passwd - the password of the user
Throws:
javax.naming.NamingException - if there is a failure of any kind

setContexts

protected void setContexts(java.util.Hashtable<java.lang.String,java.lang.Object> env)
                    throws javax.naming.NamingException
Sets the contexts of this class taking into account the extras and overrides properties.

Parameters:
env - an environment to use while setting up the system root.
Throws:
javax.naming.NamingException - if there is a failure of any kind

tearDown

protected void tearDown()
                 throws java.lang.Exception
Sets the system context root to null.

Overrides:
tearDown in class junit.framework.TestCase
Throws:
java.lang.Exception
See Also:
TestCase.tearDown()

importLdif

protected void importLdif(java.io.InputStream in)
                   throws javax.naming.NamingException
Imports the LDIF entries packaged with the Eve JNDI provider jar into the newly created system partition to prime it up for operation. Note that only ou=system entries will be added - entries for other partitions cannot be imported and will blow chunks.

Throws:
javax.naming.NamingException - if there are problems reading the ldif file and adding those entries to the system partition

injectEntries

protected void injectEntries(java.lang.String ldif)
                      throws javax.naming.NamingException
Inject an ldif String into the server. DN must be relative to the root.

Throws:
javax.naming.NamingException


Copyright © 2003-2007 The Apache Software Foundation. All Rights Reserved.