📄 terminalnodetest.java
字号:
package org.drools.reteoo;import org.drools.DroolsTestCase;import org.drools.RuleBase;import org.drools.conflict.DefaultConflictResolver;import org.drools.rule.Rule;import org.drools.spi.InstrumentedConsequence;public class TerminalNodeTest extends DroolsTestCase{ public void testAssertTuple() throws Exception { final Agenda[] agendas = new Agenda[1]; WorkingMemoryImpl memory = new WorkingMemoryImpl( new RuleBaseImpl( new Rete() ) ) { public Agenda getAgenda() { return agendas[0]; } }; final InstrumentedAgenda agenda = new InstrumentedAgenda( memory, DefaultConflictResolver.getInstance() ); agendas[ 0 ] = agenda; Rule rule = new Rule( "test-rule" ); //add consequence rule.setConsequence( new org.drools.spi.InstrumentedConsequence( ) ); //add condition rule.addCondition( new org.drools.spi.InstrumentedCondition( ) ); TerminalNode node = new TerminalNode( new MockTupleSource( ), rule ); RuleBase ruleBase = new RuleBaseImpl( new Rete( ) ); ReteTuple tuple = new ReteTuple( (WorkingMemoryImpl) ruleBase.newWorkingMemory( ) ); node.assertTuple( tuple, memory ); assertLength( 1, agenda.getAdded( ) ); assertContains( tuple, agenda.getAdded( ) ); } public void testRetractTuples() throws Exception { final Agenda[] agendas = new Agenda[1]; WorkingMemoryImpl memory = new WorkingMemoryImpl( new RuleBaseImpl( new Rete() ) ) { public Agenda getAgenda() { return agendas[0]; } }; final InstrumentedAgenda agenda = new InstrumentedAgenda(memory, DefaultConflictResolver.getInstance( ) ); agendas[0] = agenda; Rule rule = new Rule( "test-rule" ); InstrumentedConsequence consequence = new InstrumentedConsequence( ); rule.setConsequence( consequence ); TerminalNode node = new TerminalNode( new MockTupleSource( ), rule ); TupleKey key = TupleKey.EMPTY_KEY; node.retractTuples( key, memory ); assertLength( 1, agenda.getRemoved( ) ); assertContains( key, agenda.getRemoved( ) ); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -