| | |
| | | |
| | | import static org.forgerock.opendj.ldap.ResultCode.*; |
| | | import static org.forgerock.opendj.ldap.schema.CoreSchema.*; |
| | | import static org.mockito.Mockito.*; |
| | | import static org.opends.server.TestCaseUtils.*; |
| | | import static org.opends.server.core.DirectoryServer.*; |
| | | import static org.opends.server.protocols.internal.InternalClientConnection.*; |
| | |
| | | import org.forgerock.opendj.ldap.schema.ObjectClass; |
| | | import org.forgerock.opendj.ldap.schema.Schema; |
| | | import org.forgerock.opendj.ldap.schema.SchemaBuilder; |
| | | import org.forgerock.opendj.server.config.server.SchemaBackendCfg; |
| | | import org.forgerock.util.Utils; |
| | | import org.opends.server.TestCaseUtils; |
| | | import org.opends.server.core.AddOperation; |
| | |
| | | * @throws Exception If an unexpected problem occurs. |
| | | */ |
| | | @Test |
| | | public void testGetSchemaEntry() |
| | | throws Exception |
| | | public void testGetSchemaEntry() throws Exception |
| | | { |
| | | DN schemaDN = DN.valueOf("cn=schema"); |
| | | Entry schemaEntry = schemaBackend.getSchemaEntry(schemaDN, false); |
| | | Entry schemaEntry = schemaBackend.getSchemaEntry(schemaDN); |
| | | assertNotNull(schemaEntry); |
| | | assertEquals(schemaEntry.getName(), schemaDN); |
| | | |
| | |
| | | assertTrue(schemaEntry.hasAttribute(getMatchingRulesAttributeType())); |
| | | |
| | | schemaDN = DN.valueOf("cn=subschema"); |
| | | schemaEntry = schemaBackend.getSchemaEntry(schemaDN, false); |
| | | schemaEntry = schemaBackend.getSchemaEntry(schemaDN); |
| | | assertNotNull(schemaEntry); |
| | | assertEquals(schemaEntry.getName(), schemaDN); |
| | | |
| | |
| | | { |
| | | DN schemaDN = DN.valueOf("cn=schema"); |
| | | |
| | | DeleteOperationBasis deleteOperation = |
| | | new DeleteOperationBasis(getRootConnection(), nextOperationID(), nextMessageID(), |
| | | null, schemaDN); |
| | | DeleteOperationBasis deleteOperation = new DeleteOperationBasis( |
| | | getRootConnection(), nextOperationID(), nextMessageID(), |
| | | null, schemaDN); |
| | | |
| | | schemaBackend.deleteEntry(schemaDN, deleteOperation); |
| | | } |
| | |
| | | DN currentSchemaDN = DN.valueOf("cn=schema"); |
| | | DN newSchemaDN = DN.valueOf("cn=newschema"); |
| | | |
| | | InternalClientConnection conn = getRootConnection(); |
| | | ModifyDNOperationBasis modifyDNOperation = |
| | | new ModifyDNOperationBasis(conn, InternalClientConnection.nextOperationID(), |
| | | InternalClientConnection.nextMessageID(), null, |
| | | currentSchemaDN, newSchemaDN.rdn(), |
| | | true, null); |
| | | ModifyDNOperationBasis modifyDNOperation = new ModifyDNOperationBasis( |
| | | getRootConnection(), nextOperationID(), nextMessageID(), |
| | | null, currentSchemaDN, newSchemaDN.rdn(), true, null); |
| | | |
| | | schemaBackend.renameEntry(currentSchemaDN, |
| | | schemaBackend.getSchemaEntry(newSchemaDN, false), |
| | | modifyDNOperation); |
| | | Entry newSchemaEntry = schemaBackend.getSchemaEntry(newSchemaDN); |
| | | schemaBackend.renameEntry(currentSchemaDN, newSchemaEntry, modifyDNOperation); |
| | | } |
| | | |
| | | /** |
| | |
| | | AttributeType s = getLDAPSyntaxesAttributeType(); |
| | | |
| | | assertFalse(schemaBackend.showAllAttributes()); |
| | | Entry schemaEntry = schemaBackend.getSchemaEntry(schemaDN, false); |
| | | Entry schemaEntry = schemaBackend.getSchemaEntry(schemaDN); |
| | | assertTrue(schemaEntry.hasOperationalAttribute(a)); |
| | | assertTrue(schemaEntry.hasOperationalAttribute(o)); |
| | | assertTrue(schemaEntry.hasOperationalAttribute(m)); |
| | | assertTrue(schemaEntry.hasOperationalAttribute(s)); |
| | | |
| | | schemaBackend.setShowAllAttributes(true); |
| | | assertTrue(schemaBackend.showAllAttributes()); |
| | | schemaEntry = schemaBackend.getSchemaEntry(schemaDN, false); |
| | | setShowAllAttributes(schemaBackend, true); |
| | | schemaEntry = schemaBackend.getSchemaEntry(schemaDN); |
| | | assertFalse(schemaEntry.hasOperationalAttribute(a)); |
| | | assertFalse(schemaEntry.hasOperationalAttribute(o)); |
| | | assertFalse(schemaEntry.hasOperationalAttribute(m)); |
| | | assertTrue(schemaEntry.hasOperationalAttribute(s)); |
| | | |
| | | schemaBackend.setShowAllAttributes(false); |
| | | setShowAllAttributes(schemaBackend, false); |
| | | assertFalse(schemaBackend.showAllAttributes()); |
| | | schemaEntry = schemaBackend.getSchemaEntry(schemaDN, false); |
| | | schemaEntry = schemaBackend.getSchemaEntry(schemaDN); |
| | | assertTrue(schemaEntry.hasOperationalAttribute(a)); |
| | | assertTrue(schemaEntry.hasOperationalAttribute(o)); |
| | | assertTrue(schemaEntry.hasOperationalAttribute(m)); |
| | | assertTrue(schemaEntry.hasOperationalAttribute(s)); |
| | | } |
| | | |
| | | private void setShowAllAttributes(SchemaBackend schemaBackend, boolean showAllAttributes) |
| | | { |
| | | SchemaBackendCfg cfg = spy(SchemaBackendCfg.class); |
| | | when(cfg.isShowAllAttributes()).thenReturn(showAllAttributes); |
| | | schemaBackend.applyConfigurationChange(cfg); |
| | | } |
| | | |
| | | /** |
| | | * Tests the behavior of the schema backend when attempting to add a new |
| | | * attribute type that is not allowed to be altered. |