[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