Search in sources :

Example 1 with JobHasNoDisabledHopsImportRule

use of org.pentaho.di.imp.rules.JobHasNoDisabledHopsImportRule in project pentaho-kettle by pentaho.

the class JobHasNoDisabledHopsImportRuleIT method testRule.

public void testRule() throws Exception {
    // Create a job to test.
    // 
    JobMeta jobMeta = new JobMeta();
    // Add 3 dummy steps connected with hops.
    // 
    JobEntryCopy lastCopy = null;
    for (int i = 0; i < 3; i++) {
        JobEntrySpecial dummy = new JobEntrySpecial();
        dummy.setDummy(true);
        dummy.setName("dummy" + (i + 1));
        JobEntryCopy copy = new JobEntryCopy(dummy);
        copy.setLocation(50 + i * 50, 50);
        copy.setDrawn();
        jobMeta.addJobEntry(copy);
        if (lastCopy != null) {
            JobHopMeta hop = new JobHopMeta(lastCopy, copy);
            jobMeta.addJobHop(hop);
        }
        lastCopy = copy;
    }
    // Load the plugin to test from the registry.
    // 
    PluginRegistry registry = PluginRegistry.getInstance();
    PluginInterface plugin = registry.findPluginWithId(ImportRulePluginType.class, "JobHasNoDisabledHops");
    assertNotNull("The 'job has no disabled hops' rule could not be found in the plugin registry!", plugin);
    JobHasNoDisabledHopsImportRule rule = (JobHasNoDisabledHopsImportRule) registry.loadClass(plugin);
    assertNotNull("The 'job has no disabled hops' class could not be loaded by the plugin registry!", plugin);
    rule.setEnabled(true);
    List<ImportValidationFeedback> feedback = rule.verifyRule(jobMeta);
    assertTrue("We didn't get any feedback from the 'job has no disabled hops'", !feedback.isEmpty());
    assertTrue("An approval ruling was expected", feedback.get(0).getResultType() == ImportValidationResultType.APPROVAL);
    jobMeta.getJobHop(0).setEnabled(false);
    feedback = rule.verifyRule(jobMeta);
    assertTrue("We didn't get any feedback from the 'job has no disabled hops'", !feedback.isEmpty());
    assertTrue("An error ruling was expected", feedback.get(0).getResultType() == ImportValidationResultType.ERROR);
    rule.setEnabled(false);
    feedback = rule.verifyRule(jobMeta);
    assertTrue("We didn't expect any feedback from the 'job has no disabled hops' while disabled", feedback.isEmpty());
}
Also used : JobMeta(org.pentaho.di.job.JobMeta) JobEntryCopy(org.pentaho.di.job.entry.JobEntryCopy) JobEntrySpecial(org.pentaho.di.job.entries.special.JobEntrySpecial) JobHopMeta(org.pentaho.di.job.JobHopMeta) JobHasNoDisabledHopsImportRule(org.pentaho.di.imp.rules.JobHasNoDisabledHopsImportRule) PluginRegistry(org.pentaho.di.core.plugins.PluginRegistry) PluginInterface(org.pentaho.di.core.plugins.PluginInterface)

Aggregations

PluginInterface (org.pentaho.di.core.plugins.PluginInterface)1 PluginRegistry (org.pentaho.di.core.plugins.PluginRegistry)1 JobHasNoDisabledHopsImportRule (org.pentaho.di.imp.rules.JobHasNoDisabledHopsImportRule)1 JobHopMeta (org.pentaho.di.job.JobHopMeta)1 JobMeta (org.pentaho.di.job.JobMeta)1 JobEntrySpecial (org.pentaho.di.job.entries.special.JobEntrySpecial)1 JobEntryCopy (org.pentaho.di.job.entry.JobEntryCopy)1