📄 rulebaseimpltest.java
字号:
/*
* Now lets test the dispose method on the WorkingMemory itself. dispose
* doesn't need GC
*/
this.wm3.dispose();
/* Check only wm3 was valid */
assertLength( 3,
this.ruleBase.getWorkingMemories() );
assertFalse( this.ruleBase.getWorkingMemories().contains( this.wm3 ) );
}
public void testNoKeepReference() throws Exception {
final WorkingMemory wm5 = this.ruleBase.newWorkingMemory( false );
final WorkingMemory wm6 = this.ruleBase.newWorkingMemory( false );
assertLength( 4,
this.ruleBase.getWorkingMemories() );
assertFalse( this.ruleBase.getWorkingMemories().contains( wm5 ) );
assertFalse( this.ruleBase.getWorkingMemories().contains( wm6 ) );
}
public void testAddRuleBeforeFacts() throws Exception {
assertEquals( 0,
this.handlesForRules.size() );
this.ruleBaseAddRule.addRule( this.rule1 );
this.ruleBaseAddRule.addRule( this.rule2 );
this.workingMemory.assertObject( this.context1 );
this.workingMemory.assertObject( this.context2 );
// firing
this.workingMemory.fireAllRules();
// finally everything should be filled
assertEquals( 4,
this.handlesForRules.size() );
assertTrue( this.handlesForRules.contains( this.handle1Rule1 ) );
assertTrue( this.handlesForRules.contains( this.handle2Rule1 ) );
assertTrue( this.handlesForRules.contains( this.handle1Rule2 ) );
assertTrue( this.handlesForRules.contains( this.handle2Rule2 ) );
}
public void testAddRuleMixedWithFacts() throws Exception {
assertEquals( 0,
this.handlesForRules.size() );
this.ruleBaseAddRule.addRule( this.rule1 );
this.workingMemory.assertObject( this.context1 );
this.ruleBaseAddRule.addRule( this.rule2 );
this.workingMemory.assertObject( this.context2 );
// firing
this.workingMemory.fireAllRules();
// finally everything should be filled
assertEquals( 4,
this.handlesForRules.size() );
assertTrue( this.handlesForRules.contains( this.handle1Rule1 ) );
assertTrue( this.handlesForRules.contains( this.handle2Rule1 ) );
assertTrue( this.handlesForRules.contains( this.handle1Rule2 ) );
assertTrue( this.handlesForRules.contains( this.handle2Rule2 ) );
}
public void testAddRuleAfterFacts() throws Exception {
assertEquals( 0,
this.handlesForRules.size() );
this.workingMemory.assertObject( this.context1 );
this.workingMemory.assertObject( this.context2 );
this.ruleBaseAddRule.addRule( this.rule1 );
this.ruleBaseAddRule.addRule( this.rule2 );
// firing
this.workingMemory.fireAllRules();
// finally everything should be filled
assertEquals( 4,
this.handlesForRules.size() );
assertTrue( this.handlesForRules.contains( this.handle1Rule1 ) );
assertTrue( this.handlesForRules.contains( this.handle2Rule1 ) );
assertTrue( this.handlesForRules.contains( this.handle1Rule2 ) );
assertTrue( this.handlesForRules.contains( this.handle2Rule2 ) );
}
public void testAddRuleBeforeFactsFiring() throws Exception {
assertEquals( 0,
this.handlesForRules.size() );
this.ruleBaseAddRule.addRule( this.rule1 );
// firing
this.workingMemory.fireAllRules();
this.ruleBaseAddRule.addRule( this.rule2 );
// firing
this.workingMemory.fireAllRules();
this.workingMemory.assertObject( this.context1 );
// firing
this.workingMemory.fireAllRules();
this.workingMemory.assertObject( this.context2 );
// firing
this.workingMemory.fireAllRules();
// finally everything should be filled
assertEquals( 4,
this.handlesForRules.size() );
assertTrue( this.handlesForRules.contains( this.handle1Rule1 ) );
assertTrue( this.handlesForRules.contains( this.handle2Rule1 ) );
assertTrue( this.handlesForRules.contains( this.handle1Rule2 ) );
assertTrue( this.handlesForRules.contains( this.handle2Rule2 ) );
}
public void testAddRuleMixedWithFactsFiring1() throws Exception {
assertEquals( 0,
this.handlesForRules.size() );
this.ruleBaseAddRule.addRule( this.rule1 );
// firing
this.workingMemory.fireAllRules();
this.workingMemory.assertObject( this.context1 );
// firing
this.workingMemory.fireAllRules();
this.ruleBaseAddRule.addRule( this.rule2 );
// firing
this.workingMemory.fireAllRules();
this.workingMemory.assertObject( this.context2 );
// firing
this.workingMemory.fireAllRules();
// finally everything should be filled
assertEquals( 4,
this.handlesForRules.size() );
assertTrue( this.handlesForRules.contains( this.handle1Rule1 ) );
assertTrue( this.handlesForRules.contains( this.handle2Rule1 ) );
assertTrue( this.handlesForRules.contains( this.handle1Rule2 ) );
assertTrue( this.handlesForRules.contains( this.handle2Rule2 ) );
}
public void testAddRuleMixedWithFactsFiring2() throws Exception {
assertEquals( 0,
this.handlesForRules.size() );
this.ruleBaseAddRule.addRule( this.rule2 );
// firing
this.workingMemory.fireAllRules();
this.workingMemory.assertObject( this.context1 );
// firing
this.workingMemory.fireAllRules();
// firing
this.workingMemory.fireAllRules();
this.workingMemory.assertObject( this.context2 );
this.ruleBaseAddRule.addRule( this.rule1 );
// firing
this.workingMemory.fireAllRules();
// finally everything should be filled
assertEquals( 4,
this.handlesForRules.size() );
assertTrue( this.handlesForRules.contains( this.handle1Rule1 ) );
assertTrue( this.handlesForRules.contains( this.handle2Rule1 ) );
assertTrue( this.handlesForRules.contains( this.handle1Rule2 ) );
assertTrue( this.handlesForRules.contains( this.handle2Rule2 ) );
}
public void testAddRuleAfterFactsFiring() throws Exception {
assertEquals( 0,
this.handlesForRules.size() );
this.workingMemory.assertObject( this.context1 );
// firing
this.workingMemory.fireAllRules();
this.workingMemory.assertObject( this.context2 );
// firing
this.workingMemory.fireAllRules();
this.ruleBaseAddRule.addRule( this.rule1 );
// firing
this.workingMemory.fireAllRules();
this.ruleBaseAddRule.addRule( this.rule2 );
// firing
this.workingMemory.fireAllRules();
// finally everything should be filled
assertEquals( 4,
this.handlesForRules.size() );
assertTrue( this.handlesForRules.contains( this.handle1Rule1 ) );
assertTrue( this.handlesForRules.contains( this.handle2Rule1 ) );
assertTrue( this.handlesForRules.contains( this.handle1Rule2 ) );
assertTrue( this.handlesForRules.contains( this.handle2Rule2 ) );
}
private FieldConstraint getLiteralConstraint(final Column column,
final String fieldName,
final Object fieldValue,
final Evaluator evaluator) {
final Class clazz = ((ClassObjectType) column.getObjectType()).getClassType();
final FieldExtractor extractor = new ClassFieldExtractor( clazz,
fieldName );
final FieldValue field = new MockField( fieldValue );
return new LiteralConstraint( field,
extractor,
evaluator );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -