Overview

This component is really just a test container for testing the other components. This container is not meant to be used in a production environment.

In order to same you a little coding, a base class has been provided for your test cases. Simply extend org.apache.fulcrum.testcontainer.BaseUnitTest and you are ready to go.

Usage

Extending the test case

In order to same you a little coding, a base class has been provided for your test cases. Simply extend org.apache.fulcrum.testcontainer.BaseUnitTest and you are ready to go.

The lookup and tearDown methods of BaseUnitTest will handle the lifecycle of the container for you. Each test will have a freshly initialized container in which to run.

To lookup and release components, call the lookup and release methods of BaseUnitTest.

By default, all tests will use the configuration files TestComponentConfig.xml and TestRoleConfig.xml located in the src/test directory. If you want to override that behavior for ALL your tests, you can override the getConfigurationFileName() and/or getRoleFileName() methods.

If you are testing multiple config or role files, then just call setConfigurationFileName() or setRoleFileName() before doing your first lookup. The string you pass in should be prefixed from the directory the JVM is running in (e.g. src/test/YOUR_CONFIG.xml).

Using the container directly

If you need more control over the container itself for your test, just don't extend the unit test provided with the container. Instead, embed the container directly in your test case. See the java docs for org.apache.fulcrum.testcontainer.Container for more information.

Configuring the Components

There are two ways of configuring your components. One is the traditional TestComponentConfig.xml and TestRoleConfig.xml files described below. Or, one that integrates the two, shown at the bottom.

First, here is the role configuration.


  <role
    name="org.apache.fulcrum.crypto.CryptoService"
    shorthand="crypto"
    default-class="org.apache.fulcrum.crypto.DefaultCryptoService"/>

Now comes the basic configuration of the component. Here will will configure the various encryption providers



    <crypto>
      <algorithm>
      	<unix>org.apache.fulcrum.crypto.provider.UnixCrypt</unix>
        <clear>org.apache.fulcrum.crypto.provider.ClearCrypt</clear>
        <java>org.apache.fulcrum.crypto.provider.JavaCrypt</java>   
        <oldjava>org.apache.fulcrum.crypto.provider.OldJavaCrypt</oldjava>   
                      
      </algorithm>
    </crypto>

Or, the integrated roles and components file:



<my-system>
  <component
    role="org.apache.fulcrum.testcontainer.SimpleComponent"
    class="org.apache.fulcrum.testcontainer.AlternativeComponentImpl">   
  </component>  
</my-system>