runSimulation( f );
}
@Test
public void testAssertionsFail() {
FluentCompactSimulation f = new FluentCompactSimulationImpl();
VariableContext<Person> pc = f.<Person> getVariableContext();
List<String> imports = new ArrayList<String>();
imports.add( "org.junit.Assert.assertThat" );
imports.add( "org.hamcrest.CoreMatchers.is" );
imports.add( "org.hamcrest.CoreMatchers.equalTo" );
imports.add( "org.hamcrest.CoreMatchers.allOf" );
ReflectiveMatcherFactory rf = new ReflectiveMatcherFactory( imports );
String str = "package org.drools.simulation.test\n" +
"import " + Person.class.getName() + "\n" +
"rule updateAge no-loop when $p : Person() then modify( $p ) { setAge( $p.getAge() + 10 ) }; end\n";
// @formatter:off
f.newStatefulKnowledgeSession()
.getKnowledgeBase()
.addKnowledgePackages( ResourceFactory.newByteArrayResource( str.getBytes() ),
ResourceType.DRL )
.end()
.insert( new Person( "yoda",
150 ) ).set( "y" )
.fireAllRules()
// show testing inside of ksession execution
.test( "y.age == 110" );
// @formatter:on
boolean fail = false;
try {
runSimulation( f );
} catch ( AssertionError e ) {
fail = true;
}
assertTrue( "Assertion should have failed",
fail );
f = new FluentCompactSimulationImpl();
// @formatter:off
f.newStatefulKnowledgeSession()
.getKnowledgeBase()
.addKnowledgePackages( ResourceFactory.newByteArrayResource( str.getBytes() ),
ResourceType.DRL )
.end()
.insert( new Person( "yoda", 150 ) ).set( "y" )