| | |
| | | |
| | | 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; |
| | |
| | | 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(); |
| | | } |
| | |
| | | /** |
| | | * 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")); |
| | | } |
| | | |
| | | } |