📄 retetest.java
字号:
package org.drools.reteoo;import org.drools.DroolsTestCase;import org.drools.MockObjectType;import java.util.Collection;import java.util.List;public class ReteTest extends DroolsTestCase{ private Rete rete; private InstrumentedObjectTypeNode objectTypeNode; private InstrumentedObjectTypeNode stringTypeNode; public void setUp() { this.rete = new Rete( ); this.objectTypeNode = new InstrumentedObjectTypeNode( new MockObjectType( Object.class ) ); this.stringTypeNode = new InstrumentedObjectTypeNode( new MockObjectType( String.class ) ); this.rete.addObjectTypeNode( this.objectTypeNode ); this.rete.addObjectTypeNode( this.stringTypeNode ); } public void tearDown() { this.rete = null; } public void testGetObjectTypeNodes() throws Exception { Collection objectTypeNodes = this.rete.getObjectTypeNodes( ); assertEquals( 2, objectTypeNodes.size( ) ); assertTrue( objectTypeNodes.contains( this.objectTypeNode ) ); assertTrue( objectTypeNodes.contains( this.stringTypeNode ) ); } /** * All objects asserted to a RootNode must be propagated to all children * ObjectTypeNodes. */ public void testAssertObject() throws Exception { Object object1 = new Object( ); String string1 = "cheese"; this.rete.assertObject( new FactHandleImpl( 1 ), object1, null ); this.rete.assertObject( new FactHandleImpl( 2 ), string1, null ); List asserted = null; // ---------------------------------------- asserted = this.objectTypeNode.getAssertedObjects( ); assertEquals( 2, asserted.size( ) ); assertSame( object1, asserted.get( 0 ) ); assertSame( string1, asserted.get( 1 ) ); // ---------------------------------------- asserted = this.stringTypeNode.getAssertedObjects( ); assertEquals( 2, asserted.size( ) ); assertSame( object1, asserted.get( 0 ) ); assertSame( string1, asserted.get( 1 ) ); } /** * All objects retracted from a RootNode must be propagated to all children * ObjectTypeNodes. */ public void testRetractObject() throws Exception { WorkingMemoryImpl memory = new WorkingMemoryImpl( new RuleBaseImpl( new Rete( ) ) ); FactHandleImpl handle1 = new FactHandleImpl( 1 ); FactHandleImpl handle2 = new FactHandleImpl( 2 ); memory.putObject( handle1, "cheese1" ); memory.putObject( handle2, "cheese2" ); this.rete.retractObject( handle1, memory ); this.rete.retractObject( handle2, memory ); List retracted = null; // ---------------------------------------- retracted = this.objectTypeNode.getRetractedHandles( ); assertLength( 2, retracted ); assertContains( handle1, retracted ); assertContains( handle2, retracted ); // ---------------------------------------- retracted = this.stringTypeNode.getRetractedHandles( ); assertLength( 2, retracted ); assertContains( handle1, retracted ); assertContains( handle2, retracted ); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -