mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Nicolas Capponi
20.56.2013 5d1777b4a4214b2bdcf53a6df25b6cd2173c855d
opendj-sdk/opendj-admin/src/test/java/org/opends/server/admin/server/DNBuilderTest.java
@@ -29,8 +29,6 @@
import org.forgerock.opendj.ldap.DN;
import org.opends.server.admin.AdminTestCase;
import org.opends.server.admin.Configuration;
import org.opends.server.admin.ConfigurationClient;
import org.opends.server.admin.LDAPProfile;
import org.opends.server.admin.ManagedObjectPath;
import org.opends.server.admin.RelationDefinition;
@@ -44,96 +42,53 @@
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
 * Test cases for the server DNBuilder class.
 */
@SuppressWarnings("javadoc")
public final class DNBuilderTest extends AdminTestCase {
    /**
     * Sets up tests
     *
     * @throws Exception
     *             If the server could not be initialized.
     */
    @BeforeClass
    public void setUp() throws Exception {
        disableClassValidationForProperties();
        TestCfg.setUp();
    }
    /**
     * Tears down test environment.
     */
    @AfterClass
    public void tearDown() {
        TestCfg.cleanup();
    }
    /**
     * Tests construction of a DN from a managed object path containing a
     * subordinate one-to-many relationship.
     *
     * @throws Exception
     *             If an unexpected exception occurred.
     */
    @Test
    public void testCreateOneToMany() throws Exception {
        // First create the path.
        ManagedObjectPath<? extends ConfigurationClient, ? extends Configuration> path = ManagedObjectPath
                .emptyPath();
    public void createWithInstantiableRelationDefinition() throws Exception {
        ManagedObjectPath<?,?> parentPath = ManagedObjectPath.emptyPath().
                child(TestCfg.getTestOneToManyParentRelationDefinition(), "test-parent-1");
        ManagedObjectPath<?,?> childPath = parentPath.child(TestParentCfgDefn.getInstance().getTestChildrenRelationDefinition(), "test-child-1");
        path = path.child(TestCfg.getTestOneToManyParentRelationDefinition(), "test-parent-1");
        path = path.child(TestParentCfgDefn.getInstance().getTestChildrenRelationDefinition(), "test-child-1");
        // Now serialize it.
        DN actual = DNBuilder.create(path);
        DN expected = DN.valueOf("cn=test-child-1,cn=test children,cn=test-parent-1,cn=test parents,cn=config");
        assertEquals(actual, expected);
        assertEquals(
            DNBuilder.create(childPath),
            DN.valueOf("cn=test-child-1,cn=test children,cn=test-parent-1,cn=test parents,cn=config"));
    }
    /**
     * Tests construction of a DN from a managed object path containing a
     * subordinate one-to-one relationship.
     *
     * @throws Exception
     *             If an unexpected exception occurred.
     */
    @Test
    public void testCreateOneToOne() throws Exception {
        // First create the path.
        ManagedObjectPath<? extends ConfigurationClient, ? extends Configuration> path = ManagedObjectPath
                .emptyPath();
        SingletonRelationDefinition.Builder<TestChildCfgClient, TestChildCfg> b = new SingletonRelationDefinition.Builder<TestChildCfgClient, TestChildCfg>(
    public void createWithSingletonRelationDefinition() throws Exception {
        SingletonRelationDefinition.Builder<TestChildCfgClient, TestChildCfg> builder =
            new SingletonRelationDefinition.Builder<TestChildCfgClient, TestChildCfg>(
                TestParentCfgDefn.getInstance(), "singleton-test-child", TestChildCfgDefn.getInstance());
        final SingletonRelationDefinition<TestChildCfgClient, TestChildCfg> r2 = b.getInstance();
        final SingletonRelationDefinition<TestChildCfgClient, TestChildCfg> relationDef = builder.getInstance();
        LDAPProfile.Wrapper wrapper = new LDAPProfile.Wrapper() {
            /**
             * {@inheritDoc}
             */
            @Override
            public String getRelationRDNSequence(RelationDefinition<?, ?> r) {
                if (r == r2) {
                    return "cn=singleton-test-child";
                } else {
                    return null;
                }
                return (r == relationDef) ? "cn=singleton-test-child" : null;
            }
        };
        path = path.child(TestCfg.getTestOneToManyParentRelationDefinition(), "test-parent-1");
        path = path.child(r2);
        ManagedObjectPath<?, ?> path = ManagedObjectPath.emptyPath().
                child(TestCfg.getTestOneToManyParentRelationDefinition(), "test-parent-1");
        ManagedObjectPath<?, ?> childPath = path.child(relationDef);
        // Now serialize it.
        LDAPProfile.getInstance().pushWrapper(wrapper);
        try {
            DN actual = DNBuilder.create(path);
            DN expected = DN.valueOf("cn=singleton-test-child,cn=test-parent-1,cn=test parents,cn=config");
            assertEquals(actual, expected);
            assertEquals(
                DNBuilder.create(childPath),
                DN.valueOf("cn=singleton-test-child,cn=test-parent-1,cn=test parents,cn=config"));
        } finally {
            LDAPProfile.getInstance().popWrapper();
        }
@@ -142,24 +97,17 @@
    /**
     * Tests construction of a DN from a managed object path containing a
     * subordinate one-to-zero-or-one relationship.
     *
     * @throws Exception
     *             If an unexpected exception occurred.
     */
    @Test
    public void testCreateOneToZeroOrOne() throws Exception {
        // First create the path.
        ManagedObjectPath<? extends ConfigurationClient, ? extends Configuration> path = ManagedObjectPath
                .emptyPath();
    public void createWithOptionalRelationDefinition() throws Exception {
        ManagedObjectPath<?, ?> path =  ManagedObjectPath
                .emptyPath().child(TestCfg.getTestOneToManyParentRelationDefinition(), "test-parent-1");
        ManagedObjectPath<?, ?> childPath =
                path.child(TestParentCfgDefn.getInstance().getOptionalTestChildRelationDefinition());
        path = path.child(TestCfg.getTestOneToManyParentRelationDefinition(), "test-parent-1");
        path = path.child(TestParentCfgDefn.getInstance().getOptionalTestChildRelationDefinition());
        // Now serialize it.
        DN actual = DNBuilder.create(path);
        DN expected = DN.valueOf("cn=optional test child,cn=test-parent-1,cn=test parents,cn=config");
        assertEquals(actual, expected);
        assertEquals(
            DNBuilder.create(childPath),
            DN.valueOf("cn=optional test child,cn=test-parent-1,cn=test parents,cn=config"));
    }
}