[jboss-svn-commits] JBL Code SVN: r5132 - in labs/jbossrules/trunk: drools-compiler/src/test/java/org/drools/integrationtests drools-compiler/src/test/resources/org/drools/integrationtests drools-core/src/main/java/org/drools drools-core/src/main/java/org/drools/reteoo

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Jul 17 22:09:38 EDT 2006


Author: tirelli
Date: 2006-07-17 22:09:18 -0400 (Mon, 17 Jul 2006)
New Revision: 5132

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Query.drl
Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/QueryResults.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
Log:
Fixing JBRULES-372:

  * Fixing column offset adjustment when using queries
  * Fixing mapping construction in QueryResults
  * Adding test case



Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2006-07-17 23:36:38 UTC (rev 5131)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2006-07-18 02:09:18 UTC (rev 5132)
@@ -28,30 +28,29 @@
 import java.io.StringReader;
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 import junit.framework.Assert;
 import junit.framework.TestCase;
 
+import org.drools.AssertedObject;
 import org.drools.Cell;
 import org.drools.Cheese;
 import org.drools.CheeseEqual;
 import org.drools.Cheesery;
 import org.drools.FactHandle;
-//import org.drools.IndexedNumber;
-import org.drools.AssertedObject;
 import org.drools.IndexedNumber;
 import org.drools.Person;
 import org.drools.PersonInterface;
 import org.drools.Precondition;
+import org.drools.QueryResult;
 import org.drools.QueryResults;
 import org.drools.RuleBase;
 import org.drools.Sensor;
 import org.drools.State;
 import org.drools.TestParam;
 import org.drools.WorkingMemory;
-import org.drools.audit.WorkingMemoryFileLogger;
-import org.drools.audit.WorkingMemoryLogger;
 import org.drools.compiler.DrlParser;
 import org.drools.compiler.DroolsError;
 import org.drools.compiler.DroolsParserException;
@@ -64,8 +63,6 @@
 import org.drools.event.AfterActivationFiredEvent;
 import org.drools.event.AgendaEventListener;
 import org.drools.event.BeforeActivationFiredEvent;
-import org.drools.event.DebugAgendaEventListener;
-import org.drools.event.DebugWorkingMemoryEventListener;
 import org.drools.event.DefaultAgendaEventListener;
 import org.drools.integrationtests.helloworld.Message;
 import org.drools.lang.DrlDumper;
@@ -2554,5 +2551,36 @@
         }
     }
     
+    public void testQuery2() {
+        try {
+            final PackageBuilder builder = new PackageBuilder();
+            builder.addPackageFromDrl( new InputStreamReader(  getClass().getResourceAsStream( "test_Query.drl" )  ) );
+  
+            final RuleBase ruleBase = getRuleBase();
+            ruleBase.addPackage( builder.getPackage() );
+  
+            final WorkingMemory workingMemory = ruleBase.newWorkingMemory();
+            workingMemory.fireAllRules();
 
+            QueryResults results = workingMemory.getQueryResults( "assertedobjquery" );
+
+            if (results==null || !results.iterator().hasNext()) {
+                Assert.fail("The stated query should return a result");
+            } else {
+                int counter = 0;
+                for ( Iterator it = results.iterator(); it.hasNext(); ) {
+                    QueryResult result = ( QueryResult )it.next();;
+                    AssertedObject assertedObject=(AssertedObject)result.get( "assertedobj" );
+                    Assert.assertNotNull( "Query result is not expected to be null", assertedObject );
+                    counter++;
+                }
+                Assert.assertEquals( "Expecting a single result from the query", 1, counter );
+            }             
+            
+        } catch ( Exception e ) {
+            Assert.fail( "Retrieving query results should not throw any exception: "+e.getMessage() );
+        }
+    }
+    
+
 }

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Query.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Query.drl	2006-07-17 23:36:38 UTC (rev 5131)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Query.drl	2006-07-18 02:09:18 UTC (rev 5132)
@@ -0,0 +1,14 @@
+package org.drools.integrationtests;
+
+import org.drools.AssertedObject;
+
+rule rule1
+  when
+  then
+    assert( new AssertedObject( "value1") );
+    assert( new AssertedObject( "value2") );
+end
+
+query "assertedobjquery"
+    assertedobj : AssertedObject( value=="value1" )
+end 
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Query.drl
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:eol-style
   + native

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/QueryResults.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/QueryResults.java	2006-07-17 23:36:38 UTC (rev 5131)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/QueryResults.java	2006-07-18 02:09:18 UTC (rev 5132)
@@ -45,7 +45,7 @@
         final Map map = new HashMap( declarations.length );
         for ( int i = 0, length = declarations.length; i < length; i++ ) {
             map.put( declarations[i].getIdentifier(),
-                     declarations );
+                     declarations[i] );
         }
         this.declarations = map;
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java	2006-07-17 23:36:38 UTC (rev 5131)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java	2006-07-18 02:09:18 UTC (rev 5132)
@@ -331,6 +331,9 @@
     }
 
     private void attachQuery(final String queryName) {
+        // incrementing offset adjustment, since we are adding a new ObjectNodeType as our
+        // first column
+        this.currentOffsetAdjustment += 1;
         final ClassObjectType queryObjectType = new ClassObjectType( DroolsQuery.class );
         final ObjectTypeNode queryObjectTypeNode = new ObjectTypeNode( this.id++,
                                                                        this.sinklistFactory.newObjectSinkList( ObjectTypeNode.class ),




More information about the jboss-svn-commits mailing list