@Test
public void testPropReactiveUpdate() {
final String str1 =
"import " + Klass.class.getCanonicalName() + "\n" +
"global java.util.List list;\n" +
"rule R when\n" +
" Klass( b == 2 )\n" +
"then\n" +
" list.add(\"fired\");\n" +
"end\n";
final KieSession ksession = new KieHelper().addContent( str1, ResourceType.DRL )
.build()
.newKieSession();
final List<String> list = new ArrayList<String>();
ksession.setGlobal( "list", list );
final Klass bean = new Klass( 1, 2, 3, 4, 5, 6 );
final FactHandle fh = ksession.insert( bean );
ksession.fireAllRules();
assertEquals( 1, list.size() );
( (StatefulKnowledgeSessionImpl) ksession ).update( fh, bean, "a", "d" );
ksession.fireAllRules();
assertEquals( 1, list.size() );
( (StatefulKnowledgeSessionImpl) ksession ).update( fh, bean, "c", "b" );
ksession.fireAllRules();
assertEquals( 2, list.size() );
}