[jboss-svn-commits] JBL Code SVN: r29700 - in labs/jbossrules/trunk/drools-compiler/src/test: resources/org/drools/integrationtests and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 20 12:35:36 EDT 2009


Author: tirelli
Date: 2009-10-20 12:35:36 -0400 (Tue, 20 Oct 2009)
New Revision: 29700

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Forall2.drl
Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java
Log:
Adding a forall test case

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java	2009-10-20 15:49:18 UTC (rev 29699)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java	2009-10-20 16:35:36 UTC (rev 29700)
@@ -478,6 +478,46 @@
                       list.size() );
     }
 
+    public void testForall2() throws Exception {
+        final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+        kbuilder.add( ResourceFactory.newInputStreamResource( getClass().getResourceAsStream( "test_Forall2.drl" ) ),
+                      ResourceType.DRL );
+        assertFalse( kbuilder.getErrors().toString(),
+                     kbuilder.hasErrors() );
+
+        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+        final StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+        final List<String> list = new ArrayList<String>();
+        ksession.setGlobal( "results",
+                            list );
+
+        final State state = new State( "SP" );
+        ksession.insert( state );
+
+        final Person bob = new Person( "Bob" );
+        bob.setStatus( state.getState() );
+        bob.setAlive( true );
+        ksession.insert( bob );
+
+        ksession.fireAllRules();
+
+        assertEquals( 0,
+                      list.size() );
+
+        final State qc = new State( "QC" );
+        ksession.insert( qc );
+        final Person john = new Person( "John" );
+        john.setStatus( qc.getState() );
+        john.setAlive( false );
+
+        ksession.fireAllRules();
+
+        assertEquals( 1,
+                      list.size() );
+    }
+
     public void testRemoveIdentitiesSubNetwork() throws Exception {
         final PackageBuilder builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_removeIdentitiesSubNetwork.drl" ) ) );

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Forall2.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Forall2.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Forall2.drl	2009-10-20 16:35:36 UTC (rev 29700)
@@ -0,0 +1,12 @@
+package org.drools;
+
+global java.util.List results;
+
+rule "test nested CEs"	
+	when
+	    State( $state : state )
+	    forall( $p : Person( status == $state )
+	            Person( this == $p, alive == false ) )
+	then 
+		results.add("OK");		
+end
\ No newline at end of file



More information about the jboss-svn-commits mailing list