}
public void testCollectDynamicRules() throws Exception {
final PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_CollectDynamicRules1.drl" ) ) );
final Package pkg = builder.getPackage();
final RuleBase ruleBase = getRuleBase();
ruleBase.addPackage( pkg );
final WorkingMemory workingMemory = ruleBase.newStatefulSession();
List list = new ArrayList();
workingMemory.setGlobal( "results", list );
workingMemory.insert( new Cheese( "stilton", 10 ) );
workingMemory.insert( new Cheese( "brie", 10 ) );
workingMemory.insert( new Cheese( "stilton", 10 ) );
workingMemory.insert( new Cheese( "muzzarela", 10 ) );
final PackageBuilder builder2 = new PackageBuilder();
builder2.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_CollectDynamicRules2.drl" ) ) );
final Package pkg2 = builder2.getPackage();
ruleBase.addPackage( pkg2 );
// fire all rules is automatic
assertEquals( 1, list.size() );
assertEquals( 2, ((List)list.get( 0 )).size() );