[jboss-svn-commits] JBL Code SVN: r7257 - in labs/jbossrules/trunk/drools-core/src: main/java/org/drools/reteoo test/java/org/drools/examples test/java/org/drools/reteoo test/java/org/drools/rule test/java/org/drools/spi

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 31 16:39:52 EST 2006


Author: tirelli
Date: 2006-10-31 16:39:36 -0500 (Tue, 31 Oct 2006)
New Revision: 7257

Removed:
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/waltz/
Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/EvalConditionNode.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AccumulateNodeTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AddRemoveTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/EvalConditionNodeTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/JoinNodeTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/MockTupleSource.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/NotNodeTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ObjectTypeNodeTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/PropertyChangeListenerTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ReteTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/OrTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockConstraint.java
Log:
Fixing unit tests

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/EvalConditionNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/EvalConditionNode.java	2006-10-31 21:39:15 UTC (rev 7256)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/EvalConditionNode.java	2006-10-31 21:39:36 UTC (rev 7257)
@@ -16,10 +16,6 @@
  * limitations under the License.
  */
 
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
 import org.drools.RuleBaseConfiguration;
 import org.drools.common.BaseNode;
 import org.drools.common.InternalWorkingMemory;
@@ -27,6 +23,8 @@
 import org.drools.common.PropagationContextImpl;
 import org.drools.rule.EvalCondition;
 import org.drools.spi.PropagationContext;
+import org.drools.util.Iterator;
+import org.drools.util.TupleHashTable;
 
 /**
  * Node which filters <code>ReteTuple</code>s.
@@ -144,7 +142,7 @@
                                                           workingMemory );
 
         if ( allowed ) {
-            final List memory = (LinkedList) workingMemory.getNodeMemory( this );
+            final TupleHashTable memory = (TupleHashTable) workingMemory.getNodeMemory( this );
             memory.add( tuple );
 
             this.sink.propagateAssertTuple( tuple,
@@ -156,11 +154,12 @@
     public void retractTuple(final ReteTuple tuple,
                              final PropagationContext context,
                              final InternalWorkingMemory workingMemory) {
-        final List memory = (LinkedList) workingMemory.getNodeMemory( this );
+        final TupleHashTable memory = (TupleHashTable) workingMemory.getNodeMemory( this );
 
         // can we improve that?
-        if ( memory.remove( tuple ) ) {
-            this.sink.propagateRetractTuple( tuple,
+        ReteTuple memTuple = memory.remove( tuple ); 
+        if (  memTuple != null ) {
+            this.sink.propagateRetractTuple( memTuple,
                                              context,
                                              workingMemory );
         }
@@ -194,7 +193,7 @@
     }
 
     public Object createMemory(final RuleBaseConfiguration config) {
-        return new LinkedList();
+        return new TupleHashTable();
     }
 
     /* (non-Javadoc)
@@ -204,10 +203,10 @@
                            final PropagationContext context,
                            final InternalWorkingMemory workingMemory) {
 
-        final List memory = (List) workingMemory.getNodeMemory( this );
+        final TupleHashTable memory = (TupleHashTable) workingMemory.getNodeMemory( this );
 
-        for ( Iterator tupleIter = memory.iterator(); tupleIter.hasNext(); ) {
-            ReteTuple tuple = (ReteTuple) tupleIter.next();
+        final Iterator it = memory.iterator();
+        for ( ReteTuple tuple = (ReteTuple) it.next(); tuple != null; tuple = (ReteTuple) it.next() ) {
             sink.assertTuple( tuple,
                               context,
                               workingMemory );

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AccumulateNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AccumulateNodeTest.java	2006-10-31 21:39:15 UTC (rev 7256)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AccumulateNodeTest.java	2006-10-31 21:39:36 UTC (rev 7257)
@@ -96,9 +96,9 @@
 
         // check memories are empty
         assertEquals( 0,
-                      this.memory.getLeftTupleMemory().size() );
+                      this.memory.getTupleMemory().size() );
         assertEquals( 0,
-                      this.memory.getRightObjectMemory().size() );
+                      this.memory.getFactHandleMemory().size() );
     }
 
     /* (non-Javadoc)
@@ -111,9 +111,10 @@
     /**
      * Test method for {@link org.drools.reteoo.AccumulateNode#updateNewNode(InternalWorkingMemory, org.drools.spi.PropagationContext)}.
      */
-    public void testUpdateNewNode() {
-        this.node.updateNewNode( this.workingMemory,
-                                 this.context );
+    public void testUpdateSink() {
+        this.node.updateSink( this.sink,
+                              this.context,
+                              this.workingMemory );
         Assert.assertEquals( "No tuple should be propagated",
                              0,
                              this.sink.getAsserted().size() );
@@ -132,8 +133,9 @@
         final MockTupleSink otherSink = new MockTupleSink();
 
         this.node.addTupleSink( otherSink );
-        this.node.updateNewNode( this.workingMemory,
-                                 this.context );
+        this.node.updateSink( otherSink,
+                              this.context,
+                              this.workingMemory );
 
         Assert.assertEquals( "Two tuples should have been propagated",
                              2,
@@ -141,36 +143,6 @@
     }
 
     /**
-     * Test method for {@link org.drools.reteoo.AccumulateNode#getPropagatedTuples(org.drools.reteoo.ReteooWorkingMemory, org.drools.reteoo.TupleSink)}.
-     */
-    public void testGetPropagatedTuples() {
-
-        this.node.assertTuple( new ReteTuple( this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" ) ),
-                               this.context,
-                               this.workingMemory );
-        this.node.assertTuple( new ReteTuple( this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese" ) ),
-                               this.context,
-                               this.workingMemory );
-
-        Assert.assertEquals( "Two tuples should have been propagated",
-                             2,
-                             this.sink.getAsserted().size() );
-
-        final Tuple t1 = (Tuple) ((Object[]) this.sink.getAsserted().get( 0 ))[0];
-        final Tuple t2 = (Tuple) ((Object[]) this.sink.getAsserted().get( 1 ))[0];
-
-        final List propagated = this.node.getPropagatedTuples( this.workingMemory,
-                                                         this.sink );
-        Assert.assertEquals( "Wrong Tuple propagated",
-                             t1,
-                             propagated.get( 0 ) );
-        Assert.assertEquals( "Wrong Tuple propagated",
-                             t2,
-                             propagated.get( 1 ) );
-
-    }
-
-    /**
      * Test method for {@link org.drools.reteoo.AccumulateNode#assertTuple(org.drools.reteoo.ReteTuple, org.drools.spi.PropagationContext, org.drools.reteoo.ReteooWorkingMemory)}.
      */
     public void testAssertTuple() {
@@ -183,9 +155,9 @@
                                this.workingMemory );
         // check memories 
         assertEquals( 1,
-                      this.memory.getLeftTupleMemory().size() );
+                      this.memory.getTupleMemory().size() );
         assertEquals( 0,
-                      this.memory.getRightObjectMemory().size() );
+                      this.memory.getFactHandleMemory().size() );
         Assert.assertTrue( "An empty matching objects list should be propagated",
                            this.accumulator.getMatchingObjects().isEmpty() );
 
@@ -197,16 +169,13 @@
                                this.context,
                                this.workingMemory );
         assertEquals( 2,
-                      this.memory.getLeftTupleMemory().size() );
+                      this.memory.getTupleMemory().size() );
         Assert.assertTrue( "An empty matching objects list should be propagated",
                            this.accumulator.getMatchingObjects().isEmpty() );
 
-        final ReteTuple tuple = (ReteTuple) this.memory.getLeftTupleMemory().iterator( this.workingMemory,
-                                                                                       f0 ).next();
-        assertEquals( tuple0,
-                      tuple );
-        assertEquals( tuple1,
-                      tuple.getNext() );
+        TupleMemory memory = this.memory.getTupleMemory();
+        assertTrue( memory.contains( tuple0 ) );
+        assertTrue( memory.contains( tuple1 ) );
 
         Assert.assertEquals( "Two tuples should have been propagated",
                              2,
@@ -235,9 +204,9 @@
                                this.workingMemory );
         // check memories 
         assertEquals( 1,
-                      this.memory.getLeftTupleMemory().size() );
+                      this.memory.getTupleMemory().size() );
         assertEquals( 2,
-                      this.memory.getRightObjectMemory().size() );
+                      this.memory.getFactHandleMemory().size() );
         Assert.assertEquals( "Wrong number of elements in matching objects list ",
                              2,
                              this.accumulator.getMatchingObjects().size() );
@@ -248,17 +217,14 @@
                                this.context,
                                this.workingMemory );
         assertEquals( 2,
-                      this.memory.getLeftTupleMemory().size() );
+                      this.memory.getTupleMemory().size() );
         Assert.assertEquals( "Wrong number of elements in matching objects list ",
                              2,
                              this.accumulator.getMatchingObjects().size() );
 
-        final ReteTuple tuple = (ReteTuple) this.memory.getLeftTupleMemory().iterator( this.workingMemory,
-                                                                                       f0 ).next();
-        assertEquals( tuple0,
-                      tuple );
-        assertEquals( tuple1,
-                      tuple.getNext() );
+        final TupleMemory memory = this.memory.getTupleMemory();
+        assertTrue( memory.contains( tuple0 ) );
+        assertTrue( memory.contains( tuple1 ) );
 
         Assert.assertEquals( "Two tuples should have been propagated",
                              2,
@@ -266,39 +232,6 @@
     }
 
     /**
-     * Test method for {@link org.drools.reteoo.AccumulateNode#modifyTuple(org.drools.reteoo.ReteTuple, org.drools.spi.PropagationContext, org.drools.reteoo.ReteooWorkingMemory)}.
-     */
-    public void testModifyTuple() {
-        final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
-
-        final ReteTuple tuple0 = new ReteTuple( f0 );
-
-        // assert tuple, should add one to left memory
-        this.node.assertTuple( tuple0,
-                               this.context,
-                               this.workingMemory );
-        // check memories 
-        assertEquals( 1,
-                      this.memory.getLeftTupleMemory().size() );
-        assertEquals( 0,
-                      this.memory.getRightObjectMemory().size() );
-        Assert.assertTrue( "An empty matching objects list should be propagated",
-                           this.accumulator.getMatchingObjects().isEmpty() );
-
-        this.node.modifyTuple( tuple0,
-                               this.context,
-                               this.workingMemory );
-        assertEquals( 1,
-                      this.memory.getLeftTupleMemory().size() );
-        assertEquals( 1,
-                      this.sink.getRetracted().size() );
-        assertEquals( 2,
-                      this.sink.getAsserted().size() );
-        Assert.assertTrue( "An empty matching objects list should be propagated",
-                           this.accumulator.getMatchingObjects().isEmpty() );
-    }
-
-    /**
      * Test method for {@link org.drools.reteoo.AccumulateNode#retractTuple(org.drools.reteoo.ReteTuple, org.drools.spi.PropagationContext, org.drools.reteoo.ReteooWorkingMemory)}.
      */
     public void testRetractTuple() {
@@ -312,9 +245,9 @@
                                this.workingMemory );
         // check memories 
         assertEquals( 1,
-                      this.memory.getLeftTupleMemory().size() );
+                      this.memory.getTupleMemory().size() );
         assertEquals( 0,
-                      this.memory.getRightObjectMemory().size() );
+                      this.memory.getFactHandleMemory().size() );
         Assert.assertTrue( "An empty matching objects list should be propagated",
                            this.accumulator.getMatchingObjects().isEmpty() );
 
@@ -322,7 +255,7 @@
                                 this.context,
                                 this.workingMemory );
         assertEquals( 0,
-                      this.memory.getLeftTupleMemory().size() );
+                      this.memory.getTupleMemory().size() );
         assertEquals( 1,
                       this.sink.getRetracted().size() );
         assertEquals( 1,
@@ -345,7 +278,7 @@
 
         // check memory 
         assertEquals( 1,
-                      this.memory.getLeftTupleMemory().size() );
+                      this.memory.getTupleMemory().size() );
         assertEquals( 1,
                       this.sink.getAsserted().size() );
         assertEquals( 0,
@@ -355,7 +288,7 @@
                                 this.context,
                                 this.workingMemory );
         assertEquals( 1,
-                      this.memory.getRightObjectMemory().size() );
+                      this.memory.getFactHandleMemory().size() );
         assertEquals( 2,
                       this.sink.getAsserted().size() );
         assertEquals( 1,
@@ -366,7 +299,7 @@
                                 this.workingMemory );
 
         assertEquals( 2,
-                      this.memory.getRightObjectMemory().size() );
+                      this.memory.getFactHandleMemory().size() );
         assertEquals( 3,
                       this.sink.getAsserted().size() );
         assertEquals( 2,
@@ -375,60 +308,6 @@
     }
 
     /**
-     * Test method for {@link org.drools.reteoo.AccumulateNode#modifyObject(InternalFactHandle, org.drools.spi.PropagationContext, InternalWorkingMemory)}.
-     */
-    public void testModifyObject() {
-        final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
-        final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese" );
-
-        final ReteTuple tuple0 = new ReteTuple( f0 );
-
-        this.node.assertObject( f0,
-                                this.context,
-                                this.workingMemory );
-        this.node.assertObject( f1,
-                                this.context,
-                                this.workingMemory );
-
-        // assert tuple, should add one to left memory
-        this.node.assertTuple( tuple0,
-                               this.context,
-                               this.workingMemory );
-        // check memories 
-        assertEquals( 1,
-                      this.memory.getLeftTupleMemory().size() );
-        assertEquals( 2,
-                      this.memory.getRightObjectMemory().size() );
-        assertEquals( 1,
-                      this.sink.getAsserted().size() );
-        assertEquals( 0,
-                      this.sink.getRetracted().size() );
-        Assert.assertEquals( "Wrong number of elements in matching objects list ",
-                             2,
-                             this.accumulator.getMatchingObjects().size() );
-
-        // assert tuple, should add left memory 
-        this.node.modifyObject( f0,
-                                this.context,
-                                this.workingMemory );
-        assertEquals( 2,
-                      this.memory.getRightObjectMemory().size() );
-        assertEquals( 2,
-                      this.sink.getAsserted().size() );
-        assertEquals( 1,
-                      this.sink.getRetracted().size() );
-        Assert.assertEquals( "Wrong number of elements in matching objects list ",
-                             2,
-                             this.accumulator.getMatchingObjects().size() );
-
-        final Tuple tuple = (Tuple) this.memory.getLeftTupleMemory().iterator( this.workingMemory,
-                                                                               f0 ).next();
-        assertEquals( tuple0,
-                      tuple );
-
-    }
-
-    /**
      * Test method for {@link org.drools.reteoo.AccumulateNode#retractObject(InternalFactHandle, org.drools.spi.PropagationContext, InternalWorkingMemory)}.
      */
     public void testRetractObject() {
@@ -444,7 +323,7 @@
                                 this.context,
                                 this.workingMemory );
         assertEquals( 2,
-                      this.memory.getRightObjectMemory().size() );
+                      this.memory.getFactHandleMemory().size() );
 
         // assert tuple, should add one to left memory
         this.node.assertTuple( tuple0,
@@ -453,7 +332,7 @@
 
         // check memory 
         assertEquals( 1,
-                      this.memory.getLeftTupleMemory().size() );
+                      this.memory.getTupleMemory().size() );
         assertEquals( 0,
                       this.sink.getRetracted().size() );
         assertEquals( 1,
@@ -465,7 +344,7 @@
                                  this.context,
                                  this.workingMemory );
         assertEquals( 1,
-                      this.memory.getRightObjectMemory().size() );
+                      this.memory.getFactHandleMemory().size() );
         assertEquals( 1,
                       this.sink.getRetracted().size() );
         assertEquals( 2,
@@ -477,7 +356,7 @@
                                  this.context,
                                  this.workingMemory );
         assertEquals( 0,
-                      this.memory.getRightObjectMemory().size() );
+                      this.memory.getFactHandleMemory().size() );
         assertEquals( 2,
                       this.sink.getRetracted().size() );
         assertEquals( 3,
@@ -487,31 +366,6 @@
 
     }
 
-    public void testAttach() throws Exception {
-        assertEquals( 15,
-                      this.node.getId() );
-
-        assertLength( 0,
-                      this.objectSource.getObjectSinksAsList() );
-
-        assertLength( 0,
-                      this.tupleSource.getTupleSinks() );
-
-        this.node.attach();
-
-        assertLength( 1,
-                      this.objectSource.getObjectSinksAsList() );
-
-        assertLength( 1,
-                      this.tupleSource.getTupleSinks() );
-
-        assertSame( this.node,
-                    this.objectSource.getObjectSinks().getLastObjectSink() );
-
-        assertSame( this.node,
-                    this.tupleSource.getTupleSinks().get( 0 ) );
-    }
-
     public void testMemory() {
         final ReteooWorkingMemory workingMemory = new ReteooWorkingMemory( 1,
                                                                            (ReteooRuleBase) RuleBaseFactory.newRuleBase() );

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AddRemoveTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AddRemoveTest.java	2006-10-31 21:39:15 UTC (rev 7256)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AddRemoveTest.java	2006-10-31 21:39:36 UTC (rev 7257)
@@ -30,7 +30,8 @@
         final Rete rete = new Rete();
         final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 0,
                                                                   new ClassObjectType( Object.class ),
-                                                                  rete );
+                                                                  rete,
+                                                                  1 );
         objectTypeNode.attach();
 
         final MockObjectSink sink = new MockObjectSink();

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java	2006-10-31 21:39:15 UTC (rev 7256)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java	2006-10-31 21:39:36 UTC (rev 7257)
@@ -23,6 +23,7 @@
 import org.drools.FactException;
 import org.drools.RuleBaseFactory;
 import org.drools.base.ClassFieldExtractor;
+import org.drools.base.FieldFactory;
 import org.drools.base.ValueType;
 import org.drools.base.evaluators.Operator;
 import org.drools.common.DefaultFactHandle;
@@ -32,7 +33,6 @@
 import org.drools.spi.Evaluator;
 import org.drools.spi.FieldExtractor;
 import org.drools.spi.FieldValue;
-import org.drools.spi.MockField;
 import org.drools.spi.PropagationContext;
 import org.drools.util.FactHashTable;
 
@@ -65,7 +65,7 @@
         final ClassFieldExtractor extractor = new ClassFieldExtractor( Cheese.class,
                                                                        "type" );
 
-        final FieldValue field = new MockField( "cheddar" );
+        final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
 
         final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
         final LiteralConstraint constraint = new LiteralConstraint( extractor,
@@ -76,7 +76,8 @@
         final AlphaNode alphaNode = new AlphaNode( 2,
                                                    constraint,
                                                    source,
-                                                   true ); // has memory
+                                                   true,
+                                                   3); // has memory
 
         final MockObjectSink sink = new MockObjectSink();
         alphaNode.addObjectSink( sink );
@@ -145,7 +146,7 @@
         final ClassFieldExtractor extractor = new ClassFieldExtractor( Cheese.class,
                                                                        "type" );
 
-        final FieldValue field = new MockField( "cheddar" );
+        final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
 
         final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
         final LiteralConstraint constraint = new LiteralConstraint( extractor,
@@ -156,7 +157,8 @@
         final AlphaNode alphaNode = new AlphaNode( 2,
                                                    constraint,
                                                    source,
-                                                   false ); // no memory
+                                                   false,
+                                                   3); // no memory
 
         final MockObjectSink sink = new MockObjectSink();
         alphaNode.addObjectSink( sink );
@@ -230,7 +232,7 @@
         final FieldExtractor extractor = new ClassFieldExtractor( Cheese.class,
                                                                   "type" );
 
-        final FieldValue field = new MockField( "cheddar" );
+        final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
 
         final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
         final LiteralConstraint constraint = new LiteralConstraint( extractor,
@@ -291,7 +293,7 @@
         final FieldExtractor extractor = new ClassFieldExtractor( Cheese.class,
                                                                   "type" );
 
-        final FieldValue field = new MockField( "cheddar" );
+        final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
 
         final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
         final LiteralConstraint constraint = new LiteralConstraint( extractor,
@@ -301,7 +303,8 @@
         final AlphaNode alphaNode = new AlphaNode( 2,
                                                    constraint,
                                                    source,
-                                                   true ); // has memory
+                                                   true,
+                                                   3); // has memory
         final MockObjectSink sink = new MockObjectSink();
         alphaNode.addObjectSink( sink );
 
@@ -368,7 +371,7 @@
         final FieldExtractor extractor = new ClassFieldExtractor( Cheese.class,
                                                                   "type" );
 
-        final FieldValue field = new MockField( "cheddar" );
+        final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
 
         final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
         final LiteralConstraint constraint = new LiteralConstraint( extractor,
@@ -378,7 +381,8 @@
         final AlphaNode alphaNode = new AlphaNode( 2,
                                                    constraint,
                                                    source,
-                                                   false ); // no memory
+                                                   false,
+                                                   3 ); // no memory
         final MockObjectSink sink = new MockObjectSink();
         alphaNode.addObjectSink( sink );
 
@@ -450,7 +454,7 @@
         final FieldExtractor extractor = new ClassFieldExtractor( Cheese.class,
                                                                   "type" );
 
-        final FieldValue field = new MockField( "cheddar" );
+        final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
 
         final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
         final LiteralConstraint constraint = new LiteralConstraint( extractor,
@@ -460,7 +464,8 @@
         final AlphaNode alphaNode = new AlphaNode( 2,
                                                    constraint,
                                                    source,
-                                                   true ); // has memory
+                                                   true,
+                                                   3); // has memory
 
         alphaNode.attach();
 
@@ -516,7 +521,7 @@
         final FieldExtractor extractor = new ClassFieldExtractor( Cheese.class,
                                                                   "type" );
 
-        final FieldValue field = new MockField( "cheddar" );
+        final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
 
         final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
         final LiteralConstraint constraint = new LiteralConstraint( extractor,
@@ -526,7 +531,8 @@
         final AlphaNode alphaNode = new AlphaNode( 2,
                                                    constraint,
                                                    source,
-                                                   false ); // no memory
+                                                   false,
+                                                   3 ); // no memory
 
         alphaNode.attach();
 

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/EvalConditionNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/EvalConditionNodeTest.java	2006-10-31 21:39:15 UTC (rev 7256)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/EvalConditionNodeTest.java	2006-10-31 21:39:36 UTC (rev 7257)
@@ -23,6 +23,7 @@
 import org.drools.common.PropagationContextImpl;
 import org.drools.spi.PropagationContext;
 import org.drools.util.LinkedList;
+import org.drools.util.TupleHashTable;
 
 public class EvalConditionNodeTest extends DroolsTestCase {
     private PropagationContext  context;
@@ -52,16 +53,14 @@
         assertEquals( 18,
                       node.getId() );
 
-        assertLength( 0,
-                      source.getTupleSinks() );
+        assertEquals( 0,
+                      source.getAttached() );
 
         node.attach();
 
-        assertLength( 1,
-                      source.getTupleSinks() );
+        assertEquals( 1,
+                      source.getAttached() );
 
-        assertSame( node,
-                    source.getTupleSinks().get( 0 ) );
     }
 
     public void testMemory() {
@@ -74,7 +73,7 @@
                                                               source,
                                                               new MockEvalCondition( true ) );
 
-        final LinkedList memory = (LinkedList) workingMemory.getNodeMemory( node );
+        final TupleHashTable memory = (TupleHashTable) workingMemory.getNodeMemory( node );
 
         assertNotNull( memory );
     }
@@ -117,16 +116,13 @@
                           this.workingMemory );
 
         // Check memory was populated
-        final LinkedList memory = (LinkedList) this.workingMemory.getNodeMemory( node );
+        final TupleHashTable memory = (TupleHashTable) this.workingMemory.getNodeMemory( node );
 
         assertEquals( 2,
                       memory.size() );
 
-        // Check list is in the correct order
-        assertEquals( tuple0,
-                      memory.getFirst() );
-        assertEquals( tuple1,
-                      tuple0.getNext() );
+        assertTrue( memory.contains( tuple0 ) );
+        assertTrue( memory.contains( tuple1 ) );
 
         // make sure assertions were propagated
         assertEquals( 2,
@@ -166,14 +162,12 @@
                           this.workingMemory );
 
         // Check memory was populated
-        final LinkedList memory = (LinkedList) this.workingMemory.getNodeMemory( node );
+        final TupleHashTable memory = (TupleHashTable) this.workingMemory.getNodeMemory( node );
 
         assertEquals( 2,
                       memory.size() );
-        assertEquals( tuple0,
-                      memory.getFirst() );
-        assertEquals( tuple1,
-                      tuple0.getNext() );
+        assertTrue( memory.contains( tuple0 ) );
+        assertTrue( memory.contains( tuple1 ) );
 
         // make sure assertions were propagated
         assertEquals( 2,
@@ -188,8 +182,7 @@
         assertEquals( 1,
                       memory.size() );
 
-        assertEquals( tuple1,
-                      memory.getFirst() );
+        assertTrue( memory.contains( tuple1 ) );
 
         // make sure retractions were propagated
         assertEquals( 1,
@@ -209,164 +202,6 @@
                       sink.getRetracted().size() );
     }
 
-    public void testAssertedAllowedThenModifyAllowed() throws FactException {
-        final MockEvalCondition eval = new MockEvalCondition( true );
-
-        // Create a test node that always returns false 
-        final EvalConditionNode node = new EvalConditionNode( 1,
-                                                              new MockTupleSource( 15 ),
-                                                              eval );
-
-        final MockTupleSink sink = new MockTupleSink();
-        node.addTupleSink( sink );
-
-        // Create the Tuple
-        final DefaultFactHandle f0 = new DefaultFactHandle( 0,
-                                                            "stilton" );
-        final ReteTuple tuple0 = new ReteTuple( f0 );
-
-        // Tuple should pass and propagate 
-        node.assertTuple( tuple0,
-                          this.context,
-                          this.workingMemory );
-
-        // we create and retract two tuples, checking the linkedtuples is null for JBRULES-246 "NPE on retract()"        
-        // Create the Tuple
-        final DefaultFactHandle f1 = new DefaultFactHandle( 1,
-                                                            "cheddar" );
-        final ReteTuple tuple1 = new ReteTuple( f1 );
-
-        // Tuple should pass and propagate 
-        node.assertTuple( tuple1,
-                          this.context,
-                          this.workingMemory );
-
-        // Check memory was populated
-        final LinkedList memory = (LinkedList) this.workingMemory.getNodeMemory( node );
-
-        assertEquals( 2,
-                      memory.size() );
-        assertEquals( tuple0,
-                      memory.getFirst() );
-        assertEquals( tuple1,
-                      tuple0.getNext() );
-
-        // make sure assertions were propagated
-        assertEquals( 2,
-                      sink.getAsserted().size() );
-
-        // Now test that the fact is modified correctly
-        node.modifyTuple( tuple0,
-                          this.context,
-                          this.workingMemory );
-        assertEquals( 2,
-                      memory.size() );
-
-        // notice the order is reversed, as tuple0 was modified last and is more recent
-        assertEquals( tuple1,
-                      memory.getFirst() );
-
-        assertEquals( tuple0,
-                      tuple1.getNext() );
-
-        // make sure modifications were propagated
-        assertEquals( 1,
-                      sink.getModified().size() );
-
-        // Now test that the fact is modified correctly
-        node.modifyTuple( tuple1,
-                          this.context,
-                          this.workingMemory );
-
-        // notice the order is reversed, as tuple0 was modified last and is more recent
-        assertEquals( tuple0,
-                      memory.getFirst() );
-
-        assertEquals( tuple1,
-                      tuple0.getNext() );
-
-        // make sure modifications were propagated
-        assertEquals( 2,
-                      sink.getModified().size() );
-    }
-
-    public void testAssertedAllowedThenModifyNotAllowed() throws FactException {
-        final MockEvalCondition eval = new MockEvalCondition( true );
-
-        // Create a test node that always returns false 
-        final EvalConditionNode node = new EvalConditionNode( 1,
-                                                              new MockTupleSource( 15 ),
-                                                              eval );
-
-        final MockTupleSink sink = new MockTupleSink();
-        node.addTupleSink( sink );
-
-        // Create the Tuple
-        final DefaultFactHandle f0 = new DefaultFactHandle( 0,
-                                                            "stilton" );
-        final ReteTuple tuple0 = new ReteTuple( f0 );
-
-        // Tuple should pass and propagate 
-        node.assertTuple( tuple0,
-                          this.context,
-                          this.workingMemory );
-
-        // we create and retract two tuples, checking the linkedtuples is null for JBRULES-246 "NPE on retract()"        
-        // Create the Tuple
-        final DefaultFactHandle f1 = new DefaultFactHandle( 1,
-                                                            "cheddar" );
-        final ReteTuple tuple1 = new ReteTuple( f1 );
-
-        // Tuple should pass and propagate 
-        node.assertTuple( tuple1,
-                          this.context,
-                          this.workingMemory );
-
-        // Check memory was populated
-        final LinkedList memory = (LinkedList) this.workingMemory.getNodeMemory( node );
-
-        assertEquals( 2,
-                      memory.size() );
-        assertEquals( tuple0,
-                      memory.getFirst() );
-        assertEquals( tuple1,
-                      tuple0.getNext() );
-
-        // make sure assertions were propagated
-        assertEquals( 2,
-                      sink.getAsserted().size() );
-
-        eval.setIsAllowed( false );
-
-        // Now test that the fact is modified correctly
-        node.modifyTuple( tuple0,
-                          this.context,
-                          this.workingMemory );
-
-        // tuple1 has now been removed
-        assertEquals( 1,
-                      memory.size() );
-        assertEquals( tuple1,
-                      memory.getFirst() );
-
-        // make sure modifications were propagated as a retraction, as it is now no longer passing
-        assertEquals( 1,
-                      sink.getRetracted().size() );
-
-        // Now test that the fact is modified correctly
-        node.modifyTuple( tuple1,
-                          this.context,
-                          this.workingMemory );
-
-        // tuple0 has now been removed
-        assertEquals( 0,
-                      memory.size() );
-
-        // make sure modifications were propagated as a retraction
-        assertEquals( 2,
-                      sink.getRetracted().size() );
-    }
-
     public void testAssertedNotAllowed() throws FactException {
         final MockEvalCondition eval = new MockEvalCondition( false );
 
@@ -399,7 +234,7 @@
                           this.workingMemory );
 
         // Check memory was not populated
-        final LinkedList memory = (LinkedList) this.workingMemory.getNodeMemory( node );
+        final TupleHashTable memory = (TupleHashTable) this.workingMemory.getNodeMemory( node );
 
         assertEquals( 0,
                       memory.size() );
@@ -408,150 +243,9 @@
         assertEquals( 0,
                       sink.getAsserted().size() );
         assertEquals( 0,
-                      sink.getModified().size() );
-        assertEquals( 0,
                       sink.getRetracted().size() );
     }
 
-    public void testAssertedNotAllowedThenModifyNotAllowed() throws FactException {
-        final MockEvalCondition eval = new MockEvalCondition( false );
-
-        // Create a test node that always returns false 
-        final EvalConditionNode node = new EvalConditionNode( 1,
-                                                              new MockTupleSource( 15 ),
-                                                              eval );
-
-        final MockTupleSink sink = new MockTupleSink();
-        node.addTupleSink( sink );
-
-        // Create the Tuple
-        final DefaultFactHandle f0 = new DefaultFactHandle( 0,
-                                                            "stilton" );
-        final ReteTuple tuple0 = new ReteTuple( f0 );
-
-        // Tuple should fail and not propagate
-        node.assertTuple( tuple0,
-                          this.context,
-                          this.workingMemory );
-
-        // Create the Tuple
-        final DefaultFactHandle f1 = new DefaultFactHandle( 1,
-                                                            "chedddar" );
-        final ReteTuple tuple1 = new ReteTuple( f1 );
-
-        // Tuple should fail and not propagate 
-        node.assertTuple( tuple1,
-                          this.context,
-                          this.workingMemory );
-
-        // Check memory was not populated
-        final LinkedList memory = (LinkedList) this.workingMemory.getNodeMemory( node );
-
-        assertEquals( 0,
-                      memory.size() );
-
-        // Now test that the fact is modified correctly
-        node.modifyTuple( tuple0,
-                          this.context,
-                          this.workingMemory );
-        assertEquals( 0,
-                      memory.size() );
-
-        // Now test that the fact is modified correctly
-        node.modifyTuple( tuple1,
-                          this.context,
-                          this.workingMemory );
-
-        // make sure the memory wasn't populated
-        assertEquals( 0,
-                      memory.size() );
-
-        // test no propagations
-        assertEquals( 0,
-                      sink.getAsserted().size() );
-        assertEquals( 0,
-                      sink.getModified().size() );
-        assertEquals( 0,
-                      sink.getRetracted().size() );
-    }
-
-    public void testAssertedNotAllowedThenModifyAllowed() throws FactException {
-        final MockEvalCondition eval = new MockEvalCondition( false );
-
-        // Create a test node that always returns false 
-        final EvalConditionNode node = new EvalConditionNode( 1,
-                                                              new MockTupleSource( 15 ),
-                                                              eval );
-
-        final MockTupleSink sink = new MockTupleSink();
-        node.addTupleSink( sink );
-
-        // Create the Tuple
-        final DefaultFactHandle f0 = new DefaultFactHandle( 0,
-                                                            "stilton" );
-        final ReteTuple tuple0 = new ReteTuple( f0 );
-
-        // Tuple should fail and not propagate
-        node.assertTuple( tuple0,
-                          this.context,
-                          this.workingMemory );
-
-        // Create the Tuple
-        final DefaultFactHandle f1 = new DefaultFactHandle( 1,
-                                                            "cheddar" );
-        final ReteTuple tuple1 = new ReteTuple( f1 );
-
-        // Tuple should fail and not propagate 
-        node.assertTuple( tuple1,
-                          this.context,
-                          this.workingMemory );
-
-        // Check memory was not populated
-        final LinkedList memory = (LinkedList) this.workingMemory.getNodeMemory( node );
-
-        assertEquals( 0,
-                      memory.size() );
-
-        eval.setIsAllowed( true );
-
-        // Now test that the fact is modified correctly
-        node.modifyTuple( tuple1,
-                          this.context,
-                          this.workingMemory );
-        assertEquals( 1,
-                      memory.size() );
-
-        // As this this  wasn't asserted and remember before, will propagate as an assert
-        assertEquals( 1,
-                      sink.getAsserted().size() );
-
-        assertSame( tuple1,
-                    memory.getFirst() );
-
-        // Now test that the fact is modified correctly
-        node.modifyTuple( tuple0,
-                          this.context,
-                          this.workingMemory );
-        assertEquals( 2,
-                      memory.size() );
-
-        // As this this  wasn't asserted and remember before, will propagate as an assert
-        assertEquals( 2,
-                      sink.getAsserted().size() );
-
-        assertSame( tuple1,
-                    memory.getFirst() );
-
-        assertSame( tuple0,
-                    tuple1.getNext() );
-
-        // test no propagations
-        assertEquals( 0,
-                      sink.getModified().size() );
-        assertEquals( 0,
-                      sink.getRetracted().size() );
-    }
-
     public void testUpdateWithMemory() throws FactException {
         // If no child nodes have children then we need to re-process the left
         // and right memories
@@ -561,7 +255,7 @@
 
         // Creat the object source so we can detect the alphaNode telling it to
         // propate its contents
-        final MockTupleSource source = new MockTupleSource( 1 );
+        //final MockTupleSource source = new MockTupleSource( 1 );
 
         /* Create a test node that always returns true */
         final EvalConditionNode node = new EvalConditionNode( 1,
@@ -592,8 +286,9 @@
         assertLength( 0,
                       sink2.getAsserted() );
 
-        node.updateNewNode( workingMemory,
-                            this.context );
+        node.updateSink( sink2,
+                         this.context,
+                         workingMemory );
 
         assertLength( 1,
                       sink2.getAsserted() );

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/JoinNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/JoinNodeTest.java	2006-10-31 21:39:15 UTC (rev 7256)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/JoinNodeTest.java	2006-10-31 21:39:36 UTC (rev 7257)
@@ -21,6 +21,7 @@
 import java.util.List;
 
 import org.drools.DroolsTestCase;
+import org.drools.RuleBaseConfiguration;
 import org.drools.RuleBaseFactory;
 import org.drools.common.DefaultBetaConstraints;
 import org.drools.common.DefaultFactHandle;
@@ -59,11 +60,13 @@
         this.tupleSource = new MockTupleSource( 4 );
         this.objectSource = new MockObjectSource( 4 );
         this.sink = new MockTupleSink();
+        
+        RuleBaseConfiguration configuration = new RuleBaseConfiguration();
 
         this.node = new JoinNode( 15,
                                   this.tupleSource,
                                   this.objectSource,
-                                  new DefaultBetaConstraints( new BetaNodeFieldConstraint[]{this.constraint} ) );
+                                  new DefaultBetaConstraints( new BetaNodeFieldConstraint[]{this.constraint}, configuration ) );
 
         this.node.addTupleSink( this.sink );
 
@@ -89,8 +92,8 @@
         assertEquals( 15,
                       this.node.getId() );
 
-        assertNull( objectSink );
-        assertNull( tupleSink );
+        assertNotNull( objectSink );
+        assertNotNull( tupleSink );
 
         this.node.attach();
 
@@ -357,8 +360,7 @@
         this.node.retractObject( f0,
                                  this.context,
                                  this.workingMemory );
-        // We still propagate all joins for a retract. Later we might apply tests first.
-        assertLength( 1,
+        assertLength( 0,
                       this.sink.getRetracted() );
     }
 

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/MockTupleSource.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/MockTupleSource.java	2006-10-31 21:39:15 UTC (rev 7256)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/MockTupleSource.java	2006-10-31 21:39:36 UTC (rev 7257)
@@ -16,9 +16,6 @@
  * limitations under the License.
  */
 
-import java.util.Collections;
-import java.util.List;
-
 import org.drools.common.BaseNode;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.spi.PropagationContext;
@@ -43,7 +40,7 @@
     }
 
     public int getAttached() {
-        return this.attached;
+        return this.sink.getSinks().length;
     }
 
     public int getUdated() {
@@ -67,10 +64,4 @@
 
     }
 
-    public List getPropagatedTuples(final ReteooWorkingMemory workingMemory,
-                                    final TupleSink sink) {
-        // TODO Auto-generated method stub
-        return Collections.EMPTY_LIST;
-    }
-
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/NotNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/NotNodeTest.java	2006-10-31 21:39:15 UTC (rev 7256)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/NotNodeTest.java	2006-10-31 21:39:36 UTC (rev 7257)
@@ -23,11 +23,13 @@
 import org.drools.Cheese;
 import org.drools.DroolsTestCase;
 import org.drools.FactException;
+import org.drools.RuleBaseConfiguration;
 import org.drools.RuleBaseFactory;
 import org.drools.common.DefaultBetaConstraints;
 import org.drools.common.DefaultFactHandle;
 import org.drools.common.PropagationContextImpl;
 import org.drools.rule.Rule;
+import org.drools.spi.BetaNodeFieldConstraint;
 import org.drools.spi.MockConstraint;
 import org.drools.spi.PropagationContext;
 
@@ -56,11 +58,13 @@
         this.workingMemory = new ReteooWorkingMemory( 1,
                                                       (ReteooRuleBase) RuleBaseFactory.newRuleBase() );
 
+        RuleBaseConfiguration configuration = new RuleBaseConfiguration();
+        
         // string1Declaration is bound to column 3 
         this.node = new NotNode( 15,
                                  new MockTupleSource( 5 ),
                                  new MockObjectSource( 8 ),
-                                 new DefaultBetaConstraints( this.constraint ) );
+                                 new DefaultBetaConstraints( new BetaNodeFieldConstraint[] { this.constraint }, configuration ) );
 
         this.sink = new MockTupleSink();
         this.node.addTupleSink( this.sink );

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ObjectTypeNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ObjectTypeNodeTest.java	2006-10-31 21:39:15 UTC (rev 7256)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ObjectTypeNodeTest.java	2006-10-31 21:39:36 UTC (rev 7257)
@@ -43,7 +43,8 @@
 
         final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
                                                                   objectType,
-                                                                  source );
+                                                                  source,
+                                                                  3);
 
         assertEquals( 1,
                       objectTypeNode.getId() );
@@ -78,7 +79,8 @@
 
         final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
                                                                   new ClassObjectType( String.class ),
-                                                                  source );
+                                                                  source,
+                                                                  3 );
 
         final MockObjectSink sink = new MockObjectSink();
         objectTypeNode.addObjectSink( sink );
@@ -112,7 +114,8 @@
 
         final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
                                                                   new ClassObjectType( String.class ),
-                                                                  new Rete() );
+                                                                  new Rete(),
+                                                                  3);
 
         final FactHashTable memory = (FactHashTable) workingMemory.getNodeMemory( objectTypeNode );
 
@@ -125,7 +128,8 @@
 
         ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
                                                             new ClassObjectType( String.class ),
-                                                            source );
+                                                            source,
+                                                            3);
 
         assertFalse( objectTypeNode.matches( new Object() ) );
         assertFalse( objectTypeNode.matches( new Integer( 5 ) ) );
@@ -133,7 +137,8 @@
 
         objectTypeNode = new ObjectTypeNode( 1,
                                              new ClassObjectType( Object.class ),
-                                             source );
+                                             source,
+                                             3);
 
         assertTrue( objectTypeNode.matches( new Object() ) );
         assertTrue( objectTypeNode.matches( new Integer( 5 ) ) );
@@ -154,7 +159,8 @@
 
         final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
                                                                   new ClassObjectType( String.class ),
-                                                                  source );
+                                                                  source,
+                                                                  3);
 
         final MockObjectSink sink = new MockObjectSink();
         objectTypeNode.addObjectSink( sink );
@@ -205,7 +211,8 @@
 
         final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
                                                                   new ClassObjectType( String.class ),
-                                                                  source );
+                                                                  source,
+                                                                  3);
 
         final MockObjectSink sink1 = new MockObjectSink();
         objectTypeNode.addObjectSink( sink1 );
@@ -276,7 +283,8 @@
         final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
                                                                   new ClassObjectType( Cheese.class,
                                                                                        shadowClass ),
-                                                                  source );
+                                                                  source,
+                                                                  3);
 
         final MockObjectSink sink = new MockObjectSink();
         objectTypeNode.addObjectSink( sink );

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/PropertyChangeListenerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/PropertyChangeListenerTest.java	2006-10-31 21:39:15 UTC (rev 7256)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/PropertyChangeListenerTest.java	2006-10-31 21:39:36 UTC (rev 7257)
@@ -18,7 +18,8 @@
 
         final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
                                                                   new ClassObjectType( State.class ),
-                                                                  rete );
+                                                                  rete,
+                                                                  3);
 
         objectTypeNode.attach();
 
@@ -31,13 +32,9 @@
 
         assertEquals( 1,
                       sink.getAsserted().size() );
-        assertEquals( 0,
-                      sink.getModified().size() );
 
         a.setState( "stop" );
 
-        assertEquals( 1,
-                      sink.getModified().size() );
     }
 
     public static class State {

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java	2006-10-31 21:39:15 UTC (rev 7256)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java	2006-10-31 21:39:36 UTC (rev 7257)
@@ -28,13 +28,13 @@
 import org.drools.base.ClassFieldExtractor;
 import org.drools.base.ClassObjectType;
 import org.drools.base.DroolsQuery;
+import org.drools.base.FieldFactory;
 import org.drools.base.ValueType;
 import org.drools.base.evaluators.Operator;
 import org.drools.rule.LiteralConstraint;
 import org.drools.rule.Query;
 import org.drools.spi.Evaluator;
 import org.drools.spi.FieldValue;
-import org.drools.spi.MockField;
 
 public class QueryTerminalNodeTest extends TestCase {
     public void testQueryTerminalNode() {
@@ -44,13 +44,14 @@
         final ClassObjectType queryObjectType = new ClassObjectType( DroolsQuery.class );
         final ObjectTypeNode queryObjectTypeNode = new ObjectTypeNode( 1,
                                                                        queryObjectType,
-                                                                       rete );
+                                                                       rete,
+                                                                       3);
         queryObjectTypeNode.attach();
 
         ClassFieldExtractor extractor = new ClassFieldExtractor( DroolsQuery.class,
                                                                  "name" );
 
-        FieldValue field = new MockField( "query-1" );
+        FieldValue field = FieldFactory.getFieldValue( "query-1" );
 
         final Evaluator evaluator = ValueType.STRING_TYPE.getEvaluator( Operator.EQUAL );
         LiteralConstraint constraint = new LiteralConstraint( extractor,
@@ -69,13 +70,14 @@
         final ClassObjectType cheeseObjectType = new ClassObjectType( Cheese.class );
         final ObjectTypeNode cheeseObjectTypeNode = new ObjectTypeNode( 4,
                                                                         cheeseObjectType,
-                                                                        rete );
+                                                                        rete,
+                                                                        3);
         cheeseObjectTypeNode.attach();
 
         extractor = new ClassFieldExtractor( Cheese.class,
                                              "type" );
 
-        field = new MockField( "stilton" );
+        field = FieldFactory.getFieldValue( "stilton" );
 
         constraint = new LiteralConstraint( extractor,
                                             evaluator,
@@ -135,13 +137,13 @@
         QueryResult result = results.get( 0 );
         assertEquals( 1,
                       result.size() );
-        assertSame( stilton1,
+        assertEquals( stilton2,
                     result.get( 0 ) );
 
         result = results.get( 1 );
         assertEquals( 1,
                       result.size() );
-        assertSame( stilton2,
+        assertEquals( stilton1,
                     result.get( 0 ) );
 
         int i = 0;
@@ -149,7 +151,7 @@
             result = (QueryResult) it.next();
             assertEquals( 1,
                           result.size() );
-            if ( i == 0 ) {
+            if ( i == 1 ) {
                 assertSame( stilton1,
                             result.get( 0 ) );
             } else {

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ReteTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ReteTest.java	2006-10-31 21:39:15 UTC (rev 7256)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ReteTest.java	2006-10-31 21:39:36 UTC (rev 7257)
@@ -47,12 +47,14 @@
 
         final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
                                                                   new ClassObjectType( Object.class ),
-                                                                  rete );
+                                                                  rete,
+                                                                  3);
         objectTypeNode.attach();
 
         final ObjectTypeNode stringTypeNode = new ObjectTypeNode( 2,
                                                                   new ClassObjectType( String.class ),
-                                                                  rete );
+                                                                  rete,
+                                                                  3);
         stringTypeNode.attach();
 
         final Field field = Rete.class.getDeclaredField( "objectTypeNodes" );
@@ -81,21 +83,24 @@
         final Rete rete = ruleBase.getRete();
         ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
                                                             new ClassObjectType( List.class ),
-                                                            rete );
+                                                            rete,
+                                                            3);
         objectTypeNode.attach();
         MockObjectSink sink = new MockObjectSink();
         objectTypeNode.addObjectSink( sink );
 
         objectTypeNode = new ObjectTypeNode( 1,
                                              new ClassObjectType( Collection.class ),
-                                             rete );
+                                             rete,
+                                             3);
         objectTypeNode.attach();
         sink = new MockObjectSink();
         objectTypeNode.addObjectSink( sink );
 
         objectTypeNode = new ObjectTypeNode( 1,
                                              new ClassObjectType( ArrayList.class ),
-                                             rete );
+                                             rete,
+                                             3);
         objectTypeNode.attach();
         sink = new MockObjectSink();
         objectTypeNode.addObjectSink( sink );
@@ -136,7 +141,8 @@
         final Rete rete = ruleBase.getRete();
         final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
                                                                   new ClassObjectType( List.class ),
-                                                                  rete );
+                                                                  rete,
+                                                                  3);
         objectTypeNode.attach();
         final MockObjectSink sink1 = new MockObjectSink();
         objectTypeNode.addObjectSink( sink1 );
@@ -185,7 +191,8 @@
         final Rete rete = ruleBase.getRete();
         final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
                                                                   new ClassObjectType( List.class ),
-                                                                  rete );
+                                                                  rete,
+                                                                  3);
         objectTypeNode.attach();
         final MockObjectSink sink1 = new MockObjectSink();
         objectTypeNode.addObjectSink( sink1 );

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/OrTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/OrTest.java	2006-10-31 21:39:15 UTC (rev 7256)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/OrTest.java	2006-10-31 21:39:36 UTC (rev 7257)
@@ -27,19 +27,19 @@
 import org.drools.WorkingMemory;
 import org.drools.base.ClassFieldExtractor;
 import org.drools.base.ClassObjectType;
+import org.drools.base.FieldFactory;
 import org.drools.base.ValueType;
 import org.drools.base.evaluators.Operator;
 import org.drools.examples.waltz.Edge;
 import org.drools.examples.waltz.Stage;
-import org.drools.leaps.LeapsRuleBase;
 import org.drools.spi.AlphaNodeFieldConstraint;
+import org.drools.spi.BetaNodeFieldConstraint;
 import org.drools.spi.Consequence;
 import org.drools.spi.ConsequenceException;
 import org.drools.spi.Evaluator;
 import org.drools.spi.FieldExtractor;
 import org.drools.spi.FieldValue;
 import org.drools.spi.KnowledgeHelper;
-import org.drools.spi.MockField;
 import org.drools.spi.Tuple;
 
 /**
@@ -70,44 +70,13 @@
         super.setUp();
         this.stageType = new ClassObjectType( Stage.class );
         this.edgeType = new ClassObjectType( Edge.class );
-        this.integerEqualEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.EQUAL );
-        this.integerNotEqualEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.NOT_EQUAL );
+        this.integerEqualEvaluator = ValueType.PINTEGER_TYPE.getEvaluator( Operator.EQUAL );
+        this.integerNotEqualEvaluator = ValueType.PINTEGER_TYPE.getEvaluator( Operator.NOT_EQUAL );
         this.pkg = new Package( "or" );
     }
 
     /*
      */
-    public void testLeapsNeverGetsToConsequenceOrder() throws Exception {
-
-        this.pkg.addRule( this.getNeverGetsToConsequenceRule() );
-
-        final org.drools.leaps.LeapsRuleBase ruleBase = (LeapsRuleBase) RuleBaseFactory.newRuleBase( RuleBase.LEAPS );
-        ruleBase.addPackage( this.pkg );
-        final WorkingMemory workingMemory = ruleBase.newWorkingMemory();
-        workingMemory.assertObject( new Stage( Stage.LABELING ) );
-        workingMemory.assertObject( new Edge( 1000,
-                                              1,
-                                              false,
-                                              Edge.NIL,
-                                              Edge.NIL ) );
-        workingMemory.assertObject( new Edge( 1000,
-                                              2,
-                                              false,
-                                              Edge.NIL,
-                                              Edge.NIL ) );
-        workingMemory.assertObject( new Edge( 5555,
-                                              3,
-                                              false,
-                                              Edge.NIL,
-                                              Edge.NIL ) );
-        workingMemory.fireAllRules();
-        workingMemory.assertObject( new Stage( Stage.DETECT_JUNCTIONS ) );
-
-        workingMemory.fireAllRules();
-    }
-
-    /*
-     */
     public void testReteooNeverGetsToConsequenceOrder() throws Exception {
 
         this.pkg.addRule( this.getNeverGetsToConsequenceRule() );
@@ -139,37 +108,6 @@
 
     /*
      */
-    public void testLeapsWorkingButCanNotResolveOrObjectInConsequenceOrder() throws Exception {
-
-        this.pkg.addRule( this.getWorkingButCanNotResolveOrObjectInConsequenceOrder() );
-
-        final org.drools.leaps.LeapsRuleBase ruleBase = (LeapsRuleBase) RuleBaseFactory.newRuleBase( RuleBase.LEAPS );
-        ruleBase.addPackage( this.pkg );
-        final WorkingMemory workingMemory = ruleBase.newWorkingMemory();
-        workingMemory.assertObject( new Stage( Stage.LABELING ) );
-        workingMemory.assertObject( new Edge( 1000,
-                                              1,
-                                              false,
-                                              Edge.NIL,
-                                              Edge.NIL ) );
-        workingMemory.assertObject( new Edge( 1000,
-                                              2,
-                                              false,
-                                              Edge.NIL,
-                                              Edge.NIL ) );
-        workingMemory.assertObject( new Edge( 5555,
-                                              3,
-                                              false,
-                                              Edge.NIL,
-                                              Edge.NIL ) );
-        workingMemory.fireAllRules();
-        workingMemory.assertObject( new Stage( Stage.DETECT_JUNCTIONS ) );
-
-        workingMemory.fireAllRules();
-    }
-
-    /*
-     */
     public void testReteooWorkingButCanNotResolveOrObjectInConsequenceOrder() throws Exception {
 
         this.pkg.addRule( this.getWorkingButCanNotResolveOrObjectInConsequenceOrder() );
@@ -387,7 +325,7 @@
         final int index = getIndex( clazz,
                                     fieldName );
 
-        final FieldValue field = new MockField( fieldValue );
+        final FieldValue field = FieldFactory.getFieldValue( fieldValue );
 
         final FieldExtractor extractor = new ClassFieldExtractor( clazz,
                                                                   fieldName );
@@ -397,7 +335,7 @@
                                       field );
     }
 
-    private AlphaNodeFieldConstraint getBoundVariableConstraint(final Column column,
+    private BetaNodeFieldConstraint getBoundVariableConstraint(final Column column,
                                                                 final String fieldName,
                                                                 final Declaration declaration,
                                                                 final Evaluator evaluator) throws IntrospectionException {

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockConstraint.java	2006-10-31 21:39:15 UTC (rev 7256)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockConstraint.java	2006-10-31 21:39:36 UTC (rev 7257)
@@ -17,6 +17,10 @@
  */
 
 import org.drools.WorkingMemory;
+import org.drools.common.InternalFactHandle;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.reteoo.ReteTuple;
+import org.drools.rule.ContextEntry;
 import org.drools.rule.Declaration;
 
 public class MockConstraint
@@ -42,4 +46,37 @@
         return this.declarations;
     }
 
+    public ContextEntry getContextEntry() {
+        return new ContextEntry() {
+            private static final long serialVersionUID = -6597931500771088767L;
+            private ContextEntry next;
+
+            public ContextEntry getNext() {
+                return next;
+            }
+
+            public void setNext(ContextEntry entry) {
+                this.next = entry;
+            }
+
+            public void updateFromFactHandle(InternalWorkingMemory workingMemory,
+                                             InternalFactHandle handle) {
+            }
+
+            public void updateFromTuple(InternalWorkingMemory workingMemory,
+                                        ReteTuple tuple) {
+            }
+        };
+    }
+
+    public boolean isAllowedCachedLeft(ContextEntry context,
+                                       Object object) {
+        return this.isAllowed;
+    }
+
+    public boolean isAllowedCachedRight(ReteTuple tuple,
+                                        ContextEntry context) {
+        return this.isAllowed;
+    }
+
 }
\ No newline at end of file




More information about the jboss-svn-commits mailing list