Search in sources :

Example 1 with TriggerSpecification

use of org.apache.directory.api.ldap.trigger.TriggerSpecification in project directory-ldap-api by apache.

the class TriggerSpecificationParserTest method testWithOperationParameters.

@Test
public void testWithOperationParameters() throws Exception {
    TriggerSpecification triggerSpecification = null;
    String spec = "AFTER Delete CALL \"BackupUtilities.backupDeletedEntry\" ($name, $deletedEntry);";
    triggerSpecification = parser.parse(spec);
    assertNotNull(triggerSpecification);
    assertEquals(triggerSpecification.getActionTime(), ActionTime.AFTER);
    assertEquals(triggerSpecification.getLdapOperation(), LdapOperation.DELETE);
    List<SPSpec> spSpecs = triggerSpecification.getSPSpecs();
    assertTrue(spSpecs != null);
    assertTrue(spSpecs.size() == 1);
    SPSpec theSpec = spSpecs.get(0);
    assertEquals(theSpec.getName(), "BackupUtilities.backupDeletedEntry");
    assertEquals(theSpec.getOptions().size(), 0);
    assertEquals(theSpec.getParameters().size(), 2);
    assertTrue(theSpec.getParameters().contains(StoredProcedureParameter.Delete_NAME.instance()));
    assertTrue(theSpec.getParameters().contains(StoredProcedureParameter.Delete_DELETED_ENTRY.instance()));
}
Also used : SPSpec(org.apache.directory.api.ldap.trigger.TriggerSpecification.SPSpec) TriggerSpecification(org.apache.directory.api.ldap.trigger.TriggerSpecification) Test(org.junit.Test)

Example 2 with TriggerSpecification

use of org.apache.directory.api.ldap.trigger.TriggerSpecification in project directory-ldap-api by apache.

the class TriggerSpecificationParserTest method testMultipleSPCalls.

@Test
public void testMultipleSPCalls() throws Exception {
    TriggerSpecification triggerSpecification = null;
    String spec = "AFTER Delete " + "CALL \"BackupUtilities.backupDeletedEntry\" ($ldapContext \"ou=Backup,ou=System\", $name, $deletedEntry); " + "CALL \"BackupUtilities.recreateDeletedEntry\" ($name, $deletedEntry);";
    triggerSpecification = parser.parse(spec);
    assertNotNull(triggerSpecification);
    assertEquals(triggerSpecification.getActionTime(), ActionTime.AFTER);
    assertEquals(triggerSpecification.getLdapOperation(), LdapOperation.DELETE);
    List<SPSpec> spSpecs = triggerSpecification.getSPSpecs();
    assertTrue(spSpecs != null);
    assertTrue(spSpecs.size() == 2);
    SPSpec firstSpec = spSpecs.get(0);
    assertEquals(firstSpec.getName(), "BackupUtilities.backupDeletedEntry");
    assertEquals(firstSpec.getOptions().size(), 0);
    assertEquals(firstSpec.getParameters().size(), 3);
    assertTrue(firstSpec.getParameters().contains(StoredProcedureParameter.Delete_NAME.instance()));
    assertTrue(firstSpec.getParameters().contains(StoredProcedureParameter.Delete_DELETED_ENTRY.instance()));
    assertTrue(firstSpec.getParameters().contains(StoredProcedureParameter.Generic_LDAP_CONTEXT.instance(new Dn("ou=Backup,ou=System"))));
    SPSpec secondSpec = spSpecs.get(1);
    assertEquals(secondSpec.getName(), "BackupUtilities.recreateDeletedEntry");
    assertEquals(secondSpec.getOptions().size(), 0);
    assertEquals(secondSpec.getParameters().size(), 2);
    assertTrue(secondSpec.getParameters().contains(StoredProcedureParameter.Delete_NAME.instance()));
    assertTrue(secondSpec.getParameters().contains(StoredProcedureParameter.Delete_DELETED_ENTRY.instance()));
}
Also used : SPSpec(org.apache.directory.api.ldap.trigger.TriggerSpecification.SPSpec) Dn(org.apache.directory.api.ldap.model.name.Dn) TriggerSpecification(org.apache.directory.api.ldap.trigger.TriggerSpecification) Test(org.junit.Test)

Example 3 with TriggerSpecification

use of org.apache.directory.api.ldap.trigger.TriggerSpecification in project directory-ldap-api by apache.

the class TriggerSpecificationParserTest method testWithLanguageSchemeOption.

@Test
public void testWithLanguageSchemeOption() throws Exception {
    TriggerSpecification triggerSpecification = null;
    String spec = "AFTER Modify CALL \"Logger.logModifyOperation\" {languageScheme \"Java\"}();";
    triggerSpecification = parser.parse(spec);
    assertNotNull(triggerSpecification);
    assertEquals(triggerSpecification.getActionTime(), ActionTime.AFTER);
    assertEquals(triggerSpecification.getLdapOperation(), LdapOperation.MODIFY);
    List<SPSpec> spSpecs = triggerSpecification.getSPSpecs();
    assertTrue(spSpecs != null);
    assertTrue(spSpecs.size() == 1);
    SPSpec theSpec = spSpecs.get(0);
    assertEquals(theSpec.getName(), "Logger.logModifyOperation");
    assertEquals(theSpec.getOptions().size(), 1);
    assertTrue(theSpec.getOptions().contains(new StoredProcedureLanguageSchemeOption("Java")));
    assertEquals(theSpec.getParameters().size(), 0);
}
Also used : StoredProcedureLanguageSchemeOption(org.apache.directory.api.ldap.trigger.StoredProcedureLanguageSchemeOption) SPSpec(org.apache.directory.api.ldap.trigger.TriggerSpecification.SPSpec) TriggerSpecification(org.apache.directory.api.ldap.trigger.TriggerSpecification) Test(org.junit.Test)

Example 4 with TriggerSpecification

use of org.apache.directory.api.ldap.trigger.TriggerSpecification in project directory-ldap-api by apache.

the class TriggerSpecificationParserTest method testWithSearchContextOption.

@Test
public void testWithSearchContextOption() throws Exception {
    TriggerSpecification triggerSpecification = null;
    String spec = "AFTER ModifyDN.Rename CALL \"Logger.logModifyDNRenameOperation\" \n" + "{ searchContext { scope one } \"cn=Logger,ou=Stored Procedures,ou=system\" } \n" + "($entry, $newrdn);  # Stored Procedure Parameter(s)";
    triggerSpecification = parser.parse(spec);
    assertNotNull(triggerSpecification);
    assertEquals(triggerSpecification.getActionTime(), ActionTime.AFTER);
    assertEquals(triggerSpecification.getLdapOperation(), LdapOperation.MODIFYDN_RENAME);
    List<SPSpec> spSpecs = triggerSpecification.getSPSpecs();
    assertTrue(spSpecs != null);
    assertTrue(spSpecs.size() == 1);
    SPSpec theSpec = spSpecs.get(0);
    assertEquals(theSpec.getName(), "Logger.logModifyDNRenameOperation");
    assertEquals(theSpec.getOptions().size(), 1);
    assertTrue(theSpec.getOptions().contains(new StoredProcedureSearchContextOption(new Dn("cn=Logger,ou=Stored Procedures,ou=system"), SearchScope.ONELEVEL)));
    assertEquals(theSpec.getParameters().size(), 2);
    assertTrue(theSpec.getParameters().contains(StoredProcedureParameter.ModifyDN_ENTRY.instance()));
    assertTrue(theSpec.getParameters().contains(StoredProcedureParameter.ModifyDN_NEW_RDN.instance()));
}
Also used : StoredProcedureSearchContextOption(org.apache.directory.api.ldap.trigger.StoredProcedureSearchContextOption) SPSpec(org.apache.directory.api.ldap.trigger.TriggerSpecification.SPSpec) Dn(org.apache.directory.api.ldap.model.name.Dn) TriggerSpecification(org.apache.directory.api.ldap.trigger.TriggerSpecification) Test(org.junit.Test)

Example 5 with TriggerSpecification

use of org.apache.directory.api.ldap.trigger.TriggerSpecification in project directory-ldap-api by apache.

the class TriggerSpecificationParserTest method testWithLdapContextParameter.

@Test
public void testWithLdapContextParameter() throws Exception {
    TriggerSpecification triggerSpecification = null;
    String spec = "AFTER Delete CALL \"BackupUtilities.backupDeletedEntry\" ($ldapContext \"ou=Backup,ou=System\", $name, $deletedEntry);";
    triggerSpecification = parser.parse(spec);
    assertNotNull(triggerSpecification);
    assertEquals(triggerSpecification.getActionTime(), ActionTime.AFTER);
    assertEquals(triggerSpecification.getLdapOperation(), LdapOperation.DELETE);
    List<SPSpec> spSpecs = triggerSpecification.getSPSpecs();
    assertTrue(spSpecs != null);
    assertTrue(spSpecs.size() == 1);
    SPSpec theSpec = spSpecs.get(0);
    assertEquals(theSpec.getName(), "BackupUtilities.backupDeletedEntry");
    assertEquals(theSpec.getOptions().size(), 0);
    assertEquals(theSpec.getParameters().size(), 3);
    assertTrue(theSpec.getParameters().contains(StoredProcedureParameter.Delete_NAME.instance()));
    assertTrue(theSpec.getParameters().contains(StoredProcedureParameter.Delete_DELETED_ENTRY.instance()));
    assertTrue(theSpec.getParameters().contains(StoredProcedureParameter.Generic_LDAP_CONTEXT.instance(new Dn("ou=Backup,ou=System"))));
}
Also used : SPSpec(org.apache.directory.api.ldap.trigger.TriggerSpecification.SPSpec) Dn(org.apache.directory.api.ldap.model.name.Dn) TriggerSpecification(org.apache.directory.api.ldap.trigger.TriggerSpecification) Test(org.junit.Test)

Aggregations

TriggerSpecification (org.apache.directory.api.ldap.trigger.TriggerSpecification)6 SPSpec (org.apache.directory.api.ldap.trigger.TriggerSpecification.SPSpec)6 Test (org.junit.Test)6 Dn (org.apache.directory.api.ldap.model.name.Dn)3 StoredProcedureLanguageSchemeOption (org.apache.directory.api.ldap.trigger.StoredProcedureLanguageSchemeOption)1 StoredProcedureSearchContextOption (org.apache.directory.api.ldap.trigger.StoredProcedureSearchContextOption)1