@Test @Ignore public void FIXME_testLoadingRuleFlowInPackage4() throws Exception { // adding ruleflows of different package builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "empty_ruleflow.rfm" ) ) ); try { builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.rfm" ) ) ); throw new Exception( "An exception should have been thrown." ); } catch ( PackageMergeException e ) { // do nothing } }
@Test public void testLoadingRuleFlowInPackage3() throws Exception { // only adding ruleflow without any generated rules builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "empty_ruleflow.rfm" ) ) ); builder.getPackages(); }
@Test public void testLoadingRuleFlowInPackage2() throws Exception { // only adding ruleflow builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.rfm" ) ) ); builder.getPackages(); }
@Test @Ignore public void FIXME_testLoadingRuleFlowInPackage5() throws Exception { // adding ruleflow of different package than rules builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.drl" ) ) ); try { builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "empty_ruleflow.rfm" ) ) ); throw new Exception( "An exception should have been thrown." ); } catch ( PackageMergeException e ) { // do nothing } }
@Test @Ignore public void FIXME_testLoadingRuleFlowInPackage6() throws Exception { // adding rules of different package than ruleflow builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "empty_ruleflow.rfm" ) ) ); try { builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.drl" ) ) ); throw new Exception( "An exception should have been thrown." ); } catch ( PackageMergeException e ) { // do nothing } }
@Test public void testLoadingRuleFlowInPackage1() throws Exception { // adding ruleflow before adding package builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.rfm" ) ) ); builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.drl" ) ) ); builder.getPackages(); }
@Test public void testLoadingRuleFlowNoPackageName() throws Exception { // loading a ruleflow with errors (null package name cause 3 errors) builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "error_ruleflow.rfm" ) ) ); assertEquals( 3, builder.getErrors().getErrors().length ); }
@Test public void testRuleFlowActionDialects() throws Exception { builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "test_ActionDialects.rfm" ) ) ); final KieSession session = createKieSession(true, builder.getPackages()); List<String> list = new ArrayList<String>(); session.setGlobal( "list", list ); session.startProcess( "ActionDialects" ); assertEquals( 2, list.size() ); assertEquals( "mvel was here", list.get( 0 ) ); assertEquals( "java was here", list.get( 1 ) ); }
@Test public void testRuleFlow() throws Exception { builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.drl" ) ) ); builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.rfm" ) ) ); KieSession workingMemory = createKieSession(true, builder.getPackages()); final List<String> list = new ArrayList<String>(); workingMemory.setGlobal( "list", list ); workingMemory.fireAllRules(); assertEquals( 0, list.size() ); final ProcessInstance processInstance = workingMemory.startProcess( "0" ); assertEquals( ProcessInstance.STATE_COMPLETED, processInstance.getState() ); assertEquals( 4, list.size() ); assertEquals( "Rule1", list.get( 0 ) ); list.subList(1,2).contains( "Rule2" ); list.subList(1,2).contains( "Rule3" ); assertEquals( "Rule4", list.get( 3 ) ); }
@Test public void testRuleFlowInPackage() throws Exception { builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.drl" ) ) ); builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "ruleflow.rfm" ) ) ); final KieSession workingMemory = createKieSession(true, builder.getPackages()); final List<String> list = new ArrayList<String>(); workingMemory.setGlobal( "list", list ); workingMemory.fireAllRules(); assertEquals( 0, list.size() ); final ProcessInstance processInstance = workingMemory.startProcess( "0" ); assertEquals( ProcessInstance.STATE_COMPLETED, processInstance.getState() ); assertEquals( 4, list.size() ); assertEquals( "Rule1", list.get( 0 ) ); list.subList(1,2).contains( "Rule2" ); list.subList(1,2).contains( "Rule3" ); assertEquals( "Rule4", list.get( 3 ) ); }
builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "ruleflow40.rfm" ) ) );
builder.addRuleFlow( new InputStreamReader( in ) ); InternalKnowledgePackage pkg = builder.getPackage("com.sample"); assertNotNull( pkg );
@Test public void testIncorrectTimerNode() throws Exception { Reader source = new StringReader( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<process xmlns=\"http://drools.org/drools-5.0/process\"\n" + " xmlns:xs=\"http://www.w3.org/2001/XMLSchema-instance\"\n" + " xs:schemaLocation=\"http://drools.org/drools-5.0/process drools-processes-5.0.xsd\"\n" + " type=\"RuleFlow\" name=\"flow\" id=\"org.drools.timer\" package-name=\"org.drools\" version=\"1\" >\n" + "\n" + " <header>\n" + " </header>\n" + "\n" + " <nodes>\n" + " <start id=\"1\" name=\"Start\" />\n" + " <end id=\"2\" name=\"End\" />\n" + " <timerNode id=\"3\" name=\"Timer\" delay=\"800msdss\" period=\"200mssds\" />\n" + " </nodes>\n" + "\n" + " <connections>\n" + " <connection from=\"1\" to=\"3\" />\n" + " <connection from=\"3\" to=\"2\" />\n" + " </connections>\n" + "\n" + "</process>"); builder.addRuleFlow(source); assertEquals(2, builder.getErrors().size()); for (DroolsError error: builder.getErrors().getErrors()) { logger.error(error.toString()); } }
@Test public void testRuleFlow() throws Exception { InputStream in = this.getClass().getResourceAsStream( "/org/jbpm/integrationtests/ruleflow.rfm" ); assertNotNull( in ); builder.addPackage( new PackageDescr( "com.sample" ) ); builder.addRuleFlow( new InputStreamReader( in ) ); InternalKnowledgePackage pkg = builder.getPackage("com.sample"); assertNotNull( pkg ); Map<String, Process> flows = pkg.getRuleFlows(); assertNotNull( flows ); assertEquals( 1, flows.size() ); assertTrue( flows.containsKey( "0" ) ); Process p = (Process) flows.get( "0" ); assertTrue( p instanceof WorkflowProcessImpl ); //now serialization InternalKnowledgePackage pkg2 = (InternalKnowledgePackage) DroolsStreamUtils.streamIn( DroolsStreamUtils.streamOut( pkg ) ); assertNotNull( pkg2 ); flows = pkg2.getRuleFlows(); assertNotNull( flows ); assertEquals( 1, flows.size() ); assertTrue( flows.containsKey( "0" ) ); p = (Process) flows.get( "0" ); assertTrue( p instanceof WorkflowProcessImpl ); }
@Test public void testInternalNodeSignalEvent() { Reader source = new StringReader(process); builder.addRuleFlow(source); KieSession session = createKieSession(builder.getPackages()); final List<ProcessEvent> processEventList = new ArrayList<ProcessEvent>(); final ProcessEventListener listener = createProcessEventListener(processEventList); ((InternalWorkingMemory)session).getProcessRuntime().addEventListener(listener); ProcessInstance processInstance = ((InternalWorkingMemory)session).getProcessRuntime().startProcess("org.drools.core.event"); assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); assertEquals("MyValue", ((VariableScopeInstance) ((org.jbpm.process.instance.ProcessInstance) processInstance) .getContextInstance(VariableScope.VARIABLE_SCOPE)).getVariable("MyVar")); assertEquals( 28, processEventList.size() ); for (ProcessEvent e: processEventList) { logger.debug(e.toString()); } assertEquals( "org.drools.core.event", ((ProcessStartedEvent) processEventList.get(2)).getProcessInstance().getProcessId()); }
"\n" + "</process>"); builder.addRuleFlow(source);
"\n" + "</process>"); builder.addRuleFlow(source); KieSession session = createKieSession(builder.getPackages()); ProcessInstance processInstance = ( ProcessInstance ) session.startProcess("org.drools.exception");
@Test public void testRuleFlowClear() throws Exception { builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ruleflowClear.drl" ) ) ); builder.addRuleFlow( new InputStreamReader( getClass().getResourceAsStream( "test_ruleflowClear.rfm" ) ) );
"\n" + "</process>"); builder.addRuleFlow(source); PackageBuilderErrors errors = builder.getErrors(); if (errors != null && !errors.isEmpty()) {
"\n" + "</process>"); builder.addRuleFlow(source);