| | |
| | | import org.forgerock.opendj.ldap.responses.SearchResultEntry; |
| | | import org.opends.server.admin.AdminTestCase; |
| | | import org.opends.server.admin.Constraint; |
| | | import org.opends.server.admin.LDAPProfile; |
| | | import org.opends.server.admin.ManagedObjectAlreadyExistsException; |
| | | import org.opends.server.admin.ManagedObjectNotFoundException; |
| | | import org.opends.server.admin.PropertyDefinitionsOptions; |
| | | import org.opends.server.admin.TestCfg; |
| | | import org.opends.server.admin.TestChildCfgClient; |
| | | import org.opends.server.admin.TestChildCfgDefn; |
| | |
| | | @Test(singleThreaded = true) |
| | | public final class LDAPClientTest extends AdminTestCase { |
| | | |
| | | // Test LDIF. |
| | | // @Checkstyle:off |
| | | private static final String[] TEST_LDIF = new String[] { |
| | | // Base entries. |
| | | "dn: cn=config", |
| | |
| | | "objectclass: ds-cfg-test-child-dummy", "cn: test child 1", "ds-cfg-enabled: true", |
| | | "ds-cfg-java-class: org.opends.server.extensions.UserDefinedVirtualAttributeProvider", |
| | | "ds-cfg-attribute-type: description", "", }; |
| | | // @Checkstyle:on |
| | | |
| | | /** |
| | | * Provide valid naming exception to client API exception mappings. |
| | |
| | | @DataProvider(name = "createManagedObjectExceptions") |
| | | public Object[][] createManagedObjectExceptions() { |
| | | return new Object[][] { |
| | | // result code corresponding to exception thrown, expected exception, expected code result |
| | | // result code corresponding to exception thrown, expected |
| | | // exception, expected code result |
| | | { ResultCode.PROTOCOL_ERROR, ErrorResultException.class, ResultCode.PROTOCOL_ERROR }, |
| | | { ResultCode.UNAVAILABLE , ErrorResultException.class, ResultCode.UNAVAILABLE }, |
| | | { ResultCode.UNAVAILABLE, ErrorResultException.class, ResultCode.UNAVAILABLE }, |
| | | { ResultCode.ENTRY_ALREADY_EXISTS, ManagedObjectAlreadyExistsException.class, null }, |
| | | { ResultCode.INSUFFICIENT_ACCESS_RIGHTS, ErrorResultException.class, |
| | | ResultCode.INSUFFICIENT_ACCESS_RIGHTS }, |
| | | { ResultCode.UNWILLING_TO_PERFORM, OperationRejectedException.class, null } |
| | | }; |
| | | ResultCode.INSUFFICIENT_ACCESS_RIGHTS }, |
| | | { ResultCode.UNWILLING_TO_PERFORM, OperationRejectedException.class, null } }; |
| | | } |
| | | |
| | | /** |
| | |
| | | @DataProvider(name = "getManagedObjectExceptions") |
| | | public Object[][] getManagedObjectExceptions() { |
| | | return new Object[][] { |
| | | // result code corresponding to exception thrown, expected exception, expected code result |
| | | // result code corresponding to exception thrown, expected |
| | | // exception, expected code result |
| | | { ResultCode.PROTOCOL_ERROR, ErrorResultException.class, ResultCode.PROTOCOL_ERROR }, |
| | | { ResultCode.UNAVAILABLE, ErrorResultException.class, ResultCode.UNAVAILABLE }, |
| | | { ResultCode.NO_SUCH_OBJECT, ManagedObjectNotFoundException.class, null }, |
| | | { ResultCode.INSUFFICIENT_ACCESS_RIGHTS, ErrorResultException.class, |
| | | ResultCode.INSUFFICIENT_ACCESS_RIGHTS }, |
| | | { ResultCode.UNWILLING_TO_PERFORM, ErrorResultException.class, |
| | | ResultCode.UNWILLING_TO_PERFORM } |
| | | }; |
| | | ResultCode.INSUFFICIENT_ACCESS_RIGHTS }, |
| | | { ResultCode.UNWILLING_TO_PERFORM, ErrorResultException.class, ResultCode.UNWILLING_TO_PERFORM } }; |
| | | } |
| | | |
| | | @BeforeClass |
| | | public void setUp() throws Exception { |
| | | disableClassValidationForProperties(); |
| | | TestCfg.setUp(); |
| | | } |
| | | |
| | | |
| | | @AfterClass |
| | | public void tearDown() { |
| | | TestCfg.cleanup(); |
| | |
| | | */ |
| | | @Test |
| | | public void testCreateChildManagedObject() throws Exception { |
| | | CreateEntryMockLDAPConnection c = new CreateEntryMockLDAPConnection( |
| | | CreateEntryMockLDAPConnection c = |
| | | new CreateEntryMockLDAPConnection( |
| | | "cn=test child new,cn=test children,cn=test parent 1,cn=test parents,cn=config"); |
| | | c.importLDIF(TEST_LDIF); |
| | | c.addExpectedAttribute("cn", "test child new"); |
| | | c.addExpectedAttribute("objectClass", "top", "ds-cfg-test-child-dummy"); |
| | | c.addExpectedAttribute("ds-cfg-enabled", "true"); |
| | | c.addExpectedAttribute("ds-cfg-java-class", |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | c.addExpectedAttribute("ds-cfg-attribute-type", "description"); |
| | | |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 1"); |
| | | TestChildCfgClient child = parent.createTestChild(TestChildCfgDefn.getInstance(), "test child new", null); |
| | | child.setMandatoryBooleanProperty(true); |
| | |
| | | */ |
| | | @Test(dataProvider = "createManagedObjectExceptions") |
| | | public void testCreateManagedObjectException(final ResultCode resultCodeOfThrownException, |
| | | Class<? extends Exception> expectedExceptionClass, ResultCode expectedCode) { |
| | | Class<? extends Exception> expectedExceptionClass, ResultCode expectedCode) { |
| | | MockLDAPConnection conn = new MockLDAPConnection() { |
| | | |
| | | @Override |
| | |
| | | |
| | | }; |
| | | conn.importLDIF(TEST_LDIF); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(conn); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(conn, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | try { |
| | | TestParentCfgClient parent = createTestParent(ctx, "test parent new"); |
| | | parent.setMandatoryBooleanProperty(true); |
| | |
| | | */ |
| | | @Test |
| | | public void testCreateTopLevelManagedObject() throws Exception { |
| | | CreateEntryMockLDAPConnection c = new CreateEntryMockLDAPConnection( |
| | | "cn=test parent new,cn=test parents,cn=config"); |
| | | CreateEntryMockLDAPConnection c = |
| | | new CreateEntryMockLDAPConnection("cn=test parent new,cn=test parents,cn=config"); |
| | | c.importLDIF(TEST_LDIF); |
| | | c.addExpectedAttribute("cn", "test parent new"); |
| | | c.addExpectedAttribute("objectClass", "top", "ds-cfg-test-parent-dummy"); |
| | | c.addExpectedAttribute("ds-cfg-enabled", "true"); |
| | | c.addExpectedAttribute("ds-cfg-java-class", |
| | | "org.opends.server.extensions.SomeVirtualAttributeProvider"); |
| | | c.addExpectedAttribute("ds-cfg-java-class", "org.opends.server.extensions.SomeVirtualAttributeProvider"); |
| | | c.addExpectedAttribute("ds-cfg-attribute-type", "description"); |
| | | |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = createTestParent(ctx, "test parent new"); |
| | | parent.setMandatoryBooleanProperty(true); |
| | | parent.setMandatoryReadOnlyAttributeTypeProperty(DirectoryServer.getAttributeType("description")); |
| | |
| | | public void testGetChildManagedObject() throws Exception { |
| | | MockLDAPConnection c = new MockLDAPConnection(); |
| | | c.importLDIF(TEST_LDIF); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 1"); |
| | | TestChildCfgClient child = parent.getTestChild("test child 3"); |
| | | Assert.assertEquals(child.isMandatoryBooleanProperty(), Boolean.TRUE); |
| | | Assert.assertEquals(child.getMandatoryClassProperty(), |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | Assert.assertEquals(child.getMandatoryReadOnlyAttributeTypeProperty(), |
| | | DirectoryServer.getAttributeType("description")); |
| | | DirectoryServer.getAttributeType("description")); |
| | | assertDNSetEquals(child.getOptionalMultiValuedDNProperty1(), "dc=default value c3v1,dc=com", |
| | | "dc=default value c3v2,dc=com"); |
| | | "dc=default value c3v2,dc=com"); |
| | | assertDNSetEquals(child.getOptionalMultiValuedDNProperty2(), "dc=default value c3v3,dc=com", |
| | | "dc=default value c3v4,dc=com"); |
| | | "dc=default value c3v4,dc=com"); |
| | | } |
| | | |
| | | /** |
| | |
| | | public void testGetChildManagedObjectDefault() throws Exception { |
| | | MockLDAPConnection c = new MockLDAPConnection(); |
| | | c.importLDIF(TEST_LDIF); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 1"); |
| | | TestChildCfgClient child = parent.getTestChild("test child 1"); |
| | | Assert.assertEquals(child.isMandatoryBooleanProperty(), Boolean.TRUE); |
| | | Assert.assertEquals(child.getMandatoryClassProperty(), |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | Assert.assertEquals(child.getMandatoryReadOnlyAttributeTypeProperty(), |
| | | DirectoryServer.getAttributeType("description")); |
| | | DirectoryServer.getAttributeType("description")); |
| | | assertDNSetEquals(child.getOptionalMultiValuedDNProperty1(), "dc=domain1,dc=com", "dc=domain2,dc=com", |
| | | "dc=domain3,dc=com"); |
| | | "dc=domain3,dc=com"); |
| | | assertDNSetEquals(child.getOptionalMultiValuedDNProperty2(), "dc=domain1,dc=com", "dc=domain2,dc=com", |
| | | "dc=domain3,dc=com"); |
| | | "dc=domain3,dc=com"); |
| | | Assert.assertEquals(child.isMandatoryBooleanProperty(), Boolean.TRUE); |
| | | } |
| | | |
| | |
| | | */ |
| | | @Test(dataProvider = "getManagedObjectExceptions") |
| | | public void testGetManagedObjectException(final ResultCode resultCodeOfThrownException, |
| | | final Class<? extends Exception> expectedExceptionClass, final ResultCode expectedCode) { |
| | | final Class<? extends Exception> expectedExceptionClass, final ResultCode expectedCode) { |
| | | MockLDAPConnection c = new MockLDAPConnection() { |
| | | |
| | | @Override |
| | |
| | | |
| | | }; |
| | | c.importLDIF(TEST_LDIF); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | try { |
| | | getTestParent(ctx, "test parent 2"); |
| | | } catch (Exception e) { |
| | |
| | | public void testGetTopLevelManagedObject() throws Exception { |
| | | MockLDAPConnection c = new MockLDAPConnection(); |
| | | c.importLDIF(TEST_LDIF); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 2"); |
| | | Assert.assertEquals(parent.isMandatoryBooleanProperty(), Boolean.TRUE); |
| | | Assert.assertEquals(parent.getMandatoryClassProperty(), |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | Assert.assertEquals(parent.getMandatoryReadOnlyAttributeTypeProperty(), |
| | | DirectoryServer.getAttributeType("description")); |
| | | DirectoryServer.getAttributeType("description")); |
| | | assertDNSetEquals(parent.getOptionalMultiValuedDNProperty(), "dc=default value p2v1,dc=com", |
| | | "dc=default value p2v2,dc=com"); |
| | | "dc=default value p2v2,dc=com"); |
| | | } |
| | | |
| | | /** |
| | |
| | | public void testGetTopLevelManagedObjectDefault() throws Exception { |
| | | MockLDAPConnection c = new MockLDAPConnection(); |
| | | c.importLDIF(TEST_LDIF); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 1"); |
| | | Assert.assertEquals(parent.isMandatoryBooleanProperty(), Boolean.TRUE); |
| | | Assert.assertEquals(parent.getMandatoryClassProperty(), |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | Assert.assertEquals(parent.getMandatoryReadOnlyAttributeTypeProperty(), |
| | | DirectoryServer.getAttributeType("description")); |
| | | DirectoryServer.getAttributeType("description")); |
| | | assertDNSetEquals(parent.getOptionalMultiValuedDNProperty(), "dc=domain1,dc=com", "dc=domain2,dc=com", |
| | | "dc=domain3,dc=com"); |
| | | "dc=domain3,dc=com"); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Test |
| | | public void testInheritedDefaultValues1() throws Exception { |
| | | CreateEntryMockLDAPConnection c = new CreateEntryMockLDAPConnection( |
| | | CreateEntryMockLDAPConnection c = |
| | | new CreateEntryMockLDAPConnection( |
| | | "cn=test child new,cn=test children,cn=test parent 1,cn=test parents,cn=config"); |
| | | c.importLDIF(TEST_LDIF); |
| | | c.addExpectedAttribute("cn", "test child new"); |
| | | c.addExpectedAttribute("objectClass", "top", "ds-cfg-test-child-dummy"); |
| | | c.addExpectedAttribute("ds-cfg-enabled", "true"); |
| | | c.addExpectedAttribute("ds-cfg-java-class", |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | c.addExpectedAttribute("ds-cfg-attribute-type", "description"); |
| | | |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 1"); |
| | | TestChildCfgClient child = parent.createTestChild(TestChildCfgDefn.getInstance(), "test child new", null); |
| | | |
| | | // Check pre-commit values. |
| | | Assert.assertEquals(child.isMandatoryBooleanProperty(), null); |
| | | Assert.assertEquals(child.getMandatoryClassProperty(), |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | Assert.assertEquals(child.getMandatoryReadOnlyAttributeTypeProperty(), null); |
| | | assertDNSetEquals(child.getOptionalMultiValuedDNProperty1(), "dc=domain1,dc=com", "dc=domain2,dc=com", |
| | | "dc=domain3,dc=com"); |
| | | "dc=domain3,dc=com"); |
| | | assertDNSetEquals(child.getOptionalMultiValuedDNProperty2(), "dc=domain1,dc=com", "dc=domain2,dc=com", |
| | | "dc=domain3,dc=com"); |
| | | "dc=domain3,dc=com"); |
| | | |
| | | // Check that the default values are not committed. |
| | | child.setMandatoryBooleanProperty(true); |
| | |
| | | */ |
| | | @Test |
| | | public void testInheritedDefaultValues2() throws Exception { |
| | | CreateEntryMockLDAPConnection c = new CreateEntryMockLDAPConnection( |
| | | CreateEntryMockLDAPConnection c = |
| | | new CreateEntryMockLDAPConnection( |
| | | "cn=test child new,cn=test children,cn=test parent 2,cn=test parents,cn=config"); |
| | | c.importLDIF(TEST_LDIF); |
| | | c.addExpectedAttribute("cn", "test child new"); |
| | | c.addExpectedAttribute("objectClass", "top", "ds-cfg-test-child-dummy"); |
| | | c.addExpectedAttribute("ds-cfg-enabled", "true"); |
| | | c.addExpectedAttribute("ds-cfg-java-class", |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | c.addExpectedAttribute("ds-cfg-attribute-type", "description"); |
| | | |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 2"); |
| | | TestChildCfgClient child = parent.createTestChild(TestChildCfgDefn.getInstance(), "test child new", null); |
| | | |
| | | // Check pre-commit values. |
| | | Assert.assertEquals(child.isMandatoryBooleanProperty(), null); |
| | | Assert.assertEquals(child.getMandatoryClassProperty(), |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | Assert.assertEquals(child.getMandatoryReadOnlyAttributeTypeProperty(), null); |
| | | assertDNSetEquals(child.getOptionalMultiValuedDNProperty1(), "dc=default value p2v1,dc=com", |
| | | "dc=default value p2v2,dc=com"); |
| | | "dc=default value p2v2,dc=com"); |
| | | assertDNSetEquals(child.getOptionalMultiValuedDNProperty2(), "dc=default value p2v1,dc=com", |
| | | "dc=default value p2v2,dc=com"); |
| | | "dc=default value p2v2,dc=com"); |
| | | |
| | | // Check that the default values are not committed. |
| | | child.setMandatoryBooleanProperty(true); |
| | |
| | | public void testListChildManagedObjects() throws Exception { |
| | | MockLDAPConnection c = new MockLDAPConnection(); |
| | | c.importLDIF(TEST_LDIF); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 1"); |
| | | String[] actual = parent.listTestChildren(); |
| | | String[] expected = new String[] { "test child 1", "test child 2", "test child 3" }; |
| | |
| | | public void testListChildManagedObjectsEmpty() throws Exception { |
| | | MockLDAPConnection c = new MockLDAPConnection(); |
| | | c.importLDIF(TEST_LDIF); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 3"); |
| | | String[] actual = parent.listTestChildren(); |
| | | String[] expected = new String[] {}; |
| | |
| | | public void testListTopLevelManagedObjects() throws Exception { |
| | | MockLDAPConnection c = new MockLDAPConnection(); |
| | | c.importLDIF(TEST_LDIF); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | String[] actual = listTestParents(ctx); |
| | | String[] expected = new String[] { "test parent 1", "test parent 2", "test parent 3" }; |
| | | Assert.assertEqualsNoOrder(actual, expected); |
| | |
| | | @Test |
| | | public void testListTopLevelManagedObjectsEmpty() throws Exception { |
| | | MockLDAPConnection c = new MockLDAPConnection(); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | String[] actual = listTestParents(ctx); |
| | | String[] expected = new String[] {}; |
| | | Assert.assertEqualsNoOrder(actual, expected); |
| | |
| | | */ |
| | | @Test |
| | | public void testModifyChildManagedObjectResetToDefault() throws Exception { |
| | | ModifyEntryMockLDAPConnection c = new ModifyEntryMockLDAPConnection( |
| | | ModifyEntryMockLDAPConnection c = |
| | | new ModifyEntryMockLDAPConnection( |
| | | "cn=test child 2,cn=test children,cn=test parent 1,cn=test parents,cn=config"); |
| | | c.importLDIF(TEST_LDIF); |
| | | c.addExpectedModification("ds-cfg-base-dn"); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 1"); |
| | | TestChildCfgClient child = parent.getTestChild("test child 2"); |
| | | child.setOptionalMultiValuedDNProperty1(Collections.<DN> emptySet()); |
| | |
| | | */ |
| | | @Test |
| | | public void testModifyTopLevelManagedObjectNoChanges() throws Exception { |
| | | ModifyEntryMockLDAPConnection c = new ModifyEntryMockLDAPConnection( |
| | | "cn=test parent 1,cn=test parents,cn=config"); |
| | | ModifyEntryMockLDAPConnection c = |
| | | new ModifyEntryMockLDAPConnection("cn=test parent 1,cn=test parents,cn=config"); |
| | | c.importLDIF(TEST_LDIF); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 1"); |
| | | parent.commit(); |
| | | Assert.assertFalse(c.isEntryModified()); |
| | |
| | | */ |
| | | @Test |
| | | public void testModifyTopLevelManagedObjectWithChanges() throws Exception { |
| | | ModifyEntryMockLDAPConnection c = new ModifyEntryMockLDAPConnection( |
| | | "cn=test parent 1,cn=test parents,cn=config"); |
| | | ModifyEntryMockLDAPConnection c = |
| | | new ModifyEntryMockLDAPConnection("cn=test parent 1,cn=test parents,cn=config"); |
| | | c.importLDIF(TEST_LDIF); |
| | | c.addExpectedModification("ds-cfg-enabled", "false"); |
| | | c.addExpectedModification("ds-cfg-base-dn", "dc=mod1,dc=com", "dc=mod2,dc=com"); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 1"); |
| | | parent.setMandatoryBooleanProperty(false); |
| | | parent.setOptionalMultiValuedDNProperty(Arrays.asList(DN.valueOf("dc=mod1,dc=com"), |
| | | DN.valueOf("dc=mod2,dc=com"))); |
| | | DN.valueOf("dc=mod2,dc=com"))); |
| | | parent.commit(); |
| | | Assert.assertTrue(c.isEntryModified()); |
| | | } |
| | |
| | | */ |
| | | @Test |
| | | public void testRemoveChildManagedObject() throws Exception { |
| | | DeleteSubtreeMockLDAPConnection c = new DeleteSubtreeMockLDAPConnection( |
| | | DeleteSubtreeMockLDAPConnection c = |
| | | new DeleteSubtreeMockLDAPConnection( |
| | | "cn=test child 1,cn=test children,cn=test parent 1,cn=test parents,cn=config"); |
| | | c.importLDIF(TEST_LDIF); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 1"); |
| | | parent.removeTestChild("test child 1"); |
| | | c.assertSubtreeIsDeleted(); |
| | |
| | | */ |
| | | @Test |
| | | public void testRemoveTopLevelManagedObject() throws Exception { |
| | | DeleteSubtreeMockLDAPConnection c = new DeleteSubtreeMockLDAPConnection( |
| | | "cn=test parent 1,cn=test parents,cn=config"); |
| | | DeleteSubtreeMockLDAPConnection c = |
| | | new DeleteSubtreeMockLDAPConnection("cn=test parent 1,cn=test parents,cn=config"); |
| | | c.importLDIF(TEST_LDIF); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | removeTestParent(ctx, "test parent 1"); |
| | | c.assertSubtreeIsDeleted(); |
| | | } |
| | |
| | | TestCfg.addConstraint(constraint); |
| | | |
| | | try { |
| | | CreateEntryMockLDAPConnection c = new CreateEntryMockLDAPConnection( |
| | | CreateEntryMockLDAPConnection c = |
| | | new CreateEntryMockLDAPConnection( |
| | | "cn=test child new,cn=test children,cn=test parent 1,cn=test parents,cn=config"); |
| | | c.importLDIF(TEST_LDIF); |
| | | c.addExpectedAttribute("cn", "test child new"); |
| | | c.addExpectedAttribute("objectClass", "top", "ds-cfg-test-child-dummy"); |
| | | c.addExpectedAttribute("ds-cfg-enabled", "true"); |
| | | c.addExpectedAttribute("ds-cfg-java-class", |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | c.addExpectedAttribute("ds-cfg-attribute-type", "description"); |
| | | |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 1"); |
| | | TestChildCfgClient child = parent.createTestChild(TestChildCfgDefn.getInstance(), "test child new", null); |
| | | child.setMandatoryBooleanProperty(true); |
| | |
| | | TestCfg.addConstraint(constraint); |
| | | |
| | | try { |
| | | CreateEntryMockLDAPConnection conn = new CreateEntryMockLDAPConnection( |
| | | CreateEntryMockLDAPConnection conn = |
| | | new CreateEntryMockLDAPConnection( |
| | | "cn=test child new,cn=test children,cn=test parent 1,cn=test parents,cn=config"); |
| | | conn.importLDIF(TEST_LDIF); |
| | | conn.addExpectedAttribute("cn", "test child new"); |
| | | conn.addExpectedAttribute("objectClass", "top", "ds-cfg-test-child-dummy"); |
| | | conn.addExpectedAttribute("ds-cfg-enabled", "true"); |
| | | conn.addExpectedAttribute("ds-cfg-java-class", |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | "org.opends.server.extensions.UserDefinedVirtualAttributeProvider"); |
| | | conn.addExpectedAttribute("ds-cfg-attribute-type", "description"); |
| | | |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(conn); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(conn, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 1"); |
| | | TestChildCfgClient child = parent.createTestChild(TestChildCfgDefn.getInstance(), "test child new", null); |
| | | child.setMandatoryBooleanProperty(true); |
| | |
| | | TestCfg.addConstraint(constraint); |
| | | |
| | | try { |
| | | DeleteSubtreeMockLDAPConnection c = new DeleteSubtreeMockLDAPConnection( |
| | | DeleteSubtreeMockLDAPConnection c = |
| | | new DeleteSubtreeMockLDAPConnection( |
| | | "cn=test child 1,cn=test children,cn=test parent 1,cn=test parents,cn=config"); |
| | | c.importLDIF(TEST_LDIF); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 1"); |
| | | parent.removeTestChild("test child 1"); |
| | | c.assertSubtreeIsDeleted(); |
| | |
| | | TestCfg.addConstraint(constraint); |
| | | |
| | | try { |
| | | DeleteSubtreeMockLDAPConnection c = new DeleteSubtreeMockLDAPConnection( |
| | | DeleteSubtreeMockLDAPConnection c = |
| | | new DeleteSubtreeMockLDAPConnection( |
| | | "cn=test child 1,cn=test children,cn=test parent 1,cn=test parents,cn=config"); |
| | | c.importLDIF(TEST_LDIF); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 1"); |
| | | parent.removeTestChild("test child 1"); |
| | | Assert.fail("The remove constraint failed to prevent removal of the managed object"); |
| | |
| | | TestCfg.addConstraint(constraint); |
| | | |
| | | try { |
| | | ModifyEntryMockLDAPConnection c = new ModifyEntryMockLDAPConnection( |
| | | ModifyEntryMockLDAPConnection c = |
| | | new ModifyEntryMockLDAPConnection( |
| | | "cn=test child 2,cn=test children,cn=test parent 1,cn=test parents,cn=config"); |
| | | c.importLDIF(TEST_LDIF); |
| | | c.addExpectedModification("ds-cfg-base-dn"); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 1"); |
| | | TestChildCfgClient child = parent.getTestChild("test child 2"); |
| | | child.setOptionalMultiValuedDNProperty1(Collections.<DN> emptySet()); |
| | |
| | | TestCfg.addConstraint(constraint); |
| | | |
| | | try { |
| | | ModifyEntryMockLDAPConnection c = new ModifyEntryMockLDAPConnection( |
| | | ModifyEntryMockLDAPConnection c = |
| | | new ModifyEntryMockLDAPConnection( |
| | | "cn=test child 2,cn=test children,cn=test parent 1,cn=test parents,cn=config"); |
| | | c.importLDIF(TEST_LDIF); |
| | | c.addExpectedModification("ds-cfg-base-dn"); |
| | | ManagementContext ctx = LDAPManagementContext.createFromContext(c); |
| | | ManagementContext ctx = |
| | | LDAPManagementContext.createFromContext(c, LDAPProfile.getInstance(), |
| | | PropertyDefinitionsOptions.NO_VALIDATION_OPTIONS); |
| | | TestParentCfgClient parent = getTestParent(ctx, "test parent 1"); |
| | | TestChildCfgClient child = parent.getTestChild("test child 2"); |
| | | child.setOptionalMultiValuedDNProperty1(Collections.<DN> emptySet()); |
| | |
| | | } |
| | | |
| | | // Create the named test parent managed object. |
| | | private TestParentCfgClient createTestParent(ManagementContext context, String name) |
| | | throws Exception { |
| | | private TestParentCfgClient createTestParent(ManagementContext context, String name) throws Exception { |
| | | ManagedObject<RootCfgClient> root = context.getRootConfigurationManagedObject(); |
| | | return root.createChild(TestCfg.getTestOneToManyParentRelationDefinition(), TestParentCfgDefn.getInstance(), |
| | | name, null).getConfiguration(); |
| | | name, null).getConfiguration(); |
| | | } |
| | | |
| | | // Retrieve the named test parent managed object. |
| | | private TestParentCfgClient getTestParent(ManagementContext context, String name) |
| | | throws Exception { |
| | | private TestParentCfgClient getTestParent(ManagementContext context, String name) throws Exception { |
| | | ManagedObject<RootCfgClient> root = context.getRootConfigurationManagedObject(); |
| | | return root.getChild(TestCfg.getTestOneToManyParentRelationDefinition(), name).getConfiguration(); |
| | | } |