[jboss-svn-commits] JBL Code SVN: r30164 - labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Nov 15 20:12:21 EST 2009


Author: mark.proctor at jboss.com
Date: 2009-11-15 20:12:20 -0500 (Sun, 15 Nov 2009)
New Revision: 30164

Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
Log:
JBRULES-2341 Build Error Across EntryPoints And Froms
-added failing test

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2009-11-16 00:41:33 UTC (rev 30163)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2009-11-16 01:12:20 UTC (rev 30164)
@@ -6931,7 +6931,51 @@
         t1.stop();
         assertEquals( 1, list.size() ); 
     }    
+    
+    public void testNetworkBuildErrorAcrossEntryPointsAndFroms() throws Exception {
+        String rule1 = "package org.drools\n";
+        rule1 += "global java.util.List list\n";
+        rule1 += "rule rule1\n";
+        rule1 += "when\n";
+        rule1 += "         Cheese() from entry-point \"testep\"\n";        
+        rule1 += "    $p : Person() from list\n";
+        rule1 += "then \n";
+        rule1 += "  list.add( \"rule1\" ) ;\n";
+        rule1 += "  insert( $p );\n";
+        rule1 += "end\n";
+        rule1 += "rule rule2\n";
+        rule1 += "when\n";
+        rule1 += "  $p : Person() \n";
+        rule1 += "then \n";
+        rule1 += "  list.add( \"rule2\" ) ;\n";
+        rule1 += "end\n";        
 
+        KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+        kbuilder.add( ResourceFactory.newByteArrayResource( rule1.getBytes() ), ResourceType.DRL );
+        
+        if ( kbuilder.hasErrors() ) {
+            System.out.println( kbuilder.getErrors() );
+            throw new RuntimeException( kbuilder.getErrors().toString() );
+        }
+        
+        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+        
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+        
+        final StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+        final WorkingMemoryEntryPoint ep = ksession.getWorkingMemoryEntryPoint( "testep" );
+        
+        List list = new ArrayList();
+        ksession.setGlobal( "list", list );
+        
+        list.add( new Person( "darth") );
+        ep.insert( new Cheese("cheddar") );        
+
+        
+        ksession.fireAllRules();
+        assertEquals( 3, list.size() ); 
+    }        
+
     public void testDroolsQueryCleanup() {
         KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
         kbuilder.add( ResourceFactory.newClassPathResource( "test_QueryMemoryLeak.drl",



More information about the jboss-svn-commits mailing list