Search in sources :

Example 1 with JavaScriptReturnValueEvaluatorBuilder

use of org.jbpm.process.builder.dialect.javascript.JavaScriptReturnValueEvaluatorBuilder in project jbpm by kiegroup.

the class JavaScriptReturnValueConstraintEvaluatorBuilderTest method testSimpleReturnValueConstraintEvaluator.

@Test
public void testSimpleReturnValueConstraintEvaluator() throws Exception {
    final InternalKnowledgePackage pkg = new KnowledgePackageImpl("pkg1");
    ProcessDescr processDescr = new ProcessDescr();
    processDescr.setClassName("Process1");
    processDescr.setName("Process1");
    WorkflowProcessImpl process = new WorkflowProcessImpl();
    process.setName("Process1");
    process.setPackageName("pkg1");
    ReturnValueDescr descr = new ReturnValueDescr();
    descr.setText("function validate() {return value;} validate();");
    KnowledgeBuilderImpl pkgBuilder = new KnowledgeBuilderImpl(pkg);
    DialectCompiletimeRegistry dialectRegistry = pkgBuilder.getPackageRegistry(pkg.getName()).getDialectCompiletimeRegistry();
    ProcessBuildContext context = new ProcessBuildContext(pkgBuilder, pkg, process, processDescr, dialectRegistry, null);
    pkgBuilder.addPackageFromDrl(new StringReader("package pkg1;\n global Boolean value;\n"));
    ReturnValueConstraintEvaluator node = new ReturnValueConstraintEvaluator();
    final JavaScriptReturnValueEvaluatorBuilder builder = new JavaScriptReturnValueEvaluatorBuilder();
    builder.build(context, node, descr, null);
    final InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
    kbase.addPackages(Arrays.asList(pkgBuilder.getPackages()));
    final KieSession ksession = kbase.newKieSession();
    RuleFlowProcessInstance processInstance = new RuleFlowProcessInstance();
    processInstance.setKnowledgeRuntime((InternalKnowledgeRuntime) ksession);
    SplitInstance splitInstance = new SplitInstance();
    splitInstance.setProcessInstance(processInstance);
    ksession.setGlobal("value", true);
    assertTrue(node.evaluate(splitInstance, null, null));
    // Build second time with reutrn value evaulator returning false
    ReturnValueDescr descr2 = new ReturnValueDescr();
    descr.setText("function invalidate() {return false;} invalidate();");
    final JavaScriptReturnValueEvaluatorBuilder builder2 = new JavaScriptReturnValueEvaluatorBuilder();
    builder2.build(context, node, descr, null);
    assertFalse(node.evaluate(splitInstance, null, null));
}
Also used : RuleFlowProcessInstance(org.jbpm.ruleflow.instance.RuleFlowProcessInstance) ReturnValueDescr(org.drools.compiler.compiler.ReturnValueDescr) DialectCompiletimeRegistry(org.drools.compiler.compiler.DialectCompiletimeRegistry) ProcessDescr(org.drools.compiler.lang.descr.ProcessDescr) ReturnValueConstraintEvaluator(org.jbpm.process.instance.impl.ReturnValueConstraintEvaluator) WorkflowProcessImpl(org.jbpm.workflow.core.impl.WorkflowProcessImpl) SplitInstance(org.jbpm.workflow.instance.node.SplitInstance) KnowledgeBuilderImpl(org.drools.compiler.builder.impl.KnowledgeBuilderImpl) StringReader(java.io.StringReader) KieSession(org.kie.api.runtime.KieSession) KnowledgePackageImpl(org.drools.core.definitions.impl.KnowledgePackageImpl) JavaScriptReturnValueEvaluatorBuilder(org.jbpm.process.builder.dialect.javascript.JavaScriptReturnValueEvaluatorBuilder) InternalKnowledgeBase(org.drools.core.impl.InternalKnowledgeBase) InternalKnowledgePackage(org.drools.core.definitions.InternalKnowledgePackage) Test(org.junit.Test)

Aggregations

StringReader (java.io.StringReader)1 KnowledgeBuilderImpl (org.drools.compiler.builder.impl.KnowledgeBuilderImpl)1 DialectCompiletimeRegistry (org.drools.compiler.compiler.DialectCompiletimeRegistry)1 ReturnValueDescr (org.drools.compiler.compiler.ReturnValueDescr)1 ProcessDescr (org.drools.compiler.lang.descr.ProcessDescr)1 InternalKnowledgePackage (org.drools.core.definitions.InternalKnowledgePackage)1 KnowledgePackageImpl (org.drools.core.definitions.impl.KnowledgePackageImpl)1 InternalKnowledgeBase (org.drools.core.impl.InternalKnowledgeBase)1 JavaScriptReturnValueEvaluatorBuilder (org.jbpm.process.builder.dialect.javascript.JavaScriptReturnValueEvaluatorBuilder)1 ReturnValueConstraintEvaluator (org.jbpm.process.instance.impl.ReturnValueConstraintEvaluator)1 RuleFlowProcessInstance (org.jbpm.ruleflow.instance.RuleFlowProcessInstance)1 WorkflowProcessImpl (org.jbpm.workflow.core.impl.WorkflowProcessImpl)1 SplitInstance (org.jbpm.workflow.instance.node.SplitInstance)1 Test (org.junit.Test)1 KieSession (org.kie.api.runtime.KieSession)1